Cryptography CS 555 Lecture 6 part II : การเข้ารหัสลับด้วย ฟังก์ชันแฮชและ HMAC 1.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
อัลกอริทึม ITS101 2/2011.
Advertisements

จุด ส่วนของเส้นตรง เส้นตรง รังสี มุม
Chapter 2 Root of Nonlinear Functions
Blum Blum Shub Generator การเพิ่มอัตราเร็วของแหล่งกำเนิดบลัม บลัม ชับ
Chapter 3 Graphics Output primitives Part II
Chapter 3 Graphics Output primitives Part II
INC341 State space representation & First-order System
Number Representations
CS Assembly Language Programming Period 6.
ทฤษฎีของพีชคณิตบูลีน (Boolean algebra laws)
CPE 332 Computer Engineering Mathematics II
Block Cipher Principles
Certification Authority
Network Security.
เลขยกกำลัง พิจารณาข้อความต่อไปนี้ a x a = a 2 a x a x a = a 3 a x a x a x a = a 4.
คุณลักษณะของคำสั่งภาษาเครื่อง ชนิดของตัวถูกดำเนินการ
Introduction to Computer Organization and Architecture Physical Representation บทที่ 2 การแทนเชิง กายภาพ.
CPE 332 Computer Engineering Mathematics II Chapter 3 Eigenvector and Diagonalization.
CPE 332 Computer Engineering Mathematics II Part III, Chapter 10 Numerical Differentiation and Integration Numerical Differentiation and Integration.
CD ข้อมูล แผ่น ชื่อ File
นางสาวสรัญญา ชื่นเย็น (พี่ออย) เจ้าหน้าที่ศูนย์นวัตกรรมการจัดการ อ.ก้องภู นิมานันท์ อาจารย์ที่ปรึกษา 1.น.ส.นพรัตน์ ปฏิกรณ์ (คุ๊กกี้) นายบุรินทร์
กระบวนการและเทคนิค การพัฒนาคุณภาพการบริหาร จัดการภาครัฐระดับพื้นฐาน การให้ความสำคัญกับผู้รับบริการ และผู้มีส่วนได้ส่วนเสีย.
งานข้อมูลสารสนเทศ กลุ่มยุทธศาสตร์และงานวิชาการ
Microsoft Excel เบื้องต้น
พ.ท.หญิง ญาติมา คุณวัฒน์
Security in Computer Systems and Networks
การทดสอบซอฟต์แวร์ Software Testing
Chapter 2 Symmetric Encryption and Message Confidentiality
หลักการลดรูปฟังก์ชันตรรกให้ง่าย
ครั้งที่ 3 การวิเคราะห์ และ ออกแบบวงจรเกต
Cryptography & Steganography
Cryptography & Steganography
Chapter 3 Public-Key Cryptography and Message Authentication
วิธีปฏิบัติทางบัญชี 1. การรับบริจาคเงินสด
สื่อการเรียนรู้รายวิชาภาษาอังกฤษ ชั้นประถมศึกษาปีที่2-3
การวิเคราะห์และออกแบบขั้นตอนวิธี
Stack Sanchai Yeewiyom
บทที่ 5 การควบคุมความถูกต้องให้กับข้อมูล (Data Integrity)
การจัดการฐานข้อมูลด้วยโปรแกรม MS Access 2013
โมเมนตัมและการชน อ.วัฒนะ รัมมะเอ็ด.
อาจารย์อภิพงศ์ ปิงยศ บทที่ 4 : Cryptography & Steganography Part3 สธ412 ความมั่นคงของระบบสารสนเทศ อาจารย์อภิพงศ์ ปิงยศ
อาจารย์อภิพงศ์ ปิงยศ บทที่ 5 : การตรวจจับข้อผิดพลาด การควบคุมการไหลของข้อมูล และการควบคุมข้อผิดพลาด Part1 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ.
บทที่ 2 ขั้นตอนการทำงาน (Algorithm)
อาจารย์อภิพงศ์ ปิงยศ บทที่ 1 : การรักษาความปลอดภัยข้อมูล Part3 สธ412 ความมั่นคงของระบบสารสนเทศ อาจารย์อภิพงศ์ ปิงยศ
(ร่าง) พระราชบัญญัติว่าด้วยการรักษาความมั่นคงปลอดภัยไซเบอร์ พ.ศ. ....
เพื่อการพัฒนาการเกษตรอย่างยั่งยืน
งานก่อสร้างฯ / ซ่อมแซมฯ อาคาร สิ่งปลูกสร้าง และสาธารณูปโภค
การประเมินส่วนราชการ
จรรยาบรรณ ของ ผู้สอบบัญชีสหกรณ์.
Chapter 3 Basic Input & Output.
การเขียนรูปทรงเรขาคณิต
แนวทางการเข้าถึงระบบบริการอิเล็กทรอนิกส์แบบรวมศูนย์ (Single Sign-On)
บทที่ 10 การค้นหาข้อมูล (Searching)
ระบบจำนวนจริง ข้อสอบ O-net
การเข้าและการถอดรหัส
Hashing Sanchai Yeewiyom
ระบบตัวเลข, Machine code, และ Register
Timing diagram ปรับปรุง 19 มีนาคม
บทที่ 2 การวัด.
อาจารย์อภิพงศ์ ปิงยศ บทที่ 5 : การประยุกต์ใช้คริพโตกราฟี Part2 สธ412 ความมั่นคงของระบบสารสนเทศ อาจารย์อภิพงศ์ ปิงยศ
อาจารย์อภิพงศ์ ปิงยศ บทที่ 1 : การรักษาความปลอดภัยข้อมูล Part2 สธ412 ความมั่นคงของระบบสารสนเทศ อาจารย์อภิพงศ์ ปิงยศ
อาการของมะเร็งเต้านม ที่กลับเป็นซ้ำ และ หรือ แพร่กระจาย
บทที่ 2 การเริ่มต้นกิจการใหม่และการซื้อกิจการ
ผังทางเดินเอกสาร – ระบบส่งคืนสินค้า
บทที่ 10 รายงานการเงินสำหรับกิจการที่ไม่หวังผลกำไร
การจัดระบบเฝ้าระวังยาเสพติดในระดับพื้นที่จังหวัดพิจิตร
แผนงานโครงการที่จะนำไปใช้เพื่อ การแก้ปัญหาสุขภาพหรือบริการ
สื่อการเรียนการสอนวิชาเครื่องรับโทรทัศน์ ( )
ตัวชี้วัดด้านวัณโรค รอบ NFM หน่วยงาน สสจ.ชียงใหม่
เงินนอกงบประมาณ โครงการพัฒนาศักยภาพบุคลากรตามเกณฑ์ประเมินผลการปฏิบัติงาน ด้านบัญชีในระบบ GFMIS (กระทรวงสาธารณสุข) นายธราธิป หนูเจริญ นักวิชาการคลังชำนาญการ.
ใบสำเนางานนำเสนอ:

