อาจารย์อภิพงศ์ ปิงยศ apipong.ping@gmail.com บทที่ 4 : Cryptography & Steganography Part1 สธ412 ความมั่นคงของระบบสารสนเทศ อาจารย์อภิพงศ์ ปิงยศ apipong.ping@gmail.com
Cryptography & Steganography Secret Key Cryptography
Cryptography & Steganography
Cryptography & Steganography [2] เอกสารทางประวัติศาสตร์ระบุว่ามีการใช้การ เข้ารหัสข้อมูลครั้งแรก 1900 ปีก่อนคริสต ศักราช โดยชาวอียิปต์ การเข้ารหัสข้อมูลถูกพัฒนาขึ้นมาเรื่อยๆตาม ระบบการสื่อสาร ความจำเป็นมีมากขึ้นโดยเฉพาะอย่างยิ่งบน เครือข่ายอินเทอร์เน็ต
การเข้า-ถอด รหัสข้อมูล Plaintext Ciphertext Encrypt Decrypt ATTACK MIDNIGHT D$%#@OP*+E13G
Cryptography & Steganography [3] Secret Key Cryptography Public Key Cryptography (Next…) Hash Function (Next…)
Secret Key Cryptography เรียกอีกอย่างหนึ่งว่า การเข้าและถอดรหัส แบบสมมาตร (Symmetric Key) คีย์ที่ใช้จะมีความยาวคงที่
Secret Key Cryptosystem
Secret Key Cryptography [2] การเข้ารหัสข้อมูลแบบนี้ คีย์ที่ใช้ในการเข้า และถอดรหัสจะต้องทราบเหมือนกันทั้งฝ่ายรับ และฝ่ายส่ง ซึ่งจะต้องเก็บเป็นความลับ จุดอ่อนของวิธีนี้คือการแจกจ่ายคีย์ เพราะ ตอนเริ่มต้นจะต้องมีฝ่ายใดฝ่ายหนึ่งที่ยังไม่ได้ รับคีย์ ควรมีการยืนยันตัวตน (Authentication) ก่อนการแจกจ่ายคีย์
Secret Key Cryptography [3] ข้อดีของการเข้ารหัสแบบซีเคร็ทคีย์คือเป็นวิธีที่ ค่อนข้างเร็ว ข้อเสีย คืออัลกอริทึมส่วนใหญ่ที่ใช้เข้าและ ถอดรหัสจะถูกตีพิมพ์เพื่อให้สาธารณะรับรู้อยู่แล้ว และเนื่องจากคีย์ที่ใช้เข้าและถอดรหัสเป็นตัว เดียวกัน ทำให้ใครก็ตามที่ได้คีย์ไปก็สามารถ ถอดรหัสข้อมูลได้ การแจกจ่ายคีย์อาจเป็นการส่งมอบแบบปากต่อ ปาก ผ่านโทรศัพท์ หรือผ่านช่องทางอื่นๆที่เป็น คนละช่องทางกับการส่งข้อมูล Ciphertext
Secret Key Cryptography [3] การเข้ารหัสแบบซีเคร็ทคีย์แบ่งได้เป็น 2 ประเภท คือ Stream Ciphers Block Ciphers
Secret Key Cryptography : Stream Ciphers เป็นการเข้ารหัสทีละบิต หรือไบต์ หรือเวิร์ด มีกลไกทำให้คีย์เปลี่ยนไปเรื่อยๆ การเข้ารหัสแบบนี้ ข้อดีคือการเข้ารหัส ข้อมูลจาก Plaintext เดียวกัน จะได้ Ciphertext ที่ไม่เหมือนกัน ข้อเสีย คือการส่งต่อความผิดพลาด (Error Propagation) หากส่งข้อมูลผิดพลาด 1 บิต ก็จะทำให้ข้อมูลที่เหลือของฝ่ายรับผิดไป ทั้งหมด
กระบวนการ Stream Cipher
Secret Key Cryptography : Block Ciphers ใช้วิธีการเข้ารหัสทีละกลุ่มข้อมูลที่มีขนาด เท่ากัน ผลลัพธ์ข้อมูลที่เข้ารหัสจะมีขนาดเท่ากับข้อมูล อินพุต