Information system security wk1-1

1,198 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,198
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
72
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Information system security wk1-1

  1. 1. IT346 Information System Security Week 3-1: Symmetric-Key Cryptography อ.พงษ์ศกดิ์ ไผ่แดง ั Faculty of Information Technology Page 1
  2. 2. Cryptography  Cryptography หมายถึงวิทยาการรหัสลับ มาจากคาว่า crypto ที่แปลว่า ซ่อน และคาว่า graph ที่แปลว่าการเขี ยนCryptography จึงมีความหมาย ว่า “การเขี ยนเพื่อซ่อนข้อมูล”  Cryptography ใช้ในการปองกันข้อมูลและสารสนเทศ โดยประกอบด้วย ้ 3 เทคโนโลยีหลัก ‣ Symmetric Key Cryptography หรือ Secret Key Cryptographyคือการเข้ารหัส ข้อมูลแบบ “สมมาตร” ‣ Asymmetric Key Cryptography หรือ Public Key Cryptographyคือการ เข้ารหัสข้อมูลแบบ “อสมมาตร” ‣ Hash Function คือการสร้างตัวแทนข้อมูล Faculty of Information Technology Page
  3. 3. Cryptography  Cryptanalysis หมายถึ งการพยายามวิเคราะห์เพื่อศึ กษาประเด็ นต่างๆที่ เกี่ยวข้องกับ Cryptography  Sensitive Data หมายถึ งข้อมูลสาคัญที่ถือว่าเป็ นความลับไม่สามารถ แพร่งพรายออกสู่ภายนอกได้ Faculty of Information Technology Page
  4. 4. Symmetric-Key Cryptography  Plaintext –ข้อมูลต้นฉบับ  Encryption algorithm –ดาเนิ นการแทนที่ (substitutions) หรือ แปลงข้อมูล     (transformations) บน plaintext Secret Key –ควบคุมการ substitutions/transformationsที่เกิดขึ้นใน กระบวนการ encryption Ciphertext – ข้อมูลที่ถกแปลงด้วย substitutions/transformationsแล้ว ู Decryption – กระบวนการย้อนกลับของ encryption ความแข็งแกร่งของ encryption อยู่ที่การรักษาความลับของ keyที่ใช้ Plaintext Key Encryption E(P,K)  C Faculty of Information Technology Key Ciphertext Plaintext Decryption D(C,K)  P Page
  5. 5. อัลกอริทึมมาตรฐานสาหรับการเข้ารหัส  อัลกอริทึม DES (Data Encryption Standard) ‣ Key size 56 bits  อัลกอริทึม 3-DES (Triple-DES) ‣ Key size 112 bits  อัลกอริทึม IDEA (International Data Encryption Algorithm) ‣ Key size 128 bits  อัลกอริทึม AES (Advanced Encryption Standard) ‣ Key size 128, 192, 256 bits Faculty of Information Technology Page 5
  6. 6. DES Algorithm  DES ย่อมาจาก Data Encryption Standard เป็ นการเข้ารหัส แบบบล็ อค (Block cipher) ที่พฒนามาจากอัลกอริทึม Lucifer ของ IBM โดย ั Lucifer ได้รบการพัฒนาเพิ่มความสามารถและเปลี่ยนชื่อเป็ น DES แล้ว ั ได้รบการนาเสนอต่อ US NIST (US National Institute of Standards ั and Technology) ให้กลายเป็ นมาตรฐานการเข้ารหัส  DES เป็ นอัลกอริทึมแบบบล็ อก (Block Cipher) ใช้ Key ขนาดความยาว 56 bits ดาเนิ นการบนบล็ อคข้อมูล (Data Block) ขนาด 64 bits Faculty of Information Technology Page 6
  7. 7. DES Overview 64-bit Plaintext … 64-bit Key Initial Permutation PC1 64 bit Round 0 64 bit Round 1 … K1 48 bit K2 48 bit 56 bit PC2 PC2 Left Circular Shift 56 bit 64 bit Round 15 56-bit Key 56-bit Key Left Circular Shift 56-bit Key K16 48 bit PC2 56 bit Left Circular Shift 64 bit 32-bit Swap 64 bit Inverse Initial Permutation … 64-bit Ciphertext Faculty of Information Technology Page 7
  8. 8. DES Overview  ขันตอนการทางานของ DES Algorithm บน Data Block โดยสังเขป ้ 1) Data Block ขนาด 64 bits จะถูกสลับตาแหน่ ง (สลับบิต)เรียกขันตอนนี้ ว่า ้ Initial Permutation (IP) 2) Data Block ถูกดาเนิ นการอีก 16 รอบ แต่ละรอบมีการแทนที่บิต (substitution) และการสลับบิต (permutation) โดยใช้ key ขนาด 48 bits 3) Data Block ถูกสลับครึ่งแรกของบล็อคกับครึ่งหลังของบล็ อค 4) Data Block ถูกสลับบิตแบบกลับทิศทางกับขันตอนแรก เรียกว่า Inverse ้ Initial Permutation  ขันตอนการทางานของ DES Algorithm บน Key Block โดยสังเขป ้ a) Key Block ขนาด 64 bits จะถูกสลับบิตเรียกขันตอนนี้ ว่า Permutation ้ Choice 1 (PC1) โดยเลือก 56 bits ออกมาจาก 64 bits แล้วแบ่งครึ่งเป็ น ครึ่งละ 28 bits b) Key Block ถูกดาเนิ นการอีก 16 รอบ แต่ละรอบมีการวนบิตไปทางซ้ายแบบ เป็ นวงกลม (Left Circular Shift) และการสลับบิต (permutation) เพื่อสร้าง key ขนาด 48 bits สาหรับการดาเนิ นการบน Data Block ขัน 2) ้ Faculty of Information Technology Page 8
  9. 9. รอบการทางานบน Data Block  การดาเนิ นงานบน Data Block แต่ละรอบใน 16 รอบ เป็ นดังนี้ 64-bit Round 0 L0 (32 bits) R0 (32 bits) f K1 XOR Round 1 L1=R0 R1=(L0 XOR f(R0,K1)) f K2 XOR L2=R3 Faculty of Information Technology R2=(L1 XOR f(R1,K2)) Page 9
  10. 10. รอบการทางานบน Data Block แต่ละรอบของการทางาน (Round 0 – 15)  ข้อมูลในส่วนทางขวา (Ri) 32 bits และคียย่อย K ของรอบนันๆ จะถูก ์ ้ นามาดาเนิ นการผ่านฟั งก์ชน f ได้ผลลัพธ์เป็ น f(Ri,Ki-1) ั่  ผลลัพธ์ท่ีได้จากทังส่วนทางซ้าย (Li) และขวา f(Ri,Ki-1) จะถูกนามา ้ รวมกันแบบ XOR  ผลลัพธ์ที่ได้จากการ XOR จะถูกใช้เป็ นข้อมูลส่วนทางขวาของรอบใหม่ (Ri+1) และข้อมูลของส่วนทางขวาเดิม (Ri) ก็จะกลายเป็ นข้อมูลส่วนซ้าย ของวงรอบใหม่ (Li+1) Faculty of Information Technology Page 10
  11. 11. รอบการทางานบน Data Block ฟั งก์ชน f ทาหน้าที่ดงนี้ ั่ ั  ฟั งก์ชน f ทาการขยายข้อมูลในส่วนทางขวา (Ri) 32 bitsให้กลายเป็ น ั่ ข้อมูลขนาด 48 bits พร้อมทังเลื่ อนบิตของ Key ซึ่งมีเพียง 48 bits (จาก ้ เดิม 56 bits) จากนันจึงนาข้อมูลมารวมกับ key ด้วยการ XOR ้  ผลลัพธ์ขนาด 48 bits ที่ได้จากการรวม จะถูกนาไปทาการแทนที่ (substitution) อีก 8 ครัง ผลลัพธ์จากการแทนที่จะเหลื อข้อมูลเพียง 32 ้ bits เท่านัน ้  ผลลัพธ์จากการแทนที่จะถูกสลับตาแหน่ ง (Permutation) อีกครัง ้  หนึ่ งรอบของการทาฟั งก์ชน f จะประกอบด้วยขบวนการข้างต้นทังหมด 4 ั่ ้ ครัง ้ Faculty of Information Technology Page 11
  12. 12. รอบการทางานบน Data Block  โครงสร้างของฟั งก์ชน f ในรอบการทางาน ั่ การทางานของฟั งก์ชน f ประกอบด้วย S-box ทังหมด ั่ ้ 8 กล่อง แต่ละกล่องทาหน้าที่ map ข้อมูล 6 bits ไป เป็ น 4 bits เช่น S(18 09 12 3d 11 17 38 39) = 5fd25e03 Faculty of Information Technology Page 12
  13. 13. ภาพรวม รอบการทางานบน Data Block Faculty of Information Technology Page 13
  14. 14. รอบการทางานบน Key Block  อี กด้านหนึ่ งของการทางานใน DES คือการสร้าง subkeys เพื่อใช้ในแต่ละ รอบ ซึ่งประกอบด้วยขันตอน ต่อไปนี้ ้ ‣ การสลับบิตของ key ในขันต้น เรียกว่าเป็ น initial permutation ้ (Permutation Choice 1, PC1) ซึ่งทาการเลือก 56bits โดยแบ่งครึ่งเป็ น 2 ส่วน ครึ่งละ 28bit ‣ รอบ 16 รอบประกอบด้วย: • หมุนส่วน 28 bit แต่ละส่วนโดยเลื่ อนบิตไป 1 หรื อ 2 ตาแหน่ ง ขึ้ นกับ key rotation schedule • เลื อก 24 bits จากแต่ละครึ่ ง แล้วสลับบิตด้วย PC2 จากนันจึ งนาไปใช้ ้ ดาเนิ นการกับ data block ในรอบนันๆ ้ Faculty of Information Technology Page 14
  15. 15. DES Decryption  โดยปกติแล้วการถอดรหัส (decryption) สาหรับ Block Cipher จะเป็ น การย้อนการทางานของการเข้ารหัส (encryption)  แต่ DES ถูกออกแบบมาอย่างดี ทาให้อลกอริทึมการถอดรหัส ั (decryption) เป็ นอัลกอริทึมเดียวกับการเข้ารหัส (encryption) มีลาดับ การทางานเหมือนกัน เพียงแต่ใช้ subkeys (K1 … K16) ในลาดับกลับกัน เท่านัน ้  ดังนันในการ decryption เราสามารถใช้ Hardware ชุดเดียวกันกับการ ้ Encryption ได้โดยปอน subkeys ตามลาดับ K16 … K1 ้ ‣ สะดวกต่อการใช้งาน และประหยัดค่าใช้จ่าย Faculty of Information Technology Page 15
  16. 16. DES Decryption  DES decryption สามารถหักล้าง DES Encryption ได้ดงนี้ ั ‣ ขันตอน Initial Permutation ซึ่งเป็ นขันตอนแรกของการ decryption ลบล้าง ้ ้ ขันตอน Inverse Initial Permutation ซึ่งเป็ นขันตอนสุดท้ายของการ ้ ้ encryption ‣ Round 0 โดยใช้ K16 เป็ นการลบล้าง Round 15 ของ encryption ‣ …. ‣ Round 15 โดยใช้ K1 เป็ นการลบล้าง Round 0 ของ encryption ‣ ขันตอน Inverse Initial Permutation ซึ่งเป็ นขันตอนสุดท้ายของการ ้ ้ decryption ลบล้างขันตอน Initial Permutation ซึ่งเป็ นขันตอนแรกของการ ้ ้ encryption ‣ สุดท้าย จะได้ plaintext ขนาด 64 bits กลับคืนมา Faculty of Information Technology Page 16
  17. 17. Avalanche Effect  Avalanche Effect เป็ นคุณสมบัติท่ีเป็ นที่ตองการ สาหรับ encryption ้ algorithm  เมื่อเปลี่ ยน input หรือ key ไปเพียง 1 bit ก็จะเปลี่ ยน bits ของ output ไปประมาณครึ่งหนึ่ ง  DES ให้ Avalanche Effect ที่ดี Faculty of Information Technology Page 17
  18. 18. Strength of DES – Key Size  Key ขนาด 56-bit ให้ค่าที่เป็ นไปได้ทงหมด 256 = 7.2 x 1016 ค่า ั้  การโจมตีแบบ brute force search เป็ นไปได้ยาก  อย่างไรก็ตาม มีการค้นพบว่า การทา brute force search บน key ของ DES Algorithm เป็ นไปได้ ‣ ปี 1997 บริษท Distribution.net ใช้ระบบบน Internet สามารถทาได้ภายใน ั เวลา 41 วัน ‣ ปี 1998 บริษท EFF สร้าง hardware เฉพาะสาหรับแก้ปัญหานี้ ทาได้ภายใน ั ่ เวลา 56 ชัวโมง ‣ ปี 1999 Distribution.net และบริษท EFF ก็จบมือกันและใช้คอมพิวเตอร์กว่า ั ั ่ ่ 100,000 เครื่องทัวโลกสามารถแคร็ก DES ได้ใน 22 ชัวโมง 15 นาที  จึงต้องหาทางเลื อกในการ encryption ที่แข็ งแกร่งกว่า DES Faculty of Information Technology Page 18
  19. 19. ทางเลือกที่แข็ งแกร่งกว่า DES  การขยาย Key ของ DES จาก 64 bits ให้เป็ น 128 bits เพื่อจะได้ใช้เวลา ในการ crack นานขึ้น ‣ ปั จจุบน DES แบ่งออกเป็ น DES 64 Bit และ DES 128 Bit ั  แต่ถึงแม้ว่าจะใช้ 128 bit ก็ตาม DES ก็ยงสามารถถูก crack ได้ จึงได้มี ั การพัฒนาให้มี Triple-DES (3DES) ที่มีความแข็ งแกร่งมากขึ้ น Faculty of Information Technology Page 19
  20. 20. Triple-DES (3DES) with Two-Keys  Triple-DES เป็ นการเข้ารหัสที่ถกสร้างมาเพื่อแก้ปัญหาความอ่อนแอของ ู DES โดย Triple-DES จะช่วยเสริมความปลอดภัยให้การเข้ารหัสมี ปลอดภัยมากขึ้น  ใช้อลกอริทึม DES เป็ นจานวน 3 ครังเพื่อทาการเข้ารหัส ั ้  ใช้ key เพียง 2 คียในการทา Encryption ด้วยลาดับ Encrypt-Decrypt์ Encrypt C = EK1(DK2(EK1(P))) ‣ หาก K1 = K2 จะกลายเป็ น DES ธรรมดา  ความแข็ งแกร่งนี้ จึงทาให้ Triple-DES เป็ นอี กหนึ่ งในมาตรฐานในการ เข้ารหัสในปั จจุบน ั Faculty of Information Technology Page 20
  21. 21. Triple-DES (3DES) with Two-Keys  กระบวนการ Encryption แบบ 3DES อาจใช้ Key เพียง 2 คีย ์ 64-bit Plaintext DES Encryption Key 1 DES Decryption Key 2 DES Encryption Key 1 64-bit Ciphertext Faculty of Information Technology Page 21
  22. 22. AES (Advance Encryption Standard)  AES (Advance Encryption Standard) เป็ นการเข้ารหัสที่พฒนาขึ้ นมาเพื่อ ั     ใช้ทดแทน DES หลังจากที่ DES ถูก break ได้ โครงการพัฒนา AES ได้ เริ่มต้นเมื่อปี 1997 โดย NIST ่ ในปี 1998 NIST ก็ให้นกวิทยาการหัสลับทัวโลกส่งอัลกอริทึมเข้ามาเพื่อ ั คัดเลือกโดยกาหนดให้ใช้ data block ขนาด 128 bit เป็ นมาตรฐาน อัลกอริทึมต่างถูกคัดเลือกเข้ามาทังสิ้ น 15 อัลกอริทึม และมีอยู่ 5 ้ อัลกอริทึมที่ผ่านเข้ารอบชิง อัลกอริทึมของ Rijndael ชนะการคัดเลื อก เนื่ องจากเป็ นอัลกอริทึมที่เร็ว กว่าและซับซ้อนน้อยกว่า แต่ได้ความปลอดภัยเท่ากัน Rijndael Algorithm กลายเป็ น RFC 3826 และเมื่อปี 2004 ข้อกาหนดใน มาตรฐานล่าสุดอนุญาตให้ใช้ AES เข้ารหัสข้อมูลโดยใช้ Key ทีมขนาดต่าง ่ ี ๆ ได้ ซึ่งได้แก่ 128 Bit, 192 Bit และ 256 Bit Faculty of Information Technology Page 22
  23. 23. การทางานของ AES  AES เป็ นการดาเนิ นการบน Bytes จึงทาให้ง่ายในการพัฒนาระบบ และมี ความรวดเร็วในการเข้าและถอดรหัส  Data Block ขนาด 128 bits = 16 bytes ‣ มอง Data Block 16 bytes เป็ นตารางขนาด 4 x 4 ‣ สถานะปั จจุบนของ bytes ในตาราง เรียกว่าเป็ น Current State ั ‣ Current State (สถานะของตาราง bytes) จะถูกดาเนิ นการทังหมด 10 รอบ ้ ทาให้ค่าให้ตารางเปลี่ยนไป เมื่อสิ้นสุดการทางานตาราง Current State จะเก็บ ciphertext ที่ได้จากการ encryption in0 in4 in8 in12 s0,0 s0,1 s0,2 s0,3 s0,0 s0,1 s0,2 s0,3 out0 out4 out8 out12 in1 in5 in9 in13 s10 s1,1 s1,2 s1,3 s10 s1,1 s1,2 s1,3 out1 out5 out9 out13 in2 in6 in10 in14 s2,0 s2,1 s2,2 s2,3 s2,0 s2,1 s2,2 s2,3 out2 out6 out10 out14 in3 in7 in11 in15 s3,0 s3,1 s3,2 s3,3 s3,0 s3,1 s3,2 s3,3 out3 out7 out11 out15 input Faculty of Information Technology State Array output Page 23
  24. 24. การทางานของ AES  Key Block ขนาด 128 bits = 16 bytes ‣ มอง Key Block 16 bytes เป็ นตาราง ขนาด 4 x 4 ‣ Key จะถูกขยาย (Key Expansion) ให้เป็ นอาร์เรย์ของ word ขนาด 44 words (1 word = 32 bits = 4 bytes) k0 k4 k8 k12 k1 k5 k9 k13 k2 k6 k10 k14 k3 k7 k11 k15 w0 w1 w2 w3 แต่ละรอบของ Key Expansion f + + + + w4 w5 w6 w7 Key Expansion k0 k4 k8 k12 k1 k5 k9 k13 k2 k6 k10 k14 k3 k7 k11 k15 Faculty of Information Technology w0 w1 … w43 Page 24
  25. 25. การทางานของ AES วงรอบการทางานของ AES แบ่งเป็ น 3 ส่วนหลักได้แก่  รอบเริ่มต้น (Initial Round) ‣ ประกอบด้วยขันตอน AddRoundKey ้  รอบระหว่างกลาง (Rounds) รวม 9 รอบ ‣ ประกอบด้วยขันตอน SubBytes, ShiftRows, MixColumns และ AddRoundKey ้  รอบสุดท้าย (Final Rounds) ‣ ประกอบด้วยขันตอน SubBytes, ShiftRows และ AddRoundKey (ไม่มี ้ MixColumns)  ทุกรอบมีการใช้ round key (sub-key จาก key expansion) ขนาด 4 words รวม 11 รอบ ใช้ทงหมด 11 sub-keys รวม 44 words ั้ Faculty of Information Technology Page 25
  26. 26. AES รอบเริ่มต้น (Initial Round) รอบระหว่างกลาง (Rounds) รอบสุดท้าย (Final Round) ไม่มี Mix Columns Faculty of Information Technology Page 26
  27. 27. การทางานของ AES  กระบวนการ AddRoundKey ‣ เป็ นการเอาข้อมูลมา XOR กับ key ‣ ขันตอนนี้ มีอยู่ในทุก round ของการทางาน ้ ข้อมูล Key ขนาด 4 words = 16 bytes w Faculty of Information Technology Page 27
  28. 28. การทางานของ AES  กระบวนการ SubBytes ‣ เป็ น non-linear substitution ซึ่งแต่ละไบต์จะถูกแทนที่ดวยไบต์ท่ีได้จาก ้ lookup table ‣ ขันตอนนี้ มีอยู่ในรอบระหว่างกลาง และรอบสุดท้ายของการทางาน ้ ข้อมูล Faculty of Information Technology Page 28
  29. 29. การทางานของ AES  กระบวนการ ShiftRows ‣ เป็ นการเลื่อนไบต์ในแต่ละแถว ซึ่งจะทาเฉพาะแถวที่ 2, 3 และ 4 ‣ ขันตอนนี้ มีอยู่ในรอบระหว่างกลาง และรอบสุดท้ายของการทางาน ้ ข้อมูล Faculty of Information Technology Page 29
  30. 30. การทางานของ AES  กระบวนการ MixColumns ‣ เป็ นการผสมรวม 4 ไบต์ภายในคอลัมน์ ผ่านการคูณเมตริกต์ ‣ ขันตอนนี้ มีอยู่ในรอบระหว่างกลางของการทางาน เท่านัน ้ ้ ข้อมูล Faculty of Information Technology Page 30

×