Cryptography CS 555 Lecture 6 part II : การเข้ารหัสลับด้วย ฟังก์ชันแฮชและ HMAC 1

หัวข้อบรรยายอย่างย่อ SHA1, RIPMD160 HMAC การโจมตีฟังก์ชันแฮชและ HMAC 2

ควรอ่านหัวข้อต่อไปนี้ Stallings, Chapter 12: 12.1, 12.2 and 12.3 Stinson, Chapter 4: 4.1, 4.2 and 4.3 3

สิ่งที่จำเป็นสำหรับฟังก์ชันแฮช 4  กำหนดฟังก์ชัน h: X  Y แล้วเราบอกได้ว่า h มีคุณสมบัติ ทนต่อภาพก่อน (one-way) กลับไม่ได้เพราะมีกรณีชนกัน  ถ้าให้ y  Y ในการคำนวณเป็นไปไม่ได้ที่จะหาค่า x  X เช่น h(x) = y ลำดับที่สองทนต่อภาพก่อน (weak collision resistance) หาค่า x’  ถ้ากำหนด x  X ในการคำนวณเป็นไปไม่ได้ที่จะหาค่า x’  X เช่น h(x’) = h(x) ทนต่อการชน (strong collision resistance) สองค่าที่ต่างกัน  ในทางการคำนวณจะไม่สามารถหาค่าสองค่าที่ต่างกัน x’, x  X เช่น h(x’)=h(x)

MD5 Overview 5

