Báo cáo nghiên cứu - Cài đặt Thuật toán RIPEMD - Khoa An toàn Thông tin - Học viện Kỹ thuật Mật mã

26 1K 8
Báo cáo nghiên cứu - Cài đặt Thuật toán RIPEMD - Khoa An toàn Thông tin - Học viện Kỹ thuật Mật mã

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tiểu luận tìm hiểu về hàm băm RIPEMD Tiểu luận tìm hiểu về hàm băm RIPEMD Tiểu luận tìm hiểu về hàm băm RIPEMD Tiểu luận tìm hiểu về hàm băm RIPEMD Tiểu luận tìm hiểu về hàm băm RIPEMD Tiểu luận tìm hiểu về hàm băm RIPEMD Tiểu luận tìm hiểu về hàm băm RIPEMD

HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA AN TỒN THƠNG TIN  BÁO CÁO BÀI TẬP LỚN MÔN HỌC MẬT MÃ HỌC NÂNG CAO Chủ đề số 20 CÀI ĐẶT THUẬT TOÁN RIPEMD Giảng Viên: TS.Trần Tuấn Anh Thực hiện: Sinh viên AT8C Lê Xuân Đoàn Bùi Đức Thiện Ý KIẾN GIẢNG VIÊN MỤC LỤC LỜI NĨI ĐẦU Ngày với việc ứng dụng cơng nghệ thông tin ngày phổ biến rộng rãi ảnh hưởng lớn đến diện mạo đời sống kinh tế xã hội Mọi công việc hàng ngày thực với hỗ trợ máy vi tính mạng internet(từ học tập giao dịch …) máy tính internet trở thành phần khó tách rời với nhịp sống đại ngày Nhưng vấn đề khó đặt để giữ bí mật thông tin chúng đến nơi mà chúng cần đến Nhiều tổ chức cá nhân tìm kiếm đưa giải pháp bảo mật phương pháp mã hóa cao Như mã hóa thơng tin đảm bào cho thông tin tránh bị thay đổi chép Trong nghiên cứu nhóm trình bày vấn đề mã hóa thơng tin sử dụng hàm băm, tìm hiểu tổng quan hàm băm sâu tìm hiểu phân tích thiết kế cài đặt thuật tốn mã hóa RIPEMD CHƯƠNG HÀM BĂM MẬT MÃ 1.1 Tổng quan hàm băm mật mã Hiểu theo nghĩa đơn giản, hàm băm hàm cho tương ứng mảng liệu lớn với mảng liệu nhỏ mà dùng rộng rãi nhiều ứng dụng tin học, không thuộc phạm vi mật mã Ở đây, xét đến hàm băm phạm vi hàm băm mật mã, xem xét cụ thể đến ứng dụng chúng việc đảm bảo tính tồn vẹn liệu Các hàm băm nhận đầu vào chuỗi bit có chiều dài hữu hạn tùy ý tạo chuỗi bit có chiều dài cố định n bit (n > 0) gọi mã băm (hash code) Trong mã hóa, mã băm xem ảnh đại diện thu gọn (compact representative image) chuỗi bit có độ dài hữu hạn tùy ý dùng để nhận diện cho chuỗi bit Kết hợp với công cụ tạo chữ ký số, hàm băm dùng cho việc đảm bảo tính tồn vẹn liệu Trong lược đồ chữ ký số, mã băm chuỗi bit tính thời điểm T1 bảo vệ để chống lại thay đổi bất hợp pháp Tại thời điểm T2 sau đó, để kiểm tra xem chuỗi bit x có bị thay đổi hay khơng, người ta thường tính giá trị hàm băm chuổi bit thời điểm T2, mà ta ký hiệu xT2, sau so sánh giá trị vừa tính với mã băm thời điểm T1 Nếu giá trị người ta chấp nhận chuổi bit thời điểm T2 trùng khớp với chuổi bit thời điểm T1, tức chuỗi bit x chưa bị thay đổi Như vấn đề bảo đảm tính tồn vẹn chuỗi bit có chiều dài tùy ý thay việc bảo vệ toàn vẹn chuỗi bit có chiều dài cố định 1.2 Định nghĩa tổng quát hàm băm Hàm h(x) gọi hàm băm thoả mãn hai tính chất sau: Nén gọn (Compression): Hàm h(x) tương ứng chuỗi bit đầu vào x có chiều dài hữu hạn tuỳ ý vào chuỗi bit y = h(x) có chiều dài cố định n >0 cho trước • Dễ tính toán (Easy of computation): Với chuỗi bit đầu vào x có chiều dài hữu hạn tuỳ ý, h(x) tính tốn dễ dàng 1.3 Các tính chất hàm băm mật mã • Một hàm băm mật mã lý tưởng có tính chất sau : 1.3.1 Tính kháng tiền ảnh (Preimage resistance) Với đầu y cho trước, khơng thể tìm liệu đầu vào x cho h(x) = y (hay tìm thơng điệp từ giá trị băm cho trước) 1.3.2 Tính kháng tiền ảnh thứ hai (2nd - Preimage resistance) Với liệu đầu vào x cho trước y = h(x), khơng thể tính tốn để tìm giá trị x’x cho h(x’)=h(x) (hay khơng thể tìm thơng điệp khác mà có giá trị băm) 1.3.3 Tính kháng xung đột (Collision resistance) Khơng thể tính tốn để tìm hai liệu đầu vào x x’ phân biệt cho chúng có giá trị băm h(x)=h(x’) (hay sửa thông điệp mà không làm thay đổi giá trị băm nó) 1.4 Phân loại hàm băm mật mã Dựa tham biến đầu vào hàm băm, hàm băm mật mã phân thành hai lớp:  Lớp hàm băm sử dụng khoá (keyed hash functions), chẳng hạn MAC (Message Authentication Codes): nhận hai giá trị đầu vào o Thông điệp cần tính giá trị băm o Khố bí mật để băm văn theo chuẩn quy định  Lớp hàm băm khơng sử dụng khố (unkeyed hash functions): nhận giá trị đầu vào Thông điệp (message) Trong lớp hàm băm không sử dụng khố MDCs (Modification Detection Codes – mã nhận diện thay đổi) lớp lớp Lớp hàm lại tiếp tục phân thành lớp nhỏ - Hàm băm chiều (One-Way Hash Functions - OWHFs): hàm lớp thỗ tính chất với mã băm biết trước, khơng thể tính tốn để tìm chuỗi bit đầu vào có mã băm với mã băm cho - Hàm băm kháng xung đột (Collision Resistant Hash Functions CRHFs): hàm lớp thỗ mãn tính chất khơng thể tính tốn để tìm hai chuỗi bit có giá trị băm 1.5 Cấu trúc thuật toán hàm băm Khối liệu đầu vào x có chiều dài tuỳ ý phân thành khối liên tiếp x1, x2, …, xm (với xi có chiều dài cố định r) Tuy nhiên chiều dài khối ban đầu tùy ý nên ta cần thêm vào liệu ban đầu số bit phụ cho tổng số bit khối liệu x sau thêm vào bội số r Ngoài số bit phụ thêm vào thường chứa khối bit xác định chiều dài thực khối liệu chưa thêm bit phụ Sau ta cắt khối r bit từ khối x Mỗi khối r bit xi ta thực hàm nén hàm băm h(x) ký hiệu f Tại bước thứ i, hàm nến f nhận liệu đầu vào xi kết trung gian bước trước để tạo đầu kết trung gian bước thứ i, ký hiệu Hi Kết trung gian bước Hi chuổi bit có độ dài cố định n>0 Nếu ký hiệu IV (init value) giá trị khởi tạo ban đầu cho H0, trình lặp xử lý dãy khối x1,x2,…, xm mô tả sau: H 0=IV H 1= f(Hi-1, xi), (i=1,…,m) h(x) = g(Hm) Hi kết trung gian sau bước thứ i, biến dây chuyền Hàm g(x) ánh xạ biến dây chuyền cuối để tạo mã băm kết Và thông thường, g(x) chọn ánh xạ đồng nhất: g(Hm)o Hm Khâu then chốt xây dựng hàm băm thiết kế hàm nén f 1.6 Ứng dụng hàm băm mật mã Một ứng dụng điển hình hàm băm mật mã học sau: Alice đưa cho Bob câu đố khó tun bố giải Bob muốn tự giải, muốn chắn Alice giải Do đó, Alice viết đáp án, gắn thêm nonce ngẫu nhiên, tính giá trị băm nó, đưa kết băm cho Bob (trong giữ bí mật đáp án nonce) Bằng cách này, Bob tự giải xong, Alice chứng minh có đáp án từ trước cách đưa nonce cho Bob Trong thực tiễn, Alice Bob thường chương trình máy tính, bí mật thường khơng dễ lừa lời giải cho câu Ứng dụng gọi hệ thống tin cậy (commitment scheme) Một ứng dụng quan trọng khác hàm băm bảo mật kiểm tra tính tồn vẹn thơng điệp Ví dụ, việc xác định xem file hay thơng điệp có bị sửa đổi hay khơng thực cách so sánh tóm tắt tính trước sau gửi (hoặc kiện đó) Cịn dùng tóm tắt thơng điệp làm phương tiện đáng tin cậy cho việc nhận dạng file Một ứng dụng có liên quan kiểm tra mật Mật thường khôngđược lưu dạng văn rõ (clear text), mà dạng tóm tắt Để xác thực người dùng, mật người nhập vào băm so sánh với kết băm lưu trữ Do lý bảo mật hiệu chương trình, đa số thuật tốn chữ ký số nói có tóm lược thơng điệp, khơng phải tồn văn thơng điệp, "ký" Các hàm băm cịn dùng để tạo bit giả ngẫu nhiên (pseudorandom) 1.7 Các hàm băm mật mã Trong danh sách dài hàm băm mật mã đây, có số hàm băm cho dễ bị tổn thương không nên sử dụng Ngay hàm băm chưa bị phá vỡ, công thành công biến thể yếu làm giảm tự tin chuyên gia dẫn đến loại bỏ Ví dụ, vào tháng năm 2004 người ta tìm điểm yếu vài hàm băm phổ biến vào thời đó, bao gồm SHA0, RIPEMD, MD5 Điều đặt câu hỏi an ninh lâu dài thuật toán sau bắt nguồn từ hàm băm - đặc biệt, SHA-1 (một phiên mạnh SHA-0), RIPEMD-128, RIPEMD-160 (cả hai phiên mạnh RIPEMD) Vì vậy, SHA-0 RIPEMD khơng sử dụng rộng rãi kể từ chúng thay phiên mạnh Thuật tốn 256/224/192/160/128 Kích thước Kích thước Thơng Kích điệp tối thước trạng thái HAVAL Kích thước đầu khối đa word 1024 64 32 256 Xung đột Có Khả MD2 128 384 128 No lớn MD4 MD5 128 128 128 128 512 512 64 64 32 32 Có Có PANAMA 256 8736 256 No 32 Có lỗi RIPEMD 128 128 512 64 32 Có 128/256 128 512 64 32 Khơng 160/320 160/320 512 64 32 Không 160 160 512 64 32 Có RIPEMD128/256 RIPEMD160/320 SHA-0 Bảng 1: Các hàm băm mật mã CHƯƠNG HÀM BĂM RIPEMD 2.1 Tổng quan hàm băm RIPEMD RIPEMD (RACE Integrity Primitives Evaluation Message Digest) họ hàm băm mật mã phát triển Leuven- Bỉ Hans Dobbertin, Antoon Bosselaers Bart Preneel nhóm nghiên cứu COSIC Katholieke Universiteit Leuven lần xuất vào năm 1996 RIPEMD dựa nguyên tắc thiết kế sử dụng MD4, hiệu hoạt động phổ biến MD4 2.2 RIPEMD-128 RIPEMD - 128 hàm băm 128 -bit sử dụng xây dựng mở rộng Thuật toán Merkle Damgard : hàm băm xây dựng cách duyệt chức nén 128 -bit mà đầu vào 512 -bit với đẩu 128 bit Các chức nén RIPEMD - 128 dựa MD4 , với đặc thù mà sử dụng hai trường hợp song song nó, Chúng ta phân biệt hai chi nhánh tính tốn nhánh trái nhánh phải hiển thị X i (resp Yi) 32 bit nhánh trái (resp right branch).Quá trình cập nhật bước i hàm nén Quá trình bao gồm 64 bước chia thành vịng 16 bước hai chi nhánh cụ thể trình: Khởi tạo: Các đầu vào 128 -bit chuỗi cvi biến chia thành từ hi 32 bit, sử dụng để khởi tạo nhánh trái phải 128 -bit trạng thái nội : 10 MD4 Cuộc cơng vào MD4 địi hỏi vài giây máy tính , cịn để lại tự để lựa chọn tin nhắn, cầm quyền rõ ràng MD4 hàm băm kháng va chạm Ngay sau , vào mùa xuân năm 1996, Hans tìm thấy va chạm cho chức nén MD5 Mặc dù chưa mở rộng đến va chạm với MD5 thân , công phôi nghi ngờ nghiêm trọng sức mạnh MD5 vụ va chạm • Crypto 2004 Xiaoyun Wang , Dengguo Feng , Xuejia Lai Hongbo Yu tìm thấy xung đột trong: MD4, MD5, RIPEMD, and the 128-bit version of HAVAL RIPEMD - 160 phiên tăng cường RIPEMD với kết băm 160 -bit , dự kiến an toàn mười năm tới Triết lý thiết kế xây dựng nhiều tốt kinh nghiệm thu cách đánh giá MD4 , MD5 , RIPEMD Giống người tiền nhiệm , RIPEMD - 160 điều chỉnh cho vi xử lý 32 -bit , mà cảm thấy quan trọng thập kỷ tới RIPEMD - 256 RIPEMD - 320 phần mở rộng tùy chọn tương ứng cho RIPEMD - 128 RIPEMD - 160 , dành cho ứng dụng hàm băm mà đòi hỏi kết hash lâu mà không cần mức độ bảo mật lớn 12 CHƯƠNG PHÂN TÍCH THIẾT KẾ VÀ CÀI ĐẶT RIPEMD 3.1 Phân tích hình 3.1 Sơ đồ thuật tốn Mơ tả thuật tốn 13 Input : Thơng điệp (văn bản) có độ dài tùy ý Ouput: Bản băm,đại diện cho văn gốc,độ dài cố định ( phụ thuộc vào thuật toán RIPEMD mà băm có kích thước 128 bit,160 bit,256 bit,320 bit) Giả sử thơng điệp đầu vào a có độ dài b ( b 0) Phân tích thuật tốn RIPEMD-160 RIPEMD-160 nén chuỗi đầu vào kích thước tùy ý cách chia thành khối 512 bit Mỗi khối chia thành 16 chuỗi byte mỗi,và chuỗi 4byte chuyển đổi thành từ 32-bit Để đảm bảo kích thước tổng số đầu vào bội số 512 bit,đầu vào đệm thêm chuỗi n số ( < n < 511) Thông điệp đầu vào xử lí qua vịng song song Kết RIPEMD-160 chứa từ 32 bit Hoạt động thuật toán 1: A := (A + f (B; C; D) + X + K)

