Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 78

วิทยาการเข้ารหัส และวิทยาการอำพรางข้อมูล

Cryptography & Steganography


Sanchai Yeewiyom
School of Information and Communication
Technology
University of Phayao
1
Cryptography
 คือ การเข้ารหัสข้อมูลเพื่อป้ องกันการดักดูข้อมูลจาก
Sniffer หรือการแก้ไขข้อมูล
 การเข้ารหัสข้อมูลมีจุดประสงค์เพื่อรักษาความลับของข้อมูล
ข้อมูลนั้นจะถูกเปิ ดอ่านโดยบุคคลที่ได้รับอนุญาตเท่านั้น
หลักการของการเข้ารหัสข้อมูลคือแปลงข้อมูล (Encrypt)
ไปอยู่ในรูปของข้อมูลที่ไม่สามารถอ่านได้โดยตรง ข้อมูลจะ
ถูกถอดกลับด้วยกระบวนการถอดรหัส (Decryption)

2
Cryptography

http://www.pgpi.org/doc/pgpintro/#p9

ตัวอย่าง
Caesar Cipher
Cryptography ในอดีต

 Cipher text:https://commons.wikimedia.org/wiki/File:Caesar3.svg
WKH TXLFN EURZQ IRA MXPSV RYHU WKH
ODCB GRJ
 Plaintext: the quick brown fox jumps over the lazy
4

dog
ตัวอย่าง Cryptography ในอดีต
 Monoalphabetic Cipher

https://en.wikipedia.org/wiki/Substitution_cipher#/media/File:ROT13.png
 Polyalphabetic Cipher กำหนดระยะห่างแต่ละช่วงให้ไม่ 5

เท่ากัน
ตัวอย่าง Cryptography ในอดีต
 One-Time Pad
 ใช้ Key จากการสุ่ม และมีความยาวขนาดเท่ากับ Plain Text
และไม่มีการใช้ Key นั้นซ้ำอีก
 Key เรียกว่า Pad

6
Pad

/http://modes.io/hacktivism-codes
ตัวอย่าง Cryptography ในอดีต
 Encrypt

 Decrypt

https://en.wikipedia.org/wiki/One-time_pad 8
ตัวอย่าง Cryptography

9
Cryptography
ปั จจุบันสามารถแบ่งการเข้ารหัสข้อมูลเป็ น 3 ประเภท
 Symmetric Key Cryptography (Secret Key
Cryptography)
 Asymmetric Key Cryptography (Public Key
Cryptography)
 Hash Function

10
Symmetric Key Cryptography
 การเข้ารหัสและถอดรหัสโดยใช้กุญแจรหัสตัวเดียวกัน คือ ผู้
ส่งและผู้รับจะต้องมีกุญแจรหัสที่เหมือนกันเพื่อใช้ในการเข้า
รหัสและถอดรหัส

11
Symmetric Key Cryptography

12

http://www.pgpi.org/doc/pgpintro/#p9
Symmetric Key Cryptography
แบ่งเป็ น 2 ประเภท คือ
 Stream Cipher
 Block Cipher

13
Stream Cipher
 เข้ารหัสทีละ bit, byte หรือ word
 มีการทำ Feedback เพื่อทำให้ Key ที่ใช้เข้ารหัสเปลี่ยนไป
เรื่อย ๆ

14
15
https://image.slidesharecdn.com/cryptographyv1-1-121024044551-
phpapp01/95/cryptography-fundamentals-14-638.jpg?cb=1351054028
Block Cipher
 เข้ารหัสข้อมูลทีละกลุ่มของข้อมูล โดยข้อมูลจะมีขนาดเท่า
กันเสมอ
 Exp.
 Electronic Codebook (ECB)
 Cipher Block Chaining (CBC)

16
Electronic Codebook (ECB)
 Secret Key จะถูกใช้เข้ารหัส Block ของ Plain Text
ผลลัพธ์ที่ได้คือ Block ของ Cipher Text
 ข้อสังเกตุ ถ้าเข้ารหัส Block ของ Plain Text ที่เหมือนกัน