MD5 Compression Function (Single Step ผลลัพธ์มีขนาด 128 บิต ทำงาน 4 รอบ แต่ละรอบมี 16 ขั้นตอน 6

SHA1 (Secure Hash Algorithm) SHA ออกแบบโดย NIST และใช้เป็นมาตรฐานสำหรับฟังก์ชันแฮช โดยรายละเอียดของมาตรฐานอยู่ใน FIPS-180 (1993) SHA-1 เป็นเวอร์ชันใหม่ที่พัฒนาต่อจาก SHA กำหนดไว้ใน, FIPS (1995) ขั้นตอนวิธีนี้ให้ผลลัพธ์ขนาด 160 บิต 7

SHA1 Overview ข้อความจะถูกตัดปะให้มีขนาดที่ละ 512 บิต ติดตั้งค่าบัฟเฟอร์ขนาด 5-word (160 บิต ) Word A: Word B: EF CD AB 89 Word C: 98 BA DC FE Word D: Word E: C3 D2 E1 F0 ข้อความแบ่งเป็นชุดประมวลผลในขนาด 16-word (512 บิต ) - ขยาย 16 words ลงใน 80 words โดยการผสมและการย้าย - ทำงาน 4 รอบกับตัวดำเนินการ 20 แบบบนบล็อคข้อมูลและบัฟเฟอร์ 8

SHA-1 Compression Function (Single Step) 9

SHA-1 Compression Function แต่ละรอบมี 20 ขั้นตอนในการปรับปรุงบัฟเฟอร์ ดังนี้ (A,B,C,D,E) <- (E+f(t,B,C,D)+(A<<5)+W t +K t ),A,(B<<30),C,D) t คือตัวแปรเก็บหมายเลขขั้นตอน f(t,B,C,D) เป็นฟังก์ชันไม่เป็นเชิงเส้น W t แตกมาจากบล็อคข้อความ K t เป็นค่าคงที่ที่ได้มาจากค่า Sin S k ผลการเลื่อนบิตไปทางซ้ายเป็นจำนวน k บิต 10

SHA-1 Cryptanalysis SHA1 ทำงาน 20 ขั้นตอนแทน 16 ขั้นตอนที่ ทำงานใน MD5 ในแต่ละรอบ SHA1 สลับและผสมข้อความโดยใช้การหมุนและ X-OR ทำให้การค้นหาการชนกันหาได้ยากขึ้น การโจมตีแบบ Brute Force ทำได้ยากขึ้น เพราะบัฟเฟอร์ ใหญ่ขึ้นเป็น 160 บิตต่อ 128 บิตใน MD5 ไม่มีจุดอ่อนต่อการโจมตีเท่าที่รู้จัก ( ตรงข้ามกับ MD5) 11

RIPEMD-160 RIPEMD-160 ถูกพัฒนาขึ้นในยุโรปโดยนักวิจัยที่มีส่วนร่วมกันโจมตี MD4/5 ผลลัพธ์มีขนาด 160 บิต ดังเช่น MD5 ข้อความจะถูกตัดปะในขนาด  448 mod 512 และเพิ่มบิต ข้อมูลขนาด 64 บิต ติดตั้งค่าบัฟเฟอร์ขนาด 5-word (160 บิต ) ดังต่อไปนี้ A:A: B: EF CD AB 89 C:C:98 BA DC FE D:D: E: C3 D2 E1 F0 ประมวลผลข้อความขนาด 16-word (512 บิต ) ทำ 10 รอบ แต่ละรอบมี 16 ขั้นตอนกับบล็อคข้อความและบัฟเฟอร์ ใน 2 แถว ขนานใน 5 แถว 12

RIPEMD-160 Round 13

RIPEMD-160 Compression Function (Single Step) K j ค่าคงที่ใช้ในขั้นตอนที่ j Rol เลื่อนบิตไปทางซ้าย X i ได้จากบล็อคข้อความ ขนาด 512 บิต 14

RIPEMD-160, MD5 & SHA-1 Brute force attack เหมือนกับ SHA1 (160 bits) ไม่มีจุดอ่อนต่อการโจมตีเท่าที่รู้จัก ช้ากว่า MD5 ( มีขั้นตอนมากกว่า ) SHA-1 เหมาะสำหรับการทำงานบน CPU แบบ big endian ขณะที่ RIPEMD-160 & MD5 เหมาะสำหรับ การทำงานบน CPU แบบ little endian 15

