1 / 34

344-484 วิทยาการเข้ารหัสลับเบื้องต้น

344-484 วิทยาการเข้ารหัสลับเบื้องต้น. บทที่ 6 ลายมือชื่อดิจิตอลและฟังก์ชันแฮช (ต่อ). เนื้อหา. ลายมือชื่อดิจิตอล (Digital Signatures) MD5 SHA (Secure Hash Algorithm) MAC (Message Authentication Code) HMAC เทคนิคลายมือชื่อดิจิตอล. Secure Hash Algorithm (SHA).

azura
Download Presentation

344-484 วิทยาการเข้ารหัสลับเบื้องต้น

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 344-484 วิทยาการเข้ารหัสลับเบื้องต้น บทที่ 6 ลายมือชื่อดิจิตอลและฟังก์ชันแฮช (ต่อ)

  2. เนื้อหา • ลายมือชื่อดิจิตอล (Digital Signatures) • MD5 • SHA (Secure Hash Algorithm) • MAC (Message Authentication Code) • HMAC • เทคนิคลายมือชื่อดิจิตอล

  3. Secure Hash Algorithm (SHA) • ได้ถูกพัฒนาขึ้นมาจากสถาบันมาตรฐานและเทคโนโลยีแห่งชาติของสหรัฐอเมริกา (NIST) ร่วมกับ National Security Agency (NSA) • ปี ค.ศ. 1993 ได้เผยแพร่ SHA เป็นมาตรฐานที่ใช้ในการประมวลผลสารสนเทศกลาง (Federal Information Processing Standard : FIPS PUB 180) • ปี ค.ศ. 1995 ได้เปลี่ยนชื่อเป็น SHA-1 • SHA ปรับปรุงมาจาก MD4 และมีความคล้ายคลึงกับ MD4 มาก

  4. การทำงานของ SHA • ขั้นตอนที่ 1 การเพิ่มบิตหลังข้อความ (Padding) • คล้ายกับ MD5 • ขั้นตอนที่ 2 การระบุขนาดความยาวของข้อความต้นฉบับ (Append length) • ขั้นตอนที่ 3 แบ่งข้อความออกเป็นบล็อกละ 512 บิต • ขั้นตอนที่ 4 กำหนดค่าเริ่มต้นของตัวแปรลูกโซ่ • กำหนดค่าเริ่มต้นให้กับตัวแปรลูกโซ่ 5 ตัวแปร คือ A, B, C, D และ E • โดยตัวแปร A, B, C และ D มีค่าเหมือนกับใน MD5 และ E มีค่าเท่ากับ (C3 D2 E1 F0)16

  5. การทำงานของ SHA (ต่อ) • ขั้นตอนที่ 5 การดำเนินการกับบล็อก • ขั้นตอนย่อยที่ 5.1 สำเนาค่าเริ่มต้นของตัวแปรลูกโซ่ ให้กับตัวแปรต่อไปนี้คือ a, b, c, d และe กล่าวคือ a = A, b = B, c = C ,d = D และ e = E • ขั้นตอนย่อยที่ 5.2 แบ่งข้อความ 512 บิตของบล็อคที่ดำเนินการขณะนั้นออกเป็นบล็อคย่อย 16 บล็อก โดยแต่บล็อกย่อยมีขนาด 32 บิต • ขั้นตอนย่อยที่ 5.3 มีการดำเนินการ 4 รอบ โดยแต่ละรอบประกอบด้วย 20 ขั้นตอน ข้อมูลนำเข้าของแต่ละรอบคือ ก) ข้อความ16 บล็อคย่อย ข) รีจิสเตอร์ abcde และ ค) ค่าคงที่ K[t] ซึ่ง 0 t 79 และค่าคงที่ K[t] มี 4 ค่า

  6. การทำงานของ SHA (ต่อ) • ขั้นตอนย่อยที่ 5.4 การดำเนินการ SHA 4 รอบ แต่ละรอบดำเนินการอีก 20 ครั้ง

  7. การทำงานของ SHA (ต่อ) เขียนให้อยู่ในรูปสมการคณิตศาสตร์ดังนี้ abcde = (e + P (b, c, d) + s5 (a) + W[t] + K[t] ), a, s30(b), c, d) โดยที่ a, b, c, d, e = ตัวแปรลูกโซ่ ที่ได้กล่าวข้างต้น P = ฟังก์ชันหนึ่งซึ่งจะกล่าวต่อไป si= การเลื่อนบิตเป็นวงทางซ้ายของบล็อคย่อยขนาด 32 บิต เป็นจำนวน i บิต W[t] = ค่าขนาด 32 บิตที่ได้มาจากบล็อคย่อย 32 บิตขณะนั้น K[t] = ค่าคงที่ 1 ใน 4 ค่า

  8. การทำงานของ SHA (ต่อ) • ฟังก์ชัน P คือ การดำเนินการซึ่งเกิดขึ้นแตกต่างกันทั้ง 4 รอบ โดยดำเนินการทางตรรกศาสตร์กับตัวแปร b, c, และ d ซึ่งฟังก์ชัน P ทั้ง 4 รอบแสดงดังตาราง หมายเหตุ ตัวดำเนินการตรรกะ AND แทนด้วย  OR แทนด้วย  NOT แทนด้วย  และ XOR แทนด้วย 

  9. การทำงานของ SHA (ต่อ) • สำหรับค่าของ W[t] ที่ 0 t 15 คือ ค่าของ M[t] (ข้อมูลนำเข้า 16 บล็อคย่อย มีชื่อว่า M[0], M[1], … M[15]) ส่วนค่าของ W[t] ที่เหลือ (16 t 79) คำนวณจากสมการคณิตศาสตร์ W[t] = s1 (W[t-16]W[t-14] W[t-8] W[t-3]) • สรุปค่าของ W ใน SHA-1 ดังนี้

  10. ความแตกต่างระหว่าง MD5 กับ SHA-1 • ความแตกต่างระหว่าง MD5 กับ SHA-1

  11. ผู้รับ (ข) ผู้ส่ง (ก) ขั้นตอนที่ 1 ขั้นตอนที่ 2 ขั้นตอนที่ 3 ขั้นตอนที่ 4 ข้อความ (M) ข้อความ (M) ข้อความ (M) MAC (H1) + ส่ง เปรียบเทียบ กุญแจ (K1) กุญแจ (K1) MAC (H1) MAC (H2) MAC (H1) MAC (H2) Message Authentication Code (MAC) Message Authentication Code (MAC) • มีความคล้ายคลึงกับการย่อยข้อความ(Message Digest) มาก • แต่ การย่อยข้อความ เป็นการพิมพ์ลายนิ้วมือของข้อความวิธีหนึ่ง ซึ่งไม่มีส่วนของกระบวนการเข้ารหัสลับ

  12. Message Authentication Code (MAC) • ความสำคัญของ MAC • ทำให้ผู้รับมั่นใจได้ว่า ข้อความที่ส่งมาไม่ถูกเปลี่ยนแปลง • ทำให้ผู้รับมั่นใจได้ว่า ข้อความที่ส่งมานั้นมาจากผู้ส่งที่ติดต่อด้วยจริง ๆ • MAC คล้ายกับการดำเนินการเข้ารหัสข้อความ แต่ การเข้ารหัสลับด้วยกุญแจแบบสมมาตรนั้น จะมีขั้นตอนในการถอดรหัสข้อความ ซึ่งการทำงานจะตรงข้ามกัน สำหรับ MAC ทั้งผู้ส่งและผู้รับดำเนินการเข้ารหัสข้อความอย่างเดียว ดังนั้น ขั้นตอนวิธีของ MAC จึงเป็นเพียงฟังก์ชันทางเดียว (one-way function)

  13. HMAC • Hash-based Message Authentication Code • นำมาใช้ในกับ • โปรโตคอลความปลอดภัยของข้อมูลบนอินเตอร์เน็ต (Internet Protocol (IP) security) และ • โปรโตคอล SSL (Secure Socket Layer (SSL) protocol)

  14. ข้อความ (M) MAC ขั้นตอนวิธีการย่อยข้อความ เช่น MD5 หรือ SHA-1 ข้อความย่อย (MD) เข้ารหัสด้วยกุญแจ (K) หลักการทำงานของ HMAC การทำงานของ HMAC • แนวคิดของการทำงานของ HMAC • นำหลักการทำงานของการย่อยข้อความ เช่น MD5 หรือ SHA-1 โดยมองการย่อยข้อความเป็นเสมือนกล่องดำ และ • ใช้กุญแจสมมาตรเพื่อเข้ารหัสข้อความย่อย เพื่อให้ได้ผลลัพธ์ MAC

  15. การทำงานของ HMAC (ต่อ) • ตัวแปรต่าง ๆ ที่ใช้ใน HMAC ดังนี้ MD = ขั้นตอนวิธีย่อยข้อความหรือฟังก์ชันแฮชที่นำมาใช้ (เช่น MD5, SHA-1 เป็นต้น) M = ข้อความนำเข้าซึ่งนำมาคำนวณหาค่า MAC L = จำนวนบล็อคของข้อความ M b = จำนวนบิตของแต่ละบล็อก K = กุญแจสมมาตรที่ใช้ร่วมกันใน HMAC ipad = สายอักขระ (string) 00110110 โดยทำซ้ำ b/8 ครั้ง opad = สายอักขระ (string) 01011010 โดยทำซ้ำ b/8 ครั้ง

  16. Y N K>b นำ Kไปดำเนินการย่อยข้อความเพื่อให้ขนาดของกุญแจ K= b N Y K<b ดำเนินการขั้นตอนที่ 2 ต่อไป เพิ่มค่า 0 ตามจำนวนบิตที่ขาดหายไปซึ่งทำให้ K= b ขั้นตอนที่ 1 ของ HMAC การทำงานของ HMAC (ต่อ) • ขั้นตอนที่ 1 ทำให้ขนาดของกุญแจ K เท่ากับ b

  17. กุญแจ K S1 + ipad ขั้นตอนที่ 2 ของ HMAC การทำงานของ HMAC (ต่อ) • ขั้นตอนที่ 2 ดำเนินการ XOR () กุญแจ K กับ ipad ได้ผลลัพธ์คือ S1

  18. S1 ข้อความต้นฉบับ (M) S1 ข้อความต้นฉบับ (M) ขั้นตอนที่ 3 ของ HMAC การทำงานของ HMAC (ต่อ) • ขั้นตอนที่ 3 เติมข้อความต้นฉบับ (M) ต่อท้าย S1

  19. S1 ข้อความต้นฉบับ (M) ขั้นตอนวิธีการย่อยข้อความ (MD algorithm) H ขั้นตอนที่ 4 ของ HMAC การทำงานของ HMAC (ต่อ) • ขั้นตอนที่ 4 ขั้นตอนวิธีการย่อยข้อความ

  20. กุญแจ K S2 + opad ขั้นตอนที่ 5 ของ HMAC การทำงานของ HMAC (ต่อ) • ขั้นตอนที่ 5 ดำเนินการ XOR () กุญแจ K กับ opad ได้ผลลัพธ์คือ S2

  21. S2 H S2 H ขั้นตอนที่ 6 ของ HMAC การทำงานของ HMAC (ต่อ) • ขั้นตอนที่ 6 เติมข้อความย่อย (H) ต่อท้าย S2

  22. ขั้นตอนวิธีการย่อยข้อความขั้นตอนวิธีการย่อยข้อความ (MD algorithm) MAC ขั้นตอนที่ 7 ของ HMAC S2 H การทำงานของ HMAC (ต่อ) • ขั้นตอนที่ 7 ขั้นตอนวิธีการย่อยข้อความ

  23. กุญแจ (K) แปลงกุญแจ (K) ipad + ขั้นตอนวิธีการย่อยข้อความ H แปลงกุญแจ (K) opad + ขั้นตอนวิธีการย่อยข้อความ HMAC ขั้นตอนวิธีการทำงานของ HMAC S1 ข้อความ (M) S2 H การทำงานของ HMAC (ต่อ)

  24. ข้อเสียของ HMAC • HMAC ไม่ได้แก้ปัญหาต่อไปนี้ • ยังคงมีปัญหาเดิมคือ การแลกเปลี่ยนกุญแจ • สมมติให้ไม่มีปัญหาการแลกเปลี่ยนกุญแจก็ตาม การใช้ขั้นตอนวิธีนี้ก็ไม่สามารถใช้ได้กับกรณีที่มีจำนวนผู้รับมากกว่า 1 คน • ผู้รับไม่สามารถมั่นใจได้ว่าข้อความที่ส่งมาจากผู้ส่งจริงๆ ไม่ใช่มาจากผู้รับคนใดคนหนึ่งในกลุ่ม เพราะผู้รับคนอื่น ๆ ก็ทราบกุญแจสมมาตรตัวเดียวกันนี้เช่นกัน • กรณีที่สามารถแก้ปัญหาดังกล่าวข้างต้น ทั้ง 2 ฝ่ายรับทราบกุญแจสมมาตรด้วยกัน ดังนั้น จะพิสูจน์ได้อย่างไรว่าค่า MAC ที่ได้เกิดจากผู้ส่ง หรือ ผู้รับกันแน่ที่ดำเนินการขึ้นมา และก็เป็นไปได้ที่ทั้ง 2 ฝ่ายรู้ข้อความต้นฉบับและค่า MAC

  25. เทคนิคลายมือชื่อดิจิตอลเทคนิคลายมือชื่อดิจิตอล • สถาบันมาตรฐานและเทคโนโลยีแห่งชาติของสหรัฐอเมริกา (NIST) ได้พัฒนา มาตรฐานลายมือชื่อดิจิตอล (Digital Signature Standard: DSS) สำหรับการดำเนินการเกี่ยวกับลายมือชื่อดิจิตอลขึ้น ชื่อ PUB 186 ในปี ค.ศ. 1991 และได้มีการแก้ไขปรับปรุงในปี ค.ศ. 1993 และ 1996 • ขั้นตอนวิธีลายมือชื่อดิจิตอล (Digital Signature Algorithm : DSA) โดย DSA แล้วใช้เพื่อดำเนินการลายมือชื่อดิจิตอลให้กับข้อความเพียงอย่างเดียว • ขั้นตอนวิธี RSA คือ เข้ารหัสข้อความและยังสามารถนำมาใช้เพื่อดำเนินการลายมือชื่อดิจิตอลให้กับข้อความได้

  26. ข้อความต้นฉบับ (M) ขั้นตอนวิธีการย่อยข้อความ (SHA-1) ข้อความย่อย (MD1) การคำนวณหาข้อความย่อย RSA กับลายมือชื่อดิจิตอล • ขั้นตอนที่ 1 ผู้ส่ง (นาย ก) ย่อยข้อความต้นฉบับด้วย SHA-1 ได้ข้อความย่อย (MD1)

  27. ข้อความย่อย (MD1) ลายมือชื่อดิจิตอล (DS) เข้ารหัสด้วยกุญแจส่วนตัวของผู้ส่ง การสร้างลายมือชื่อดิจิตอล RSA กับลายมือชื่อดิจิตอล (ต่อ) • ขั้นตอนที่ 2 ผู้ส่ง (นาย ก) เข้ารหัสข้อความย่อยด้วยกุญแจส่วนตัว ผลลัพธ์ที่ได้เรียกว่า ลายมือชื่อดิจิตอล (Digital Signature: DS)

  28. เครือข่าย ผู้ส่ง (ก) ผู้รับ (ข) ข้อความต้นฉบับ (M) ลายมือชื่อดิจิตอล (DS) ข้อความต้นฉบับ (M) ลายมือชื่อดิจิตอล (DS) + + การส่งข้อความต้นฉบับและลายมือชื่อดิจิตอลไปด้วยกัน RSA กับลายมือชื่อดิจิตอล (ต่อ) • ขั้นตอนที่ 3 ผู้ส่ง (นาย ก) ส่งข้อความต้นฉบับ (M) พร้อมลายมือชื่อดิจิตอล (DS) ไปให้ผู้รับ (นาย ข)

  29. ข้อความต้นฉบับ (M) ขั้นตอนวิธีย่อยข้อความ (SHA-1) ข้อความย่อย (MD2) ผู้รับดำเนินการย่อยข้อความของตนเอง RSA กับลายมือชื่อดิจิตอล (ต่อ) • ขั้นตอนที่ 4 ผู้รับใช้ขั้นตอนวิธีการย่อยข้อความเดียวกับที่ผู้ส่งใช้เพื่อหาข้อความย่อย (MD2) ของตนเอง

  30. ลายมือชื่อดิจิตอล (DS) ข้อความย่อย (MD1) ถอดรหัสด้วยกุญแจสาธารณะของผู้ส่ง ผู้รับรับข้อความย่อยของผู้ส่ง RSA กับลายมือชื่อดิจิตอล (ต่อ) • ขั้นตอนที่ 5 ผู้รับ (นาย ข) ใช้กุญแจสาธารณะของผู้ส่ง (นาย ก) เพื่อถอดรหัสลายมือชื่อดิจิตอล ผลลัพธ์ที่ได้คือ ข้อความย่อย (MD1)

  31. ข้อความย่อย (MD1) ข้อความย่อย (MD2) No Yes มั่นใจและยอมรับข้อความต้นฉบับ (M) ปฏิเสธข้อความต้นฉบับ (M) MD1 = MD2 การตรวจสอบลายมือชื่อดิจิตอล RSA กับลายมือชื่อดิจิตอล (ต่อ) • ขั้นตอนที่ 6 นาย ข นำข้อความย่อยทั้ง 2 (MD1 และ MD2) มาเปรียบเทียบกัน

  32. DSA กับลายมือชื่อดิจิตอล • ขั้นตอนวิธีของ DSA ค่อนข้างซับซ้อน • ตัวแปรที่เกี่ยวข้องมีดังนี้ p = จำนวนเฉพาะที่มีความยาวขนาด L บิต โดย L = ผลคูณของ 64 ซึ่งมีค่าระหว่าง 512 ถึง 1024 (ตัวอย่างเช่น L = 512 หรือ 576 หรือ 640 หรือ ... 1024 ) โดยมาตรฐานทั่วไป p = 512 q = ตัวประกอบของ p-1 ซึ่งมีขนาด 160 บิต g = h (p-1)/q mod p โดย h คือ จำนวนที่น้อยกว่า (p-1) เช่น h (p-1)/q mod q > 1 x = จำนวนที่น้อยกว่า q y = gx mod p H = ขั้นตอนวิธีการย่อยข้อความ (โดยปรกติคือ SHA-1)

  33. DSA กับลายมือชื่อดิจิตอล (ต่อ) • ตัวแปร 3 ตัวแรกคือ p, q และ g เป็นตัวแปรที่ประกาศให้รู้กันทั่วไป • ตัวแปร x คือกุญแจส่วนตัวซึ่งสัมพันธ์กับกุญแจสาธารณะ y • กำหนดให้ ผู้ส่งต้องการส่งข้อความ (M) และ ลายมือชื่อดิจิตอลไปให้ผู้รับ โดยมีขั้นตอนวิธีดังนี้ • ผู้ส่งสร้างจำนวนสุ่มขึ้นมา 1 ตัว (k) ซึ่งมีค่าน้อย q • ผู้ส่งคำนวณหาค่า r = (gk mod p) mod q s = (k1 (H(m) + xr)) mod q ค่า r และ s คือลายมือชื่อของผู้ส่ง ซึ่งผู้ส่งค่าเหล่านี้ไปให้ผู้รับเพื่อตรวจสอบ

  34. DSA กับลายมือชื่อดิจิตอล (ต่อ) • ผู้รับคำนวณค่า w = s-1 mod q u1 = (H(m) * w) mod q u2 = (rw) mod q v = ((gu1 * yu2) mod p) mod q ถ้า v = r แล้ว แสดงว่าลายมือชื่อถูกต้อง มิฉะนั้น ปฏิเสธลายมือชื่อนี้

More Related