โดยใช้ Key เดียวกัน ผลลัพธ์ที่ได้คือ Block ของ Cipher
Text ที่เหมือนกัน
 เป็ นที่นิยมใช้กันทั่วไป แต่มีจุดอ่อนที่โดนโจมตีโดยใช้วิธี
Brute Force ได้ง่าย
17
Electronic Codebook (ECB)

18

https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation
Cipher Block Chaining (CBC)
 เพิ่มกลไกการ Feedback เพื่อส่งข้อมูลเข้ามาเป็ น Input
สำหรับการเข้ารหัส
 นำ Plain Text มาทำการ Exclusive-OR (XOR) กับ
A B X
Cipher Text ของ Block ก่อนหน้า
0 0 0
0 1 1
1 0 1
19

1 1 0
Cipher Block Chaining (CBC)

20

https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation
A pixel-map version of the image on
the left was encrypted with ECB
mode to create the center image:

Original Encrypted using ECB mode Encrypted using a more


secure
mode, e.g. CBC

https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation 21
Symmetric Key Cryptography Example
 Data Encryption Standard (DES)
 Triple-DES
 Advanced Encryption Standard (AES)
 Rivest Ciphers (RC)
 Blowfish

22
Data Encryption Standard (DES)
 พัฒนาโดย IBM
 เข้ารหัสแบบ Block Cipher
 ข้อมูล Block ละ 64 bit และใช้ Key ขนาด 56 bit
 เป็ นที่นิยมในอดีต แต่ปั จจุบันถูกถอดรหัสได้ง่ายและเร็ว
เนื่องจาก Key มีขนาดเล็ก
 มีการใช้งานทั้งในแบบ 64 bit และ 128 bit ทำให้การ
Crack ใช้เวลานานขึ้น
23
Data Encryption Standard (DES)

24

/http://manansingh.github.io/Cryptolab-Offline/c13-des-block.html
Data Encryption Standard
(DES)
• ข้อมูล 64 บิต ถูกสลับตำแหน่ง
• ข้อมูล 64 บิต ถูกแบ่งออกเป็ น 2 ส่วน ๆ ละ 32 บิต
• ใช้ฟั งก์ชั่นทางคณิตศาสตร์ (Function f) ประมวลผล
ข้อมูลทั้งส่วน ขวาและซ้าย กับ Key สลับกันไป
• ข้อมูลทั้งส่วน ขวาและซ้าย จะถูกนำมา XOR กับ
Function f สลับกันไป
• ทำซ้ำ 16 รอบ จากนั้นนำผลลัพท์ที่ได้มารวมกันเป็ น 64 บิต
• สุดท้าย ทำการสลับตำแหน่งข้อมูลทั้ง 64 บิต
25
Data Encryption Standard
(DES)
• ในส่วนของ Function f ในแต่ละรอบ จะเลือกข้อมูล
จำนวน 48 บิต จาก Key ขนาด 56 บิต
• นำข้อมูล ขนาด 32 บิต มาขยายให้เป็ น 48 บิต แล้วนำมา
XOR กับ Key ผลลัพธ์ที่ได้จะนำมาทำ Substitution และ
ได้ข้อมูลขนาด 32 บิต
• สุดท้ายทำ Permutation ข้อมูลขนาด 32 บิต นั้น

26
Triple-DES (3DES)
 ทำการเข้ารหัสแบบ DES วนซ้ำกัน 3 รอบ
 ขนาดของ Key คือ 112 หรือ 168 bit

27
28

https://commons.wikimedia.org/wiki/File:3des-overall-view.png
Advanced Encryption Standard (AES)
 ถูกพัฒนาขึ้นมาโดย National Institute of Standards
and Technology (NIST) เพื่อใช้เป็ นมาตรฐานการเข้ารหัส
ข้อมูลของรัฐบาลสหรัฐฯ
 เข้ารหัสแบบ Block Cipher โดยข้อมูล Block ละ 128, 192
หรือ 256 bit และใช้ Key ขนาด 128, 192 หรือ 256 bit
 ถูกนำมาใช้ในการเข้ารหัสข้อมูลในหลายมาตรฐานในปั จจุบัน

29
AES

30