{ Endianess } การกำหนดลำดับของไบต์ เช่น เลขจำนวนเต็มหลายไบต์ ปรากฎในที่อยู่ต่ำสุดของ เลขจำนวนเต็ม Big endian หมายถึง ไบต์ที่มีค่านัยยะสำคัญสูงสุดจะถูกจัดเก็บไว้ตำแหน่งแรก สุด เช่น Sun Little endian หมายถึง ไบต์ที่มีค่านัยยะสำคัญต่ำสุดจะถูกจัดเก็บก่อน เช่น Intel Example:0x AddressBig EndianLittle Endian Buf0x870x21 Buf + 10x650x43 Buf + 20x430x65 Buf + 30x210x87 16

การแบ่งประเภท MDC (manipulation detection codes) หรือ MIC (message integrity codes) - ไม่ต้องใช้คีย์ -One-Way Hash Functions (OWHFs) - Collision Resistant Hash Functions (CRHFs) MAC (message authentication codes) - ใช้คีย์ - ใช้สำหรับ authentication และ integrity 17

ทำไมฟังก์ชันแฮชจึงไม่มั่นคงเพียงพอ ? ฟังก์ชันแฮชตรวจสอบความสมบูรณ์ของข้อมูลได้ (data integrity) แต่ไม่ได้บอกว่าข้อมูลได้มาจากไหน ใครเป็นผู้สร้าง ผลลัพธ์ของแฮช ( ใครก็สร้างได้เพราะฟังก์ชันแฮชเป็นแบบ สาธารณะ ) รับรองแหล่งข้อมูล ( รวมทั้งรับรองข้อความ ) ยังเป็นที่ต้องการ มิเช่นนั้น ใครก็สามารถเข้ามาร่วมใช้งานได้ รวมคีย์ลับเข้าไปด้วย หมายเหตุ MACs ไม่ได้ป้องกันการจราจจรที่เข้ามา เช่นไม่ได้ป้องกัน การโจมตีแบบเล่นซ้ำ (replay attacks) 18

สิ่งจำเป็นต่อ MAC รวมคีย์ลับเข้าไปด้วย ง่ายต่อการคำนวณถ้ารู้คีย์ลับ k MAC เป็นฟังก์ชันแบบหลายต่อหนึ่ง ดังนั้นจึงอาจเกิดการชนกัน ( ข้อความต่างกัน แต่ให้ค่า MAC เดียวกัน ) คล้ายกับสิ่งที่จำเป็นในฟังก์ชันแฮช - Compression: M มี n บิต h k (M) มีขนาดคงที่เท่ากับ m บิต โดยที่ m < n - ถ้ารู้ข้อความและค่า MAC จะเป็นไปไม่ได้ที่จะหาข้อความอื่นที่มีค่า MAC เดียวกัน - MACs น่าจะเป็นการกระจายแบบอย่างสม่ำเสมอ (uniformly distributed) - MAC น่าจะขึ้นกับทุกบิตในข้อความ 19

MAC บนพื้นฐานการเข้ารหัสแบบ สมมาตร : CBC-MAC x1x1 x2x2 x3x3 xtxt 0 k E k E k E k E k1 E -1 optional บล็อคสุดท้ายใช้แบบ MAC k E 20

ความมั่นคงของ CBC-MAC CBC-MAC จะมั่นคงเฉพาะข้อความที่กำหนดจำนวนบล็อคไว้ตายตัว การโจมตี CBC-MAC: กำหนดให้ (x 1,H 1 ) และ (x 2,H 2 ) และร้อง ขอ ((x 1 ||z),H 3 ) เป็นไปได้ที่จะสร้างข้อความใหม่ เช่น (x 2 ||(H 1  z  H 2 ),H 3 ) นั้นถูกต้อง ที่ซึ่ง x1, x2, และ z มีความยาว เท่ากับขนาดของบล็อครหัสลับที่ใช้สร้าง MAC การป้องกันการโจมตี : ขั้นตอนมีทางเลือกในการป้องกันการปลอมโดย ปราศจากผลกระทบกับสถานะในระหว่างทำงาน 21

