420 likes | 904 Views
บทที่ 4 Encryption. Outline. Data Confidential ระบบรหัสลับ (Cryptosystem) การเข้ารหัส (Encryption) อัลกอริธึมในการเข้ารหัส รูปแบบการเข้ารหัส. 1. Data Confidential. ข้อมูลเป็นความลับ (Data Confidential) เป็น การรับประกันว่าผู้ที่มีสิทธิ์และได้รับอนุญาตเท่านั้นที่สามารถเข้าถึงข้อมูล ได้
E N D
บทที่ 4 Encryption PanidaPanichkul
Outline • Data Confidential • ระบบรหัสลับ (Cryptosystem) • การเข้ารหัส (Encryption) • อัลกอริธึมในการเข้ารหัส • รูปแบบการเข้ารหัส
1. Data Confidential • ข้อมูลเป็นความลับ (Data Confidential)เป็นการรับประกันว่าผู้ที่มีสิทธิ์และได้รับอนุญาตเท่านั้นที่สามารถเข้าถึงข้อมูลได้ • ทำได้โดยใช้กลไก “กลไกการเข้ารหัส (Encryption)” • กลไกการเข้ารหัสเป็นองค์ประกอบส่วนหนึ่งของ “ระบบรหัสลับ (Cryptosystem)”
2. Cryptosystem • Cryptosystemคือ ระบบรหัสลับที่ประกอบไปด้วยองค์ประกอบหลายส่วน เป็นระบบที่ทำหน้าที่ในการเข้ารหัสข้อมูล (Encryption) โดยข้อมูลหรือข้อความที่เป็นต้นฉบับ เรียกว่า “Plaintext” เมื่อผ่านการเข้ารหัสแล้ว จะกลายเป็น ข้อความที่ไม่สามารถอ่านแล้วเข้าใจความหมายได้ เรียกข้อความนั้นว่า “Ciphertext” ซึ่งจะถูกนำมาถอดรหัส (Decryption) เพื่อให้กลายเป็นข้อความต้นฉบับดังเดิม โดยมี “กุญแจรหัส (Encryption Key)” เป็นกลไกสำคัญในการเข้าและถอดรหัส
3. Encryption • การเข้ารหัสข้อมูล (Encryption) คือ การทำให้ข้อมูลต้นฉบับ (Plaintext) เป็นข้อมูลที่อ่านไม่รู้เรื่อง (Cipher Text) โดยใช้กุญแจแปลงข้อมูล แล้วส่งไปยังผู้รับที่เราต้องการส่งให้ เมื่อผู้รับได้ข้อมูลก็จะใช้กุญแจแปลงข้อมูลกลับเป็นต้นฉบับที่สามารถอ่านได้รู้เรื่องเหมือนเดิม
4. อัลกอริธึมในการเข้ารหัส • การเข้ารหัสข้อมูล จะใช้กุญแจร่วมกับ “อัลกอริธึม” หรือระเบียบปฏิบัติในการใช้กุญแจ ซึ่งแบ่งเป็น 2 ประเภท คือ การเข้ารหัสแบบสมมาตร และแบบอสมมาตร
4.1 การเข้ารหัสแบบสมมาตร (Symmetric Encryption) • คือการเข้ารหัสข้อมูลด้วยกุญแจเดี่ยวหรือกุญแจลับ (Secret Key) ทั้งผู้ส่งและผู้รับ โดยวิธีการนี้ผู้รับกับผู้ส่งต้องตกลงกันก่อนว่าจะใช้รูปแบบไหนในการเข้ารหัสข้อมูล ซึ่งรูปแบบไหนในการเข้ารหัสข้อมูลที่ผู้รับกับผู้ส่งตกลงกันแท้ที่จริงก็คือ กุญแจลับ (Secret Key) นั่นเอง เช่น ผู้ส่งกับผู้รับตกลงจะใช้เทคนิคการแทนที่ตัวอักษรที่อยู่ถัดไป 1 ตำแหน่ง เช่น ถ้าเห็นตัวอักษร A ก็ให้เปลี่ยนไปเป็น B หรือเห็นตัวอักษร B ก็ให้เปลี่ยนไปเป็น C เป็นต้น นั้นก็คือผู้ส่งกับผู้รับตกลงใช้รูปแบบนี้เป็นกุญแจลับ
http://www.ca.tot.co.th • การเข้ารหัสรูปแบบนี้ทางบริษัท IBM ได้นำไปพัฒนาเป็นอัลกอริธึม “DES (Data Encryption Standard)” ซึ่งเป็น มาตรฐานอัลกอริธึมที่ใช้ในการรักษาความปลอดภัย และได้มีการพัฒนาประสิทธิภาพของอัลกอริธึมเรื่อยมา
DES (Data Encryption Standard) Key มีขนาด 56 บิต ซึ่งนับว่าเป็น Key ที่มีความยาวน้อยมาก จึงง่ายต่อการไขรหัสโดยแฮคเกอร์ • 3DES (Triple Data Encryption Standard) วิธีนี้ถูกพัฒนาขึ้นมาเพื่อแก้ปัญหาขนาดของ Key ที่น้อยเกินไปของวิธี DES โดยมีขั้นตอนการเข้าและถอดรหัส ดังรูป ใช้ Key 2 ตัว แต่ละ Key มีขนาด 56 บิต รวมเป็น 112 บิต ซี่งทำให้ยากต่อการคาดเดาของแฮคเกอร์ 3DES จึงปลอดภัยกว่า DES
AES (Advanced Encryption Standard)เป็นมาตรฐานที่กำหนดให้ Key มีขนาด 128, 192 และ 256 บิต โดยข้อมูลที่จะนำมาเข้ารหัสเมื่อแบ่งเป็นบล็อกแล้ว แต่ละบล็อกต้องมีขนาด 128 บิต สำหรับอัลกอริธึมที่นิยมใช้ ได้แก่ RijndaelAlgorithm อ่านว่า เรนดอลซึ่งเป็น มาตรฐานที่มีประสิทธิภาพและมีความปลอดภัยสูง อีกทั้งยังสามารถนำไปใช้กับอุปกรณ์เคลื่อนที่ เช่น โทรศัพท์มือถือ หรือ Pocket PC ได้ด้วย
4.2 การเข้ารหัสแบบอสมมาตร (Asymmetric Encryption) • การเข้ารหัสแบบนี้จะใช้หลักกุญแจคู่ทำการเข้ารหัสและถอดรหัส โดยกุญแจคู่ที่ว่านี้จะประกอบไปด้วย กุญแจส่วนตัว (private key) และกุญแจสาธารณะ (public key) โดยหลักการทำงาน คือ ถ้าใช้กุญแจลูกใดเข้ารหัส ก็ต้องใช้กุญแจอีกลูกหนึ่งซึ่งเป็นคู่กันถอดรหัส สำหรับการเข้ารหัสและถอดรหัสด้วยกุญแจคู่นี้จะใช้ฟังก์ชั่นทางคณิตศาสตร์เข้ามาช่วยโดยที่ฟังก์ชั่นทางคณิตศาสตร์ที่นำมาใช้ ได้รับการพิสูจน์แล้วว่าจะมีเฉพาะกุญแจคู่ของมันเท่านั้นที่จะสามารถถอดรหัสได้ ไม่สามารถนำกุญแจคู่อื่นมาถอดรหัสได้อย่างเด็ดขาด
อัลกอริทึมอาร์เอสเอ (RSA Algorithm) เป็นอัลกอริธึมมาตรฐานของ การเข้ารหัสแบบอสมมาตร โดย RSA จะใช้วิธีการคำนวณทางคณิตศาสตร์ในการเข้าและถอดรหัส
5. รูปแบบ (เทคนิค/วิธี) การเข้ารหัส • Substitution Cipher • Vigenère Cipher • Transposition Cipher
5.1 Substitution Cipher • หรือเรียกว่า “ระบบรหัสลับแบบแทนค่า” มีหลักการ คือ แทนค่าตัวอักษรในข้อความ Plaintext ด้วยตัวอักษรตัว • การแทนค่าตัวอักษรด้วยวิธีนี้ จะต้องมี Key คือ หลักในการแทนค่า เช่น แทนตัวอักษรในภาษาอังกฤษตำแหน่งใดๆ ด้วยตัวอักษรลำดับถัดไปอีก 3 ตำแหน่ง (คือใช้ตัวอักษรตัวที่ 4 นั่นเอง) กล่าวได้ว่า Key ของการเข้ารหัส คือ 3 เป็นต้น แสดงตัวอย่างดังนี้
จากตัวอักษรภาษาอังกฤษทั้ง 26 ตัวในช่อง Plaintext ข้างต้น ทดลองเข้ารหัสข้อความต่อไปนี้ โดยใช้ Key = 3 • การเข้ารหัสด้วย Key = 3 ของ Substitution Cipher เรียกอีกอย่างหนึ่งว่า “Caesar’s Cipher” เนื่องจากเป็นการเข้ารหัสที่คิดค้นโดย Julius Caesa
5.2 Vigenère Cipher • ใช้ตารางตัวอักษรเป็นรหัสลับ เรียกตารางดังกล่าวว่า “VigenèreSquare”(ไวเจเนียร์) เป็นตารางที่ประกอบไปด้วยตัวอักษรภาษาอังกฤษ 26 ตัว แต่ละตัวอักษรถูกจัดวางเรียงลำดับ ทั้งในแนวตั้งและแนวนอน รวมเป็น 26 x 26 ตัวอักษร โดยตัวอักษรในแถวแรกจะเรียงลำดับตามปกติ แต่จะขยับไปด้านขวามือทีละ 1 ตัวอักษรในแถวถัดไป
วิธีที่ 1 เริ่มต้นที่แถวที่ 1 ให้มองหารหัสที่ตรงกับตัวอักษรตัวแรกของ Plaintext (ใช้หัวคอลัมน์แทน Plaintext) สำหรับตัวอักษรตัวที่ 2 ของ Plaintext ให้มองหารหัสที่ตรงกันในแถวที่ 2 ทำเช่นนี้ต่อไปเรื่อยๆ จนกว่าจะครบทุกตัวอักษรของ Plaintext ก็จะได้ Ciphertextที่สมบูรณ์ ตัวอย่างเช่น ต้องการเข้ารหัส Plaintext คำว่า “SUBSTITUTION” จะได้ ผลลัพธ์ ดังนี้
วิธีที่ 2 กำหนด Keyword ขึ้นมา โดยอาจเป็น 1 คำหรือมากกว่าก็ได้ นำตัวอักษรของ Plaintext มาวางเรียงติดกันเป็นแถวโดยไม่มีช่องว่างระหว่างคำ จากนั้นนำตัวอักษรของ Keyword มาวางเรียงติดกันไปจนครบเท่ากับตัวอักษรของ Plaintext แล้ววางไว้เป็นแถวบนของ Plaintext จับคู่ตัวอักษรของ Keyword กับ Plaintext ที่ตรงกันทีละคู่ ให้ตัวอักษรของ Keyword แทนตำแหน่งคอลัมน์ ส่วนตัวอักษรของ Plaintext แทนตำแหน่งแถวในตาราง แล้วลากเส้นไปตัดกันที่รหัสใด ให้ใช้รหัสนั้นเป็น Ciphertextทำเช่นนี้ไปจนกระทั่งครบทุกตัวอักษรของ Plaintext ดังตัวอย่างต่อไปนี้
5.3 Transposition Cipher • Key สำคัญของการเข้ารหัสชนิดนี้ คือ การกำหนดรูปแบบการสลับตำแหน่ง เรียกว่า “Key Pattern” ยกตัวอย่าง ดังนี้ • กำหนด Plaintext ในระดับบิต โดยแบ่งเป็นบล็อกๆ ละ 8 บิต ดังนี้ 00100101 01101011 10010101 01010100 • ส่วน Key Pattern กำหนดไว้ ดังนี้ 1 4, 2 8, 3 1, 4 5, 5 7, 6 2, 7 6, 8 3
5.3 Double Transposition Cipher • เป็นการสลับตำแหน่งข้อความ Plaintext แบบ Array 2 มิติ คือ วางข้อความไว้ทั้งในแนวตั้งและแนวนอน • กำหนดให้ Plaintext “Attack at dawn” อยู่ใน Array ขนาด 3x 4 ดังนี้ • กำหนด Key Pattern ดังนี้ • แถว: (1, 2, 3) (3, 2, 1) • คอลัมน์: (1, 2, 3, 4) (4, 2, 1, 3)
5.3 Double Transposition Cipher • เมื่อนำ Plaintext มาเข้ารหัสตาม Key Pattern ข้างต้น โดยสลับตำแหน่งแถวก่อนคอลัมน์ จะทำให้ได้ผลลัพธ์ ดังนี้ • ผลลัพธ์สุดท้าย = NADWTKCAATAT • จากผลลัพธ์ข้างต้น ลองแปลงกลับ โดยใช้ Key Pattern เดียวกัน ??
ลองทำ 1. จาก Plaintext ให้หา Ciphertext 1 – 4 โดยใช้ Key = 3
ลองทำ • จาก Ciphertext 1-4 ในสไลด์ที่ผ่านมา ให้นำมาใช้เข้ารหัส Plaintext คำว่า “TEXT” โดยมีเงื่อนไขการเข้ารหัส ดังนี้ • ตัวอักษรตัวแรกของ Plaintext ให้ใช้ Ciphertext 1 ในการเข้ารหัส ใช้ Key=3 • ตัวอักษรตัวที่สองของ Plaintext ให้ใช้ Ciphertext2 ในการเข้ารหัส ใช้ Key=6 • ตัวอักษรตัวที่สามของ Plaintext ให้ใช้ Ciphertext3 ในการเข้ารหัส ใช้ Key=9 • ตัวอักษรตัวที่สี่ของ Plaintext ให้ใช้ Ciphertext4 ในการเข้ารหัส ใช้ Key=12
กิจกรรม • ให้นักศึกษาแบ่งกลุ่ม กลุ่มละ 2คน • แต่ละกลุ่มให้หาวิธีการเข้ารหัสรูปแบบใหม่ๆ มานำเสนอหน้าชั้นเรียน
Reference • http://www.dld.go.th: [Available: 5 December 2012] • Intrusion Detection, Firewall, James Joshi, 2008 • พนิดา พานิชกุล, ความมั่นคงปลอดภัยของสารสนเทศ, 2553.