http://www.quadibloc.com/crypto/co040401.htm
Advanced Encryption Standard (AES)
 การทำงานของ AES แบ่งออกเป็ น 3 ส่วนหลัก ได้แก่
1. Initial Round
 AddRoundKey

2. Rounds
 SubBytes: แต่ละไบต์จะถูกแทนที่

 ShiftRows: เลื่อนไบต์ในแต่ละแถว เฉพาะแถวที่ 2, 3 และ 4

 MixColumns: ผสมรวม 4 ไบต์ ภายใน Column

 AddRoundKey: นำ Cipher text และ Key มาผสมรวมกัน

เป็ น Cipher text ใหม่ 31


Advanced Encryption Standard (AES)
3. Final Round (No MixColumns)
 SubBytes
 ShiftRows
 AddRoundKey

32
Rivest Ciphers (RC)
 คิดค้นโดย Ron Rivest
 มีหลาย Version เช่น
 RC4 เป็ น Stream Cipher นิยมใช้อย่างแพร่หลายเช่น
ใน Secure Socket Layer (SSL), Wired Equivalent
Privacy (WEP) ขนาดของ Key ไม่คงที่ ในปั จจุบันไม่
ปลอดภัยเนื่องจากถูกถอดรหัสได้ง่ายใน WEP

33
Rivest Ciphers (RC)
• RC5 มีความเร็วสูง โดย RC5 มีการทำงานเป็ น Word
Oriented และมีอัลกอริทึมที่ง่าย มีความยืดหยุ่นสูง
สามารถปรับจำนวนรอบการทำงานได้ สามารถใช้ Key ที่
มีความยาวต่าง ๆ ได้ ต้องการหน่วยความจำในการทำงาน
น้อย มีความปลอดภัยสูง วิเคราะห์ Key ได้ยาก
• RC6 เป็ น Block Cipher พัฒนาต่อยอดจาก RC5 ถูกนำ
มาใช้ใน AES โดยข้อมูล Block ละ 128 bit และใช้ Key
ขนาด 128, 192 หรือ 256 bit และสามารถกำหนด
จำนวนการวนรอบได้ 34
35

http://itbase.trip.sk/cs/data/krypto/algoritmy_index.htm
Blowfish
 คิดค้นโดย Bruce Schneier
 เป็ น Block Cipher โดยข้อมูล Block ละ 64 bit และใช้
Key ขนาด 32 - 448 bit วนรอบ 16 รอบ
 พัฒนาเพื่อใช้กับ CPU แบบ 32 bit ที่มี Cache ขนาดใหญ่
 ทำงานได้เร็วกว่า DES
 ไม่มีลิขสิทธิ์

36
Blowfish

37

http://www.sm.luth.se/csee/courses/smd/102/lek4/lek3.html
Asymmetric Key Cryptography
 Public Key Cryptography
 การเข้ารหัสและถอดรหัสโดยใช้กุญแจรหัสคนละตัวกัน
 ผู้ส่งจะมีกุญแจรหัสตัวหนึ่งในการเข้ารหัส และผู้รับก็จะมี
กุญแจรหัสอีกตัวหนึ่งเพื่อใช้ในการถอดรหัส
 ผู้ใช้รายหนึ่งๆจึงมีกุญแจรหัส 2 ค่าเสมอคือ กุญแจสาธารณะ
(Public Key) และ กุญแจส่วนตัว (Private Key)
 ผู้ใช้จะประกาศให้ผู้อื่นทราบถึงกุญแจสาธารณะของตนเอง
เพื่อให้นำไปใช้ในการเข้ารหัสและส่งข้อมูลที่เข้ารหัสแล้วมา
ให้ ข้อมูลที่เข้ารหัสดังกล่าวจะถูกถอดออกได้โดยกุญแจส่วน 38

ตัวที่เข้าคู่กันเท่านั้น
Asymmetric Key Cryptography

39

/ http://www.pgpi.org/doc/pgpintro/#p9
Asymmetric Key Cryptography
 ในทางปฏิบัติแล้วมักมีการใช้การเข้ารหัสทั้งสองระบบร่วม