โจมตีเพื่อค้นหารหัสลับ การโจมตีใช้กับ MACs ที่ใช้รหัสลับแบบสมมาตร ค้นหาคุณสมบัติของรหัสลับเพื่อหาการชน เช่น - คุณสมบัติของส่วนประกอบ - คีย์อ่อนแอ (Weak keys) - กำหนดจุดตายตัว ( จำกัดผลกระทบที่ได้ผล ) (E k (x))=x สำหรับทุก x - การชนกันของคีย์ 22

ฟังก์ชันคีย์แฮชของ MACs สร้าง MAC โดยใช้ฟังก์ชันแฮช มากกว่าใช้บล็อครหัส ลับ เพราะฟังก์ชันแฮชทำงานได้เร็วกว่า ใช้ฟังก์ชันแฮชสาธารณะและคีย์ลับแบบสมมาตร มาตรฐานปัจจุบันคือ HMAC กำหนดไว้ใน FIPS 198 (2002) 23

เป้าหมายของ HMAC ใช้ฟังก์ชันแฮชที่มีอยู่โดยไม่ต้องปรับปรุง รักษาความเป็นต้นฉบับของฟังก์ชันแฮชโดยไม่ไปลดประสิทธิภาพการทำงาน ใช้งานคีย์อย่างง่าย อนุญาตให้เปลี่ยนฟังก์ชันแฮชได้ง่าย เพื่อการเปลี่ยนไปใช้ฟังก์ชันแฮชที่เร็วกว่าและ มั่นคงกว่าภายหลังได้ เข้าใจการวิเคราะห์รหัสลับในจุดแข็งของกลไกการรับรองบนพื้นฐานการทำ ความเข้าใจฟังก์ชันแฮช 24

HMAC HMAC K = Hash[(K +  opad) || Hash[(K +  ipad)||M)]] K + คือคีย์ที่ตัดปะนอกเหนือจากขนาดบล็อคนำเข้าของฟังก์ชันแฮช และ opad, ipad เป็นค่าคงที่ที่ระบุในการปะข้อความ ขนาดของคีย์ : L/2 < K < L ขนาด MAC : อย่างน้อย L/2 โดยที่ L คือผลลัพธ์ของฟังก์ชัน แฮช 25

HMAC Overview 26

HMAC algorithm

ความมั่นคงใน HMAC ความมั่นคงของ HMAC เกี่ยวข้องกับขั้นตอนวิธีแฮช ถ้าใช้ฟังก์ชันแฮชที่มั่นคงเช่น SHA1 และร่วมกับขนาดของคีย์ที่เหมาะสม จะไม่ มีการโจมตีใดสามารถโจมตี HMAC โดยทั่วไป HMAC อาจโดนโจมตีได้โดย - brute force ในขอบเขตของคีย์ที่เป็นไปได้ - โจมตีที่ฟังก์ชันแฮช birthday attack แต่อาจโจมตีได้ยากเนื่องจากใช้คีย์ที่ดี โจมตีที่ compression function 27

การตรวจความสมบูรณ์ของข้อมูล เป้าหมาย : ป้องกันข้อผิดพลาดแบบอุบัติเหตุ หรือข้อผิดพลาดที่ไม่ได้มุ่งโจมตี โดยอาจเกิดจากข้อผิดพลาดการถ่ายโอน มีการตรวจจับรหัสข้อผิดพลาดและรหัสตรวจแก้ไขข้อผิดพลาด หมายเหตุ ด้วยวิธีการนี้ใครก็สามารถส่งแพคเกจได้แตกต่างตามความต้องการ ของผู้ส่ง วิธีการตรวจสอบ : - Checksum - CRC (Cyclic redundancy codes) 28

สรุปการโจมตี Hash และ HMAC Birthday attacks Pseudo-collisions โจมตีฟังก์ชันบีบอัด (compression function) การโจมตีแบบลูกโซ่ (Chaining Attacks) โจมตีที่คุณสมบัติของรหัสลับที่นำมาวิเคราะห์ 29

