280 likes | 604 Views
5. การเข้ารหัสและการถอดรหัส. พื้นฐานการเข้ารหัสข้อมูล จุดประสงค์การเข้ารหัส ( Encryption ) คือ การรักษาความลับของข้อมูล การเข้ารหัส ( Encryption ) เป็นกรรมวิธีที่ใช้แปลงข้อมูลธรรมดาที่เราสามารถอ่านได้ให้อยู่ในรูปสุ่มที่ไม่สามารถอ่านได้. การเข้ารหัส (Encryption). การถอดรหัส (Decryption).
E N D
5 การเข้ารหัสและการถอดรหัส
พื้นฐานการเข้ารหัสข้อมูลพื้นฐานการเข้ารหัสข้อมูล • จุดประสงค์การเข้ารหัส (Encryption) คือ การรักษาความลับของข้อมูล • การเข้ารหัส (Encryption)เป็นกรรมวิธีที่ใช้แปลงข้อมูลธรรมดาที่เราสามารถอ่านได้ให้อยู่ในรูปสุ่มที่ไม่สามารถอ่านได้ การเข้ารหัส (Encryption) การถอดรหัส (Decryption) ข้อมูลที่อ่านได้(Plain Text) ข้อมูลที่อ่านได้(Plain Text) ข้อมูลที่อ่านไม่ได้ (Cipher Text) กุญแจถอดรหัส DecryptionKey กุญแจเข้ารหัส EncryptionKey
Plain Text : ข้อมูลที่สามารถอ่านได้เรียกอีกอย่างว่า Clear Text • Cipher Text : ข้อมูลที่ถูกเข้ารหัสเอาไว้ไม่สามารถอ่านได้ • Encryption : ขบวนการเข้ารหัสข้อมูลโดยอาศัย Encryption Key ทำให้ Plain Text เปลี่ยนเป็น Cipher Text เพื่อไม่ให้อ่านข้อมูลได้ ดังนั้นหากผู้ส่งข้อมูลทำการเข้ารหัสข้อมูลเพื่อทำให้เป็น Cipher Text แล้วถึงส่งข้อมูลไปให้ฝั่งรับ ถึงแม้มีการขโมยข้อมูล ผู้ที่ขโมยข้อมูลก็ไม่สามารถอ่านข้อมูลได้ • Decryption : ขบวนการถอดรหัสข้อมูลโดยอาศัย Decryption Key ทำการแปลง Cipher Text กลับมาเป็น Plain Text ที่สามารถอ่านได้
รูปแบบวิธีการเข้ารหัสข้อมูลรูปแบบวิธีการเข้ารหัสข้อมูล • Caesar Substitution Ciphers • Monoalphabetic Substitution Ciphers • Transposition Ciphers • Secret Key Encryption • Public Key Encryption
Caesar Substitution Ciphers • เป็นการแทนค่าแต่ละตัวอักษรด้วยสัญลักษณ์เพียงตัวเดียว เป็นวิธีทีง่ายที่สุด ใช้มาตั้งแต่สมัยจูเลียส ซีซาร์ ในการเข้ารหัสเนื้อความจดหมายส่งไปให้ทัพทหารระหว่างการรบ • ตัวอย่าง การเข้ารหัสวิธีนี้ คือ การแทนค่าของแต่ละตัวอักษรด้วยตัวอักษรที่อยู่ถัดไปอีก 3 ตัว โดยมีวิธีการดังนี้ • Plain Text : a b c d e f g h I j k l m n o p q r s t u v w x y z • Cipher Text : d e f g h I j k l m n o p q r s t u v w x y z a b c • เช่น Love You ---> 0ryh brx
ข้อดี • ความง่ายในการเข้ารหัส ข้อเสีย • สามารถจะทำการวิเคราะห์หาข้อความเดิมจาก Cipher Text ได้ง่าย • โดยทดสอบการแทนที่ตัวอักษรไปเรื่อยๆ ก็จะเจอข้อความที่สามารถอ่านได้
Monoalphabetic Substitution Ciphers • เป็นการแทนค่าแต่ละตัวอักษรด้วยสัญลักษณ์เพียงตัวเดียวเช่นกัน แต่เป็นอย่างอิสระหรือไม่มีเหตุผลว่าทำไมต้องเป็นแบบนี้ • ตัวอย่าง มีการกำหนดตัวอักษรในการเข้ารหัสแทนที่ ตามแป้น • Plain Text : a b c d e f g h I j k L m n o p q r s t u v w x y z • Cipher Text : q w e r t y u I o p a s d f g h j k l z x c v b n m • เช่น Love You ---> sgct ngx • ในการเข้ารหัสข้อมูลและถอดรหัสข้อมูลทั้งสองฝ่ายจะต้องมี ตารางที่ใช้สำหรับการแทนที่ตัวอักษร และจะต้องเก็บตารางดังกล่าวไว้เป็นอย่างดี
ข้อดี • แบบนี้เมื่อมีการขโมย Cipher Text สามารถถอดได้ยากกว่าแบบแรก เนื่องจากแต่ละตัวมีอักษรที่จะสามารถเป็นไปได้ 26 ตัวอักษรดังนั้นคำตอบที่จะเป็นไปได้ทั้งหมดมี 26! ถ้าการถอดรหัสทำได้โดยใช้อักษรแทนลงที่แต่ละตัวต้องใช้เวลานานมากกว่าจะถอดได้
T H I S I T S S O 1 S A M E S H A A R 2 S A G E F I M G Y 3 O R Y O U S E E O 4 I S F U 5 1 2 3 4 5 Transposition Ciphers การแทนค่าตัวอักษรโดยการใช้วิธีการเลื่อนค่า • แบบไม่ใช้ Key: ไม่มีการสลับลำดับของหลัก • ตัวอย่างPlain Text : this is a message for you และใช้ 5 หลัก หลัก แถว Transposition : เปลี่ยนแถวในเป็นหลักเปลี่ยนหลักให้เป็นแถว Cipher Text : TSSOHAARIMGYSEEOISFU
M E G A B U C K 7 4 5 1 2 8 3 6 T H I S I S A M E S S A G E F O R Y O U A B C D Transposition Ciphers • แบบใช้ Key ช่วย :มีการจัดลำดับหลักตาม key เช่น MEGABUCK • ตัวอย่างPlain Text : this is a message for you กำหนด Key ขึ้นมาจะได้จำนวนหลักทั้งหมดและเรียงลำดับหลักตาม Key กรณีจำนวนตัวอักษรข้อความไม่พอ ให้กำหนดเป็นa b c … แทน Cipher Text : SAUIGAAFCHSYISOMODTERSEB
การถอดรหัส key คือMEGABUCK • Cipher Text : SAUIGAAFCHSYISOMODTERSEB • Plain Text : คืออะไร ... ทำเป็นการบ้าน ? • วิธีนี้เมื่อมีการขโมย Cipher Text จะถอดรหัสได้ยากเนื่องจาก ต้องทำการเดาจำนวนหลักทั้งหมดที่ใช้ และ ลำดับในการเรียงหลักดังกล่าวด้วย
Plain Text Plain Text Cipher Text เข้ารหัส Encryption ถอดรหัส Decryption กุญแจเข้ารหัส Encryption Key กุญแจถอดรหัส Decryption Key เทคโนโลยีการเข้ารหัส
หลักการของการเข้ารหัสข้อมูลก็คือแปลงข้อมูลไปอยู่ในรูปของข้อมูลที่ไม่สามารถอ่านได้โดยตรง ข้อมูลจะถูกถอดกลับด้วยกระบวนการถอดรหัส การถอดรหัส การเข้ารหัส ข้อมูลที่อ่านได้(Plain Text) ข้อมูลที่อ่านได้(Plain Text) ข้อมูลที่อ่านไม่ได้(Cipher Text)
Plain Text Plain Text Cipher Text การเข้ารหัส Encryption การถอดรหัส Decryption กุญแจรหัส Secret Key การเข้ารหัสแบบ Secret Key Encryption • การเข้ารหัสแบบนี้จะอาศัยกุญแจเข้ารหัสเพียงอันเดียวในการเข้ารหัสและถอดรหัสข้อมูล ซึ่งทั้งผู้รับและผู้ส่งข้อความจะใช้คีย์เดียวกัน ดังนั้นกุญแจดังกล่าวจึงต้องเก็บเป็นความลับ • วิธีนี้มีข้อเสียที่ทั้งสองฝ่ายต้องใช้รหัสลับร่วมกัน ดังนั้นถ้ามีการติดต่อระหว่างคน n คน จะต้องใช้คีย์เดียวกันหมด ทำให้แต่ละคนสามารถอ่านข้อความของกันได้
การเข้ารหัสแบบ Public Key Encryption Plain Text Plain Text Cipher Text การเข้ารหัส Encryption การถอดรหัส Decryption เก็บไว้ส่วนตัวไม่จ่ายแจกให้ใคร แจกจ่ายให้ทุกคน กุญแจรหัสสาธารณะ Public Key กุญแจรหัสส่วนตัว Secret Key • กุญแจ Public Key สามารถแจกจ่ายให้ผู้อื่นที่อยู่ในระบบได้และถูกใช้ในการเข้ารหัสข้อมูล • กุญแจ Secret Key จะถูกเก็บไว้เป็นความลับเพื่อใช้ในการถอดรหัสข้อมูล
A B PK SK PK:B PK:C PK SK PK:A C PK SK PK:B PK:A PK:C • การเข้ารหัสแบบนี้จะอาศัยคู่ของกุญแจPublic Key - Secret Key ใช้ในการเข้ารหัสและถอดรหัสข้อมูล ผู้ใช้แต่ละคนควรมีกุญแจ Public Key - Secret Key คนละคู่
A B PK SK PK:B PK SK PK:A Plain Text ที่ต้องการส่ง ให้ B PK:B การเข้ารหัส Encryption Cipher Text • ในการส่งข้อมูลจาก A ไปหา B นั้น ข้อมูลที่ต้องการส่งจะผ่านขบวนการเข้ารหัสข้อมูลโดยใช้ Public key ของB จะได้ Cipher Text ส่งไปยัง B
เมื่อข้อมูล Cipher ส่งมาถึง B แล้ว จะผ่านขบวนการถอดรหัสข้อมูลโดยใช้ Secret key ของB จะได้ Plain Text ที่ A ต้องการส่งถึง B A B PK SK PK:B PK SK PK:A Plain Text ที่ต้องการส่ง ให้ B SK:B Cipher Text การถอดรหัส Decryption