กัน เช่น ในระบบ PGP (Pretty Good Privacy) ซึ่งใช้ใน
การเข้ารหัส E-mail จะใช้วิธีสร้าง Session Key (ซึ่ง
เป็ นการเข้ารหัสตามแบบ Symmetric Key) เพื่อเข้ารหัส
ข้อมูลจากนั้น Session Key จะถูกเข้ารหัสโดยใช้กุญแจ
สาธารณะของผู้รับ และถูกส่งไปกับข้อมูลที่เข้ารหัสแล้ว

40
Asymmetric Key Cryptography

41

http://www.pgpi.org/doc/pgpintro/#p9
Asymmetric Key Cryptography
 การถอดรหัสนั้นทำในทางตรงกันข้าม ผู้รับจะใช้กุญแจส่วน
ตัวในการถอดรหัสเพื่อให้ได้ Session Key คืนมา หลังจาก
นั้นจึงนำ Session Key มาถอดรหัสข้อมูลอีกขั้นหนึ่ง
 ในองค์กรขนาดใหญ่จำเป็ นต้องใช้ Public Key
Infrastructure (PKI) ในการบริหารจัดการ Key

42
Asymmetric Key Cryptography

43
http://www.pgpi.org/doc/pgpintro/#p9
Asymmetric Key Cryptography Example
 RSA
 Digital Signature
 Digital Certificate

44
RSA
 ถูกพัฒนาเมื่อพ.ศ. 2520 โดย รอน ริเวสต์ (Ron Rivest)
อาดี ชามีร์ (Adi Shamir) และเล็น แอเดิลแมน (Len
Adleman)
 ใช้ได้ทั้ง Encryption และ Digital Signature
 ใช้ใน Protocol สำหรับการค้าอิเล็กทรอนิกส์ (e-
commerce) และเชื่อว่ามีความปลอดภัย เมื่อมี Key ที่ยาว
พอ
 โดยปกติบนอินเทอร์เน็ตใช้ Key ขนาด 1,024 bit 45
46

/http://www.its.bth.se/staff/hjo
47

/http://www.its.bth.se/staff/hjo
Digital Signature
 ใช้ในการพิสูจน์ทราบตัวตนของผู้ส่งข้อความ
(Authentication)
 ใช้ตรวจสอบว่าข้อความนั้นถูกเปลี่ยนแปลงแก้ไขระหว่างการ
รับ-ส่งหรือไม่ (Data Integrity)
 เนื้อหาของข้อความมักเปิ ดเผยได้ เนื่องจากใช้หลักการตรงข้าม
กับการเข้ารหัส

48
Digital Signature (Authentication)

49

http://www.infosec.gov.hk/english/itpro/public_main.html
Digital Signature (Data Integrity)

50

http://www.securityparagon.com/blog/?p=556
Digital Certificate
 ใช้ในการตรวจสอบเพื่อสร้างความมั่นใจว่า Public Key ที่
เราได้มาใช้ในการเข้ารหัส เป็ นของคู่สนทนาที่แท้จริง
 ใช้ระบบแจกจ่ายคีย์ที่เรียกว่า Certificate Authority
(CA) ซึ่งจะเป็ นผู้รับรองว่า Public Key เป็ นของใคร โดย
จะออก Digital Certificate ให้
 นิยมนำมาใช้ในการรับรอง Website E-commerce เพื่อ
สร้างความน่าเชื่อถือ
 บริษัทที่ให้บริการ ได้แก่ Cybertrust, VeriSign etc.
51
Digital Certificate

-https://www.ida.gov.sg/Policies-and-Regulations/Acts-and-Regulations/Electronic
52

Transactions-Act-and-Regulations/Controller-of-Certification-Authorities/Key-Concepts
ผู้ให้บริการออกใบรับรองอิเล็กทรอนิกส์ (CA) ใน
หน่วยงานภาครัฐ ตัวอย่างเช่น
ประเทศไทย
1. สำนักบริการเทคโนโลยีสารสนเทศภาครัฐ
2. สำนักงานคณะกรรมการกำกับหลักทรัพย์และตลาดหลักทรัพย์
3. สำนักงานป้ องกันและปราบปรามการฟอกเงิน
4. ธนาคารแห่งประเทศไทย
5. กระทรวงการคลัง
6. Thailand National Root Certification Authority (สพธอ.)
หน่วยงานภาคเอกชน ตัวอย่างเช่น
1. บริษัท ทีโอที จำกัด (มหาชน)
2. บริษัท กสท โทรคมนาคม จำกัด (มหาชน)
3. บริษัท ไทยดิจิทัล ไอดี จำกัด
4. บริษัท Max Saving (Thailand) Co.,Ltd 53
Digital Certificate