Ngày đăng: 15/03/2015, 17:17

Từ khóa liên quan

Mục lục

  • CHƯƠNG 1 HÀM BĂM MẬT MÃ

    • 1.1 Tổng quan về hàm băm mật mã

    • 1.2 Định nghĩa tổng quát của hàm băm

    • 1.3 Các tính chất của hàm băm mật mã

    • 1.3.1 Tính kháng tiền ảnh (Preimage resistance)

    • 1.3.2 Tính kháng tiền ảnh thứ hai (2nd - Preimage resistance)

    • 1.3.3 Tính kháng xung đột (Collision resistance)

    • 1.4 Phân loại hàm băm mật mã

    • 1.5 Cấu trúc của thuật toán hàm băm

    • 1.6 Ứng dụng của hàm băm mật mã

    • 1.7 Các hàm băm mật mã hiện nay

    • CHƯƠNG 2 HÀM BĂM RIPEMD

      • 2.1 Tổng quan về hàm băm RIPEMD

      • 2.2 RIPEMD-128

      • 2.3 RIPEMD-160

      • CHƯƠNG 3 PHÂN TÍCH THIẾT KẾ VÀ CÀI ĐẶT RIPEMD

        • 3.1 Phân tích

        • 3.2 Thiết kế

        • 3.3 Cài đặt

        • KẾT LUẬN

        • TÀI LIỆU THAM KHẢO

Tài liệu cùng người dùng

Tài liệu liên quan