Birthday Attacks โจมตีภายใน O(2 m/2 ) และได้กับทุกฟังก์ชันแฮชที่ไม่ใช้คีย์ ขั้นตอน : - ผู้โจมตีสร้างตัวแปรขนาด 2 m/2 ตัวจากข้อความที่ถูกต้องที่มีความหมาย เหมือนกัน - ผู้โจมตีสร้างตัวแปรขนาด 2 m/2 ตัวจากข้อความที่ใช้หลอก - สองเซ็ตของข้อความถูกเปรียบเทียบเพื่อหาคู่ที่มีค่าแฮชเดียวกัน ( ความน่าจะเป็น > 0.5 ด้วยวิธี birthday paradox) 30

Pseudo-collisions ค้นหาการชนกันโดยที่ IV แตกต่างกันในข้อความนำเข้า กำหนดขอบเขตความมั่นคงที่ใช้ในการวิเคราะห์ความมั่นคงของฟังก์ชันแฮช บางครั้งอาจสร้างต่อไปจนถึงการโจมตีเต็มรูปแบบได้ ในกรณีที่ไม่คำนึงถึงการใช้งานได้นัก ให้กำหนด เช่นการหาการชนกันที่ไร้ผลของค่าสุ่ม -IV - H (IV, x1x2) = f(f(IV, x1), x2) -IV’ = f(IV, x 1 ) h(IV’, x 2 )= h(IV,x 1 x 2 ) - เราจะได้รับการชนกันแบบเทียม เป็นอิสระจากความแข็งแกร่งของฟังก์ชัน f 31

การโจมตี Compression Function f ติดตั้ง : - ให้พิจารณาที่ขั้นตอนที่ I ของการวนรอบในฟังก์ชันแฮช - ข้อความทั้งหมดประกอบด้วยหนึ่งบล็อค - ผลลัพธ์ของแฮชได้จากผลลัพธ์ของฟังก์ชันบีบอัด - ทำไมต้องทำให้ยุ่งยาก ? - เพราะว่าบางครั้งการโจมตีแบบนี้อาจจะขยายวงกว้างไปสู่การโจมตีที่คล้ายคลึง กันในการวนรอบของฟังก์ชันแฮช ( มีความซับซ้อนเหมือนกัน ) แม้ว่าบางครั้ง การวนรอบในฟังก์ชันแฮชจะมีจุดอ่อนมากกว่าในฟังก์ชันบีบอัด 32

Chaining Attacks บนพื้นฐานการวนรอบในฟังก์ชันแฮช Correcting-block chaining attacks: สร้างการชน โดยการออกแบบบล็อคที่ผลิตค่าเป็นลูกโซ่ที่กำหนดผลลัพธ์ใน ลักษณะเฉพาะ h(x) Meet-in-the-middle chaining attacks: คล้ายกับ birthday attack แต่ค้นหาการชนบน ผลลัพธ์ที่ได้มาแบบทันทีแทนที่จะรอให้ได้ผลลัพธ์ที่ทำเสร็จ (final output ) 33

Chaining Attacks (cont.) Fixed point: - จุดคงที่คือ (H i-1,x i ) ตัวอย่างเช่น f(H i-1, x i )= H i-1 - แทรกตัวเลขของบล็อคที่เหมือนกันตามใจชอบ x i ที่จุดลูกโซ่ ( ข้อมูลแฮชยังคงเหมือนเดิม ) Differential chaining attacks: ใช้วิธีการวิเคราะห์แบบ differential กับฟังก์ชัน แฮช 34

การโจมตีเพื่อค้นหารหัสลับ การโจมตีแบบนี้ เป็นการโจมตี MACs ที่ใช้ในรหัสลับแบบ สมมาตร ค้นหาคุณสมบัติของรหัสลับเพื่อค้นหาการชนกัน ตัวอย่าง - คุณสมบัติองค์ประกอบ - คีย์ที่มีจุดอ่อน - จุดคงที่ ( จำกัดผลกระทบที่ได้ผล (Ek(x))=x สำหรับทุก x - การชนกันของคีย์ 35

สรุป ฟังก์ชันแฮชมาตรฐานในปัจจุบันคือ SHA1 (160 bits) HMAC เป็นมาตรฐานของ MAC Birthday attacks มีความเกี่ยวข้องกับขนาดของผลลัพธ์ของ ฟังก์ชันแฮช (brute force) 36