54
Hash Function
 Hash Function บางทีเรียกว่า Oneway-encryption
เป็ น Algorithm ในการเข้ารหัสโดยไม่ต้องใช้ Key และค่า
แฮชที่คำนวณจาก Plaintext มีความยาวคงที่ ซึ่งไม่
สามารถคำนวณหาเนื้อหาและความยาวเดิมของข้อความ
เดิมได้
 Hash Function จะใช้สำหรับการคำนวณ Digital
Fingerprint ของเนื้อหาไฟล์ หรือ Message Digest เพื่อ
ตรวจสอบดูว่าไฟล์นั้นมีการเปลี่ยนแปลงโดยคนอื่นหรือ
Virus หรือไม่ 55
56

https://en.wikipedia.org/wiki/Cryptographic_hash_function
Hash Function
 ใช้ใน Operating System เพื่อเข้ารหัส Password ในการ
Login
 ใช้ในการรักษาความคงสภาพของข้อมูล (Integrity)
 ที่นิยมใช้ได้แก่ MD5, SHA

57
Hash Function Example
 Message Digest (MD)
 Secure Hash Algorithm (SHA)

58
Message Digest (MD)
Message Digest หรือเรียกสั้น ๆ ว่า Digest แปลว่า
ข้อความสรุปจากเนื้อหาข้อความ
ตั้งต้น โดยปกติข้อความสรุปจะมีความยาวน้อยกว่าความ
ยาวของข้อความตั้งต้นมากจุดประสงค์สำคัญของอัลกอริทึม
นี้คือ การสร้างข้อความสรุปที่สามารถใช้เป็ นตัวแทนของ
ข้อความตั้งต้นได้ โดยทั่วไปข้อความสรุป (Digest) จะมี
ความยาว 128 บิต และจะไม่ขึ้นกับขนาดความยาวของ
ข้อความตั้งต้น
59
Message Digest (MD)
 MD2
 MD4
 MD5

60
MD2
 ผู้พัฒนาคือ Ron Rivest อัลกอริทึมนี้เชื่อกันว่ามีความ
แข็งแกร่งที่สุดในบรรดาอัลกอริทึมต่าง ๆ ที่ Rivest พัฒนา
ขึ้นมา
 ข้อเสียของอัลกอริทึมนี้คือใช้เวลามากในการคำนวณ
Digest หนึ่ง ๆ MD2 จึงไม่ค่อยได้มีการใช้งานกันมากนัก
 MD2 สร้าง Digest ที่มีความยาว 128 บิต

61
MD4
 ผู้พัฒนาคือ Rivest เช่นเดียวกับ MD2 อัลกอริทึมนี้พัฒนา
ขึ้นมาเพื่อแก้ปั ญหาความล่าช้าในการคำนวณของ MD2
อย่างไรก็ตามในภายหลังได้พบว่าอัลกอริทึมมีข้อบกพร่องที่
เกี่ยวข้องกับคุณสมบัติข้อที่ 3 [ความพร้อมใช้งาน
(Availability)] โดยตรง กล่าวคือ ปั ญหาการชนกันของ
Digest มีโอกาสเกิดขึ้นได้ไม่น้อย
 MD4 ผลิต Digest ที่มีขนาด 128 บิต
62
MD5
 Rivest เป็ นผู้พัฒนาเช่นกันโดยพัฒนาต่อจาก MD4 เพื่อให้
มีความปลอดภัยที่สูงขึ้น มีรูปแบบคล้าย MD4 แต่มีการเพิ่ม
ฟั งก์ชันการคำนวณ ทำให้ใช้เวลาการทำงานมากขึ้น ถึงแม้
จะเป็ นที่นิยมใช้งานกันอย่างแพร่หลาย ทว่าก็มีผู้พบจุด
บกพร่องของ MD5 (เช่นเดียวกับ MD4) จึงทำให้ความนิยม
เริ่มลดลง
 MD5 ผลิต Digest ที่มีขนาด 128 บิต

