lecture81 HashFunction
1Lecture 8:Hàm băm và các ứng dụng•Giới thiệu hàm băm• Các tính chất của hàm băm•Hàm băm MD4•Hàm băm MD5 2Giới thiệu• Hàm băm (tiếng Anh: hash function) là giải thuật nhằm sinh ra các giá trị băm tương ứng với mỗi khối dữ liệu (có thể là một chuỗi kítự, một đối tượng trong lập trình hướng đối tượng, v.v .). • Giá trị băm đóng vai gần như một khóa để phân biệt các khối dữliệu. 3Giới thiệu•Nếu sử dụng sơ đồ chữ ký số trên từng bit của thông tin, thì thời gian để ký sẽ tỷ lệ thuận với dung lượng của thông tin.•Giải pháp cho các vấn đề vướng mắc đến chữ ký số là dùng hàm băm để trợ giúp cho việc ký số. Các thuật toán băm với đầu vào là các bức thông điệp có dung lượng, kích thước tùy ý– các bức thông điệp cóthể là dạng văn bản, hình ảnh, âm thanh, file ứng dụng v.v… - và với các thuật toán băm: MD2, MD4, MD5, SHA cho các bản băm đầu ra có kích thước cố định: 128 bit với các hàm băm MD, 160 bit với SHA. •Như vậy, bức thông điệp kích thước tùy ý sau khi băm sẽ được thu gọn thành những bản băm – được gọi là các văn bản đại diện –cókích thước cố định (128 bit hoặc 160 bit). Với mỗi thông điệp đầu vào chỉ có thể tính ra được một văn bản đại diện – giá trị băm tương ứng–duy nhất. Giá trị băm được coi là đặc thù của thông điệp, giống như dấu vân tay của mỗi người. Hai thông điệp khác nhau chắc chắn có hai văn bản đại diện khác nhau. Khi đã có văn bản đại diện duy nhất cho bức thông điệp, áp dụng các sơ đồ chữ ký số ký trên văn bản đại diện đó. 4Các tính chấtcủahàmhash• Kháng tiền ảnh (Preimage resistance): Cho y không thể tínhtoán để tìm ra một giá trị x mà h(x)=y•Chống xung đột (collision resistance): Không thể tính toán đểtìmra2 giátrị khác nhau x’,x mà h(x’)=h(x) 5MD4•Thiếtkế cho các phầnmềmthựchiệntrêncácmáy32-bit, địnhnghĩa thêm các hàm f, g, h.•Làkhởi đầu cho các thuật toán: MD5, SHA-1 and RIPEMD• Đầura là128bit(Đãbị tìm thấy xung đột trên các thông điệp có nghĩa) 6MD5• MD5 chuyển một đoạn thông tin chiều dài thay đổi thành một kết quả chiều dài không đổi 128 bit.•Mẩu tin đầu vào được độn thêm các bít sao cho chiều dài tính theo bít của nó chia hết cho 512. Công việc độn vào như sau: đầu tiên một bit 1 được gắn vào cuối mẩu tin. Tiếp theo là một dãy các số bít 0 sao cho chiều dài của mẩu tin lên tới 64 bit ít hơn so với bội số của 512. Những bit còn lại được lấp đầy bằng một số nguyên 64-bit đại diện cho chiều dài của mẩu tin gốc.•Mẩu tin đầu vào sau đó được chia thành từng đoạn 512 bit; 7MD5•Giải thuật MD5 hoạt động trên 128-bit, được chia thành 4 từ 32-bit, với ký hiệu A, B, C và D. • Chúng được khởi tạo với những hằng số cố định. Giải thuật chính sau đósẽ xử lý các khối tin 512-bit, mỗi khối xác định một trạng thái. • Quá trình xử lý khối tin bao gồm 4 giai đoạn giống nhau, gọi là vòng; mỗi vòng gồm có 16 tác vụ giống nhau dựa trên hàm phi tuyến F, cộng mô đun, và dịch trái. Có 4 khả năng cho hàm F; mỗi khả năng được dùng khác nhau cho mỗi vòng: 8MD5 – 4 khả năng của hàm F 9MD5 – Sơ đồ tác vụ• MD5 bao gồm 64 tác vụ như trên, được chia thành 4 vòng, mỗi vòng 16 tác vụ. Flà một hàm phi tuyến – mỗi hàm F được dùng trong một vòng. Milà một khối tin nhập vào 32-bit, và Ki chỉ một hằng số 32-bit, khác nhau cho mỗi tác vụ. 10Thuật toán MD5 – Giả mã• Thuật toán . thểđượctruyềnhoặclưutrữthay cho paswordHashFunctionHashFunctionHello Dave Enclosed is my feedback about your proposal.3XO62LHello95R87AHashHashHashHashHashFunctionHashFunction 12Ví