Cryptography & Steganography 235034 Security in Computer Systems and Networks Cryptography & Steganography Lec. Sanchai Yeewiyom School of Information and Communication Technology University of Phayao
Cryptography คือ การเข้ารหัสข้อมูลเพื่อป้องกันการดักดูข้อมูลจาก Sniffer หรือการแก้ไขข้อมูล การเข้ารหัสข้อมูลมีจุดประสงค์เพื่อรักษาความลับของข้อมูล ข้อมูลนั้นจะถูกเปิดอ่านโดยบุคคลที่ได้รับอนุญาตเท่านั้น หลักการของการเข้ารหัสข้อมูลคือแปลงข้อมูล (Encrypt) ไปอยู่ในรูปของข้อมูลที่ไม่สามารถอ่านได้โดยตรง ข้อมูลจะถูกถอดกลับด้วยกระบวนการถอดรหัส (Decryption)
Cryptography http://www.pgpi.org/doc/pgpintro/#p9
Cryptography ในอดีต Caesar Cipher Ciphertext: WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ Plaintext: the quick brown fox jumps over the lazy dog https://commons.wikimedia.org/wiki/File:Caesar3.svg
Cryptography ในอดีต Monoalphabetic Cipher Polyalphabetic Cipher กำหนดระยะห่างแต่ละช่วงให้ไม่เท่ากัน https://en.wikipedia.org/wiki/Substitution_cipher#/media/File:ROT13.png
Cryptography ในอดีต One-Time Pad ใช้ Key จากการสุ่ม และมีความยาวขนาดเท่ากับ Plain Text และไม่มีการใช้ Key นั้นซ้ำอีก Key เรียกว่า Pad
Pad http://modes.io/hacktivism-codes/
Cryptography ในอดีต Encrypt Decrypt https://en.wikipedia.org/wiki/One-time_pad
Cryptography
Cryptography ปัจจุบันสามารถแบ่งการเข้ารหัสข้อมูลเป็น 3 ประเภท Symmetric Key Cryptography (Secret Key Cryptography) Asymmetric Key Cryptography (Public Key Cryptography) Hash Function
Symmetric Key Cryptography การเข้ารหัสและถอดรหัสโดยใช้กุญแจรหัสตัวเดียวกัน คือ ผู้ส่งและผู้รับจะต้องมีกุญแจรหัสที่เหมือนกันเพื่อใช้ในการเข้ารหัสและถอดรหัส
Symmetric Key Cryptography http://www.pgpi.org/doc/pgpintro/#p9
Symmetric Key Cryptography แบ่งเป็น 2 ประเภท คือ Stream Cipher Block Cipher
Stream Cipher เข้ารหัสทีละ bit, byte หรือ word มีการทำ Feedback เพื่อทำให้ Key ที่ใช้เข้ารหัสเปลี่ยนไปเรื่อยๆ
Stream Cipher https://en.wikipedia.org/wiki/Stream_cipher#/media/File:A5-1_GSM_cipher.svg
Block Cipher เข้ารหัสข้อมูลทีละกลุ่มของข้อมูล โดยข้อมูลจะมีขนาดเท่ากันเสมอ Exp. Electronic Codebook (ECB) Cipher Block Chaining (CBC)
Electronic Codebook (ECB) Secret Key จะถูกใช้เข้ารหัส Block ของ Plain Text ผลลัพธ์ที่ได้คือ Block ของ Cipher Text ถ้าเข้ารหัส Block ของ Plain Text ที่เหมือนกันโดยใช้ Key เดียวกัน ผลลัพธ์ที่ได้คือ Block ของ Cipher Text ที่เหมือนกัน เป็นที่นิยมใช้กันทั่วไป แต่มีจุดอ่อนที่โดนโจมตีโดยใช้วิธี Brute Force ได้ง่าย
Electronic Codebook (ECB) https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation
Cipher Block Chaining (CBC) เพิ่มกลไกการ Feedback เพื่อส่งข้อมูลเข้ามาเป็น Input สำหรับการเข้ารหัส นำ Plain Text มาทำการ Exclusive-OR (XOR) กับ Cipher Text ของ Block ก่อนหน้า A B X 1
Cipher Block Chaining (CBC) 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
Symmetric Key Cryptography Example Data Encryption Standard (DES) Triple-DES Advanced Encryption Standard (AES) Rivest Ciphers (RC) Blowfish
Data Encryption Standard (DES) พัฒนาโดย IBM เข้ารหัสแบบ Block Cipher ข้อมูล Block ละ 64 bit และใช้ Key ขนาด 56 bit เป็นที่นิยมในอดีต แต่ปัจจุบันถูกถอดรหัสได้ง่ายและเร็ว เนื่องจาก Key มีขนาดเล็ก
Data Encryption Standard (DES) http://homepage.usask.ca/~dtr467/400/
Triple-DES (3DES) ทำการเข้ารหัสแบบ DES วนซ้ำกัน 3 รอบ ขนาดของ Key คือ 112 หรือ 168 bit นิยมใช้ในการเข้ารหัสข้อมูลในปัจจุบัน
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 ถูกนำมาใช้ในการเข้ารหัสข้อมูลในหลายมาตรฐานในปัจจุบัน
AES http://www.quadibloc.com/crypto/co040401.htm
Rivest Ciphers (RC) คิดค้นโดย Ron Rivest มีหลาย Version เช่น RC4 เป็น Stream Cipher นิยมใช้อย่างแพร่หลายเช่นใน Secure Socket Layer (SSL), Wired Equivalent Privacy (WEP) ขนาดของ Key ไม่คงที่ ในปัจจุบันไม่ปลอดภัยเนื่องจากถูกถอดรหัสได้ง่ายใน WEP
Rivest Ciphers (RC) RC5 มีความเร็วสูง โดย RC5 มีการทำงานเป็น Word Oriented และมีอัลกอริทึมที่ง่าย มีความยืดหยุ่นสูง สามารถปรับจำนวนรอบการทำงานได้ สามารถใช้คีย์ที่มีความยาวต่าง ๆ ได้ ต้องการหน่วยความจำในการทำงานน้อย มีความปลอดภัยสูง วิเคราะห์คีย์ได้ยาก RC6 เป็น Block Cipher พัฒนาต่อยอดจาก RC5 ถูกนำมาใช้ใน AES โดยข้อมูล Block ละ 128 bit และใช้ Key ขนาด 128, 192 หรือ 256 bit และสามารถกำหนดจำนวนการวนรอบได้
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 ไม่มีลิขสิทธิ์
Blowfish http://www.sm.luth.se/csee/courses/smd/102/lek4/lek3.html
Asymmetric Key Cryptography Public Key Cryptography การเข้ารหัสและถอดรหัสโดยใช้กุญแจรหัสคนละตัวกัน ผู้ส่งจะมีกุญแจรหัสตัวหนึ่งในการเข้ารหัส และผู้รับก็จะมีกุญแจรหัสอีกตัวหนึ่งเพื่อใช้ในการถอดรหัส ผู้ใช้รายหนึ่งๆจึงมีกุญแจรหัส 2 ค่าเสมอคือ กุญแจสาธารณะ (Public Key) และ กุญแจส่วนตัว (Private Key) ผู้ใช้จะประกาศให้ผู้อื่นทราบถึงกุญแจสาธารณะของตนเองเพื่อให้นำไปใช้ในการเข้ารหัสและส่งข้อมูลที่เข้ารหัสแล้วมาให้ ข้อมูลที่เข้ารหัสดังกล่าวจะถูกถอดออกได้โดยกุญแจส่วนตัวที่เข้าคู่กันเท่านั้น
Asymmetric Key Cryptography http://www.pgpi.org/doc/pgpintro/#p9 /
Asymmetric Key Cryptography ในทางปฏิบัติแล้วมักมีการใช้การเข้ารหัสทั้งสองระบบ ร่วมกัน เช่น ในระบบ PGP (Pretty Good Privacy) ซึ่งใช้ในการ เข้ารหัส E-mail จะใช้วิธีสร้าง Session Key (ซึ่งเป็นการเข้ารหัส ตามแบบ Symmetric Key) เพื่อเข้ารหัสข้อมูลจากนั้น Session Key จะถูกเข้ารหัสโดยใช้กุญแจสาธารณะของผู้รับ และถูก ส่งไปกับข้อมูลที่เข้ารหัสแล้ว
Asymmetric Key Cryptography http://www.pgpi.org/doc/pgpintro/#p9
Asymmetric Key Cryptography การถอดรหัสนั้นทำในทางตรงกันข้าม ผู้รับจะใช้กุญแจ ส่วนตัวในการถอดรหัสเพื่อให้ได้ Session Key คืนมา หลังจากนั้นจึงนำ Session Key มาถอดรหัสข้อมูลอีกขั้นหนึ่ง ในองค์กรขนาดใหญ่จำเป็นต้องใช้ Public Key Infrastructure (PKI) ในการบริหารจัดการ Key
Asymmetric Key Cryptography http://www.pgpi.org/doc/pgpintro/#p9
Asymmetric Key Cryptography Example RSA Digital Signature Digital Certificate
RSA ถูกพัฒนาเมื่อพ.ศ. 2520 โดย รอน ริเวสต์ (Ron Rivest) อาดี ชามีร์ (Adi Shamir) และเล็น แอเดิลแมน (Len Adleman) ใช้ได้ทั้ง Encryption และ Digital Signature ใช้ใน Protocol สำหรับการค้าอิเล็กทรอนิกส์ (e-commerce) และเชื่อว่ามีความปลอดภัย เมื่อมี Key ที่ยาวพอ โดยปกติบนอินเทอร์เน็ตใช้ Key ขนาด 1,024 bit
http://www.its.bth.se/staff/hjo/
http://www.its.bth.se/staff/hjo/
Digital Signature ใช้ในการพิสูจน์ทราบตัวตนของผู้ส่งข้อความ (Authentication) ใช้ตรวจสอบว่าข้อความนั้นถูกเปลี่ยนแปลงแก้ไขระหว่างการรับ-ส่งหรือไม่ (Data Integrity) เนื้อหาของข้อความมักเปิดเผยได้ เนื่องจากใช้หลักการตรงข้ามกับการเข้ารหัส
Digital Signature (Authentication) http://www.infosec.gov.hk/english/itpro/public_main.html
Digital Signature (Data Integrity) http://www.securityparagon.com/blog/?p=556
Digital Certificate ใช้ในการตรวจสอบเพื่อสร้างความมั่นใจว่า Public Key ที่เราได้มาใช้ในการเข้ารหัส เป็นของคู่สนทนาที่แท้จริง ใช้ระบบแจกจ่ายคีย์ที่เรียกว่า Certificate Authority (CA) ซึ่งจะเป็นผู้รับรองว่า Public Key เป็นของใคร โดยจะออก Digital Certificate ให้ นิยมนำมาใช้ในการรับรอง Website E-commerce เพื่อสร้างความน่าเชื่อถือ บริษัทที่ให้บริการ ได้แก่ Cybertrust, VeriSign etc.
Digital Certificate https://www.ida.gov.sg/Policies-and-Regulations/Acts-and-Regulations/Electronic- Transactions-Act-and-Regulations/Controller-of-Certification-Authorities/Key-Concepts
ผู้ให้บริการออกใบรับรองอิเล็กทรอนิกส์ (CA) ในประเทศไทย หน่วยงานภาครัฐ ได้แก่ 1. สำนักบริการเทคโนโลยีสารสนเทศภาครัฐ 2. สำนักงานคณะกรรมการกำกับหลักทรัพย์และตลาดหลักทรัพย์ 3. สำนักงานป้องกันและปราบปรามการฟอกเงิน 4. ธนาคารแห่งประเทศไทย 5. Khonthai CA 6. กระทรวงการคลัง หน่วยงานภาคเอกชน ได้แก่ 1. บริษัท ทีโอที จำกัด (มหาชน) 2. บริษัท กสท โทรคมนาคม จำกัด (มหาชน) 3. บริษัท ไทยดิจิทัล ไอดี จำกัด 4. บริษัท Max Saving (Thailand) Co.,Ltd
Digital Certificate
Hash Function Hash Function บางทีเรียกว่า Oneway-encryption เป็น Algorithm ในการเข้ารหัสโดยไม่ต้องใช้ Key และค่าแฮชที่ คำนวณจาก Plaintext มีความยาวคงที่ ซึ่งไม่สามารถคำนวณหา เนื้อหาและความยาวเดิมของข้อความเดิมได้ Hash Function จะใช้สำหรับการคำนวณ Digital Fingerprint ของเนื้อหาไฟล์ หรือ Message Digest เพื่อตรวจสอบดูว่าไฟล์ นั้นมีการเปลี่ยนแปลงโดยคนอื่นหรือ Virus หรือไม่
https://en.wikipedia.org/wiki/Cryptographic_hash_function
Hash Function ใช้ใน Operating System เพื่อเข้ารหัส Password ในการ Login ใช้ในการรักษาความคงสภาพของข้อมูล (Integrity) ที่นิยมใช้ได้แก่ MD5, SHA-1
Hash Function Example Message Digest (MD) Secure Hash Algorithm (SHA)
Message Digest (MD) Message Digest หรือเรียกสั้นๆว่า Digest แปลว่าข้อความ สรุปจากเนื้อหาข้อความตั้งต้น โดยปกติข้อความสรุปจะมีความ ยาวน้อยกว่าความยาวของข้อความตั้งต้นมากจุดประสงค์สำคัญ ของอัลกอริทึมนี้คือ การสร้างข้อความสรุปที่สามารถใช้เป็น ตัวแทนของข้อความตั้งต้นได้ โดยทั่วไปข้อความสรุป (Digest) จะมีความยาว 128 บิต และจะไม่ขึ้นกับขนาดความยาว ของข้อความตั้งต้น
Message Digest (MD) MD2 MD4 MD5
MD2 ผู้พัฒนาคือ Ron Rivest อัลกอริทึมนี้เชื่อกันว่ามีความ ข้อเสียของอัลกอริทึมนี้คือใช้เวลามากในการคำนวณ Digest หนึ่งๆ MD2 จึงไม่ค่อยได้มีการใช้งานกันมากนัก MD2 สร้าง Digest ที่มีความยาว 128 บิต
MD4 ผู้พัฒนาคือ Rivest เช่นเดียวกับ MD2 อัลกอริทึมนี้พัฒนาขึ้น ตามในภายหลังได้พบว่าอัลกอริทึมมีข้อบกพร่องที่เกี่ยวข้องกับ คุณสมบัติข้อที่ 3 [ความพร้อมใช้งาน (Availability)] โดยตรง กล่าวคือปัญหาการชนกันของ Digest มีโอกาสเกิดขึ้นได้ไม่ น้อย MD4 ผลิต Digest ที่มีขนาด 128 บิต
MD5 Rivest เป็นผู้พัฒนาเช่นกันโดยพัฒนาต่อจาก MD4 เพื่อให้มี ฟังก์ชันการคำนวณ ทำให้ใช้เวลาการทำงานมากขึ้น ถึงแม้จะ เป็นที่นิยมใช้งานกันอย่างแพร่หลาย ทว่าก็มีผู้พบจุดบกพร่อง ของ MD5 (เช่นเดียวกับ MD4) จึงทำให้ความนิยมเริ่มลดลง MD5 ผลิต Digest ที่มีขนาด 128 บิต
MD5 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 บิต
Secure Hash Algorithm (SHA) SHA-256, SHA-384 และ SHA-512
SHA-1 SHA-1 เป็น Algorithm ที่มีความปลอดภัยสูง ถูกนำไปใช้งานในหลากหลายรูปแบบ ทั้งในผลิตภัณฑ์รักษาความปลอดภัย รวมถึง Protocol หลายตัว เช่น SSL SHA-1 สร้าง Digest ที่มีขนาด 160 บิต
SHA-1 https://en.wikipedia.org/wiki/SHA-1
SHA-256, SHA-384 และ SHA-512 NIST เป็นผู้นำเสนอ Algorithm ทั้งสามนี้ในปี 2001 เพื่อ ใช้งานร่วมกับ Algorithm AES Algorithm เหล่านี้สร้าง Digest ที่มีขนาด 256, 384 และ 512 บิต ตามลำดับ
SHA-256 http://j-7system.blog.so-net.ne.jp/2014-01-14
Steganography เป็นการซ่อนหรืออำพรางข้อมูลที่ต้องการสื่อสาร ไปกับสิ่งอื่นๆซึ่งดูเหมือนไม่มีอะไรน่าสนใจ หรือเบี่ยงประเด็นความสนใจ เช่น รูปภาพ วิดีโอ บทความ เสียง หรือสิ่งอื่นๆที่ไม่ใช่ข้อความ บางครั้งเรียก Watermark
Steganography http://studentweb.niu.edu/9/~Z172699/Description.html
Steganography การซ่อนข้อมูลมักใช้การซ่อนในส่วนของ LSB (Least Significant Bit) ซึ่งผู้ใช้งานมักมองไม่เห็นความแตกต่างของข้อมูลที่เปลี่ยนไป (Picture, Sound, etc.) http://www.forensicmag.com/articles/2009/06/find-incriminating-contraband-images
Steganography
Steganography http://www.mobilefish.com/services/steganography/steganography.php
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/mp3stego/index.html) OurSecret (http://www.securekit.net/oursecret.htm)
Steganography การตรวจจับการซ่อนข้อมูล ใช้เครื่องมือ เช่น StegAlyzer (http://www.sarc-wv.com/) Stegdetect (http://www.outguess.org/detection.php) XStegSecret (http://stegsecret.sourceforge.net/)