63
MD5

64

https://en.wikipedia.org/wiki/MD5
Secure Hash Algorithm (SHA)
 อัลกอริทึม SHA ได้รับแนวคิดในการพัฒนามาจาก MD4
และได้รับการพัฒนาขึ้นมาโดย National Security
Agency (NSA) เพื่อใช้งานร่วมกับ Digital Signature โดย
เป็ นอัลกอริทึมที่ถูกนำมาใช้ในมาตรฐาน Secure Hash
Standard (SHS) ของ NIST ซึ่งมีอยู่หลายเวอร์ชัน
 SHA สร้าง Digest ที่มีขนาด 160 บิต

65
Secure Hash Algorithm (SHA)
 SHA-1
 SHA-256, SHA-384 และ SHA-512

66
SHA-1
 SHA-1 เป็ น Algorithm ที่มีความปลอดภัยสูง ถูกนำไปใช้
งานในหลากหลายรูปแบบ ทั้งในผลิตภัณฑ์รักษาความ
ปลอดภัย รวมถึง Protocol หลายตัว เช่น SSL
 SHA-1 สร้าง Digest ที่มีขนาด 160 บิต

จบสิ้นยุค SHA-1 กูเกิลออกรายงาน SHAttered สร้างไฟล์ค่าแฮชตรงกันได้สำเร็จแล้ว


67

https://www.blognone.com/node/90357
SHA-1

68

https://en.wikipedia.org/wiki/SHA-1
SHA-256, SHA-384 และ SHA-512
 NIST เป็ นผู้นำเสนอ Algorithm ทั้งสามนี้ในปี 2001 เพื่อ
ใช้งานร่วมกับ Algorithm AES
 Algorithm เหล่านี้สร้าง Digest ที่มีขนาด 256, 384 และ
512 บิต ตามลำดับ

69
SHA-256

70

http://j-7system.blog.so-net.ne.jp/2014-01-14
Encryption Software
 Best encryption software of 2021: Free, paid and
business tools and services
(TechRadar)
 The Best Encryption Software for 2021 (PC
Magazine)

71
Steganography
 เป็ นการซ่อนหรืออำพรางข้อมูลที่ต้องการสื่อสาร ไปกับสิ่ง
อื่นๆซึ่งดูเหมือนไม่มีอะไรน่าสนใจ หรือเบี่ยงประเด็นความ
สนใจ เช่น รูปภาพ วิดีโอ บทความ เสียง หรือสิ่งอื่นๆที่ไม่ใช่
ข้อความ
 บางครั้งเรียก Watermark

72
Steganography

73

http://studentweb.niu.edu/9/~Z172699/Description.html
Steganography
 การซ่อนข้อมูลมักใช้การซ่อนในส่วนของ LSB (Least
Significant Bit) ซึ่งผู้ใช้งานมักมองไม่เห็นความแตกต่าง
ของข้อมูลที่เปลี่ยนไป (Picture, Sound, etc.)

74

http://www.forensicmag.com/articles/2009/06/find-incriminating-contraband-images
Steganography

75
Steganography
 https://www.mobilefish.com/services/steganography/
steganography.php

76
Steganography
 Exp.
 OpenPuff 4.00

(http://embeddedsw.net/OpenPuff_Steganography_
Home.html)
 QuickStego (http://quickcrypto.com/free-

steganography-software.html)
 MP3Stego

(http://www.petitcolas.net/fabien/steganography/mp
3stego/index.html)
 Xiao Steganography

(https://download.cnet.com/Xiao-Steganography/300
77

0-2092_4-10541494.html)
Steganography
 การตรวจจับการซ่อนข้อมูล ใช้เครื่องมือ เช่น
 StegAlyzer
(https://stegalyzeras.software.informer.com/3.9
/)
 StegDetect (https://stegdetect.apponic.com/)
 XStegSecret
(http://en.pudn.com/Download/item/id/965028
.html) 78

You might also like