HÀM BĂM MẬT MÃ Nguyễn Minh Hòa

8 241 1
HÀM BĂM MẬT MÃ  Nguyễn Minh Hòa

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

Thông tin tài liệu

Kỷ yếu cơng trình khoa học 2015 – Phần I HÀM BĂM MẬT Nguyễn Minh Hòa Khoa Tốn-Tin, Đại học Thăng Long Email: mr.nmh175@gmail.com Tóm tắt: Khái niệm hàm băm xuất từ lâu lĩnh vực máy tính Nó ánh xạ xâu nhị phân (văn bản, hình ảnh, âm thanh,…) có độ dài thành xâu có độ dài cố định Bản chất băm coi “dấu vân tay” văn Nhờ có ta đảm bảo văn xác khơng bị sửa đổi Hiện giới có nhiều hàm băm phục vụ cho nhiều mục đích khác quân sự, truyền tin, xác thực… Với mong muốn làm chủ nguồn, làm chủ chương trình, chúng tơi cố gắng tìm hiểu cài đặt hàm băm SHA-256 phục vụ cho đề tài Xây dựng hệ thống chữ ký số cho trường Đại học Thăng Long Trong báo mô tả chi tiết hàm băm Từ khóa:Hàm băm, băm, Chữ ký số, SHA-256 Giới thiệu Hàm băm hàm ánh xạ xâu nhị phân có độ dài thành xâu nhị phân có độ dài cố định (thường gọi băm) Thông thường, độ dài băm 128, 160, 256 512 bit.Hàm băm coi hàm nén thơng điệp cách hợp lý Để dùng thực tế, hàm băm cần đảm bảo tính chất như: thời gian tính tốn nhanh, băm sinh phải ngẫu nhiên thuật tốn phải cơng khai Nhằm mục đích đáp ứng tính chất trên, hàm băm SHA-256 xây dựng dựa sơ đồ Merkle-Damgard Ứng hàm nén Davies-Meyer.Ứng dụng để kiểm tra tính tồn vẹn thơng điệp Bài báo trình bày chi tiết lý thuyết cách thức hoạt động hàm băm SHA-256 Nội dung phần bao gồm: Phần mô tả hàm băm kháng xung đột - mơ hình hàm băm phù hợp với thực tế; Phần mô tả hàm băm SHA-256; Phần cuối nói thực tế cài đặt hàm băm SHA-256 dự án Hàm băm kháng xung đột 2.1 Các định nghĩa Định nghĩa 1.Hàm băm hàm tính cách “hiệu quả” Nó ánh xạ xâu nhị phân độ dài không gian thông điệp thành xâu nhị phân độ dài cố định, gọi băm Thông thường độ dài băm d= 128, 160, 256 512 bit Ví dụ Một số hàm băm thực tế Trường Đại học Thăng Long 11 Kỷ yếu cơng trình khoa học 2015 – Phần I Hàm băm d MD4 128 SHA-1 160 SHA-256 256 SHA-512 512 SHA-3 (Keccak) 224, 256, 384, 512 Giả sử hàm băm thiết kế cách lý tưởng (như ngẫu nhiên), cho trước Con số gần bămx, xác suất tìm liệum thỏa mãn H(m) = x d đủ lớn Như hàm băm cho ta biểu diễn nén hợp lý liệu Bên cạnh đó, để dùng thực tế, hàm băm cần có số tính chất sau: • Tính hiệu quả: có thuật tốn “nhanh” (trong thời gian đa thức ) để tính h • Tính ngẫu nhiên: giá trị H(m) khó dự đốn • Tính cơng khai Định nghĩa 2.Một xung đột cho hàm H cặp thỏa mãn Rõ ràng, kích thước đầu vào hàm băm lớn so với kích thước đầu ra, nên theo nguyên lý “chuồng bồ câu”, tồn xung đột Tuy vậy, để hàm băm an toàn việc tìm thấy xung đột phải “khó” Có nghĩa rằng, xác suất tìm thấy xung đột phải “nhỏ” Định nghĩa 3.Hàm H gọi kháng xung độtnếu với thuật tốn (tường minh1) “hiệu quả” A, ta có nhỏ “không đáng kể” Hiệnnay, hàm băm dài tối đa đột , ánh xạ xâu nhị phân độ sang xâu độ dài 256, thừa nhận cách rộng rãi kháng xung Mục đích hàm băm khơng phải giữ bí mật khơng điệp đảm bảo tính tồn vẹn thơng điệp Vì xung đột ln tồn tại, nên ta có thuật tốn in xung đột Tường minh hiểu rẳng thuật toán phải xây dựng xung đột từ mô tả hàm băm, từ xung đột có Trường Đại học Thăng Long 12 Kỷ yếu cơng trình khoa học 2015 – Phần I 2.2 Tấn cơng dùng nghịch lý ngày sinh Thuật tốn sau dùng để tìm xung Xét hàm băm đột cho hàm băm thời gian Thuật toán: Chọn ngẫu nhiên phân biệt cao) xâu (xác suất chúng đôi : Với , ta tính Tìm xung đột Nếu khơng tìm thấy quay lại bước Thuật toán đánh giá dựa định lý sau đây: Định lý (Nghịch lý ngày sinh nhật) Xét nhiên độc lập Nếu biến ngẫu Từ định lý trên, ta thấy kỳ vọng tìm xung đột thuật toán Thời gian cần cho thuật tốn Hàm băm khơng gian cần Kích thước băm Tốc độ (MB/s) SHA-1 160 153 SHA-256 256 111 SHA-512 512 99 Whirlpool 512 57 Thời gian công 2.3 Sơ đồ Merkle-Damgard Để xây dựng hàm băm kháng xung đột, kích thước băm tối thiểu nên 160 bit Tuy nhiên đầu vào xâu với kích thước tùy ý Trên thực tế, việc thiết kế hàm băm miền vơ hạn khó Bởi người ta thường thiết kế hàm nén ánh xạ xâu bit độ dài cố định s thành xâu bít độ dài cố định d, sau thực tính tốn lặp với hàm nén để hàm băm với đầu vào tùy ý Phép biến đổi Merkle-Damgard cách phổ biến để mở rộng hàm nén kháng xung đột với kích thước đầu vào cố định thành hàm băm kháng xung đột kích thước đầu vào tùy ý Trong sơ đồ Merkle-Damgard, ta sử dụng hàm nén kích thước đầu vào cố định Trường Đại học Thăng Long 13 Kỷ yếu cơng trình khoa học 2015 – Phần I Hình Sơ đồ Merkle-Damgard Mục đích ta xây dựng hàm băm kích thước đầu vào tùy ý Sơ đồ Merkle-Damgard mơ tả Hình Thuật tốn Merkle-Damgard mơ tả sau: Dữ liệu cần bămm với độ dài |m| = L ghép với dãy bit với l số nguyên không âm nhỏ để độ dài củam||PB chia hết cho k Thông điệp m||PB chia thành khốik bit: Gán dãy d bit cố định Với i = 0, 1, …, t ta tính Output Tính an tồn sơ đồ Merkle-Damgard định lý sau Định lý Nếu hàm nén h kháng xung đột, hàm H xây dựng theo sơ đồ MerkleDamgard kháng xung đột 2.4 Xây dựng hàm nén Sơ đồ trước cho phép ta đưa toán thiết kế hàm băm kháng xung đột với đầu vào toán thiết kế hàm nén với đầu vào cố định Bây ta xem xét cách thiết kế hàm nén dựa khối an toàn Xét hệ khối E khơng gian khóa K không gian thông điệp : Hàm nén Davies-Meyer định nghĩa bởi: Trường Đại học Thăng Long 14 Kỷ yếu cơng trình khoa học 2015 – Phần I Giả sử (E,D) hệ khối “lý tưởng” (tập gồm |K| hốn vị ngẫu nhiên) Tìm xung độth(x,y)= h(x',y')cho hàm nén Davies-Meyer định nghĩa D) lần tính (E, Để phù hợp với tiêu chuẩn quốc gia Việt Nam chữ ký số (TCVN 7635:2007), sử dụng SHA-256 hàm băm phục vụ dự án chữ ký số trường Đại học Thăng Long Hàm băm chuẩn SHA-256 xây dựng dựa sơ đồ Merkle-Damgard,hàm nén Davies-Meyer hệ khối SHACAL-2 với kích thước khối 256.Phần tiếp theo, mô tả chi tiết SHA-256 SHACAL-2 Hàm băm SHA-256 Hàm băm SHA256 nhận đầu vào xâu bit (ký tự, tập tin…) có độ dài tối đa bit tạo băm có độ dài 256 bit thường biểu diễn dạng 64 chữ số hệ số 16 3.1 Sơ đồ chung Hàm băm xây dựng dựa sơ đồ Merkle-Damgard với dãy 256 bit chia thành khối liên tiếp • Vector khởi tạo • Dữ liệu đầu vào chia thành khối m[i] kích thước 512 bit, • Hàm nén Davies-Meyer định nghĩa E hệ khối an toàn 3.2 Hệ khối SHACAL-2 Ta sử dụng số ký hiệu sau để mô tả hệ khối SHACAL-2: Ký hiệu Trường Đại học Thăng Long Mô tả 15 Kỷ yếu cơng trình khoa học 2015 – Phần I ⋀ Phép tốn AND ⊕ Phép tốn XOR ¬ Phép đảo bit Phép quay phải n bit Phép dịch phải n bit Dựa vào ký hiệu trên, ta xây dựng hàm sau Ta sử dụng số độ dài 32 bit Đây 32 bit giá trị bậc ba 64 số nguyên tố Các số mơ tả (ở dạng hexa) Q trình tính tốn diễn sau: Trường Đại học Thăng Long 16 Kỷ yếu cơng trình khoa học 2015 – Phần I Cài đặt thử nghiệm Hiện có nhiều thư viện hỗ trợ sẵn hàm băm SHA-256 Tuy nhiên, với mong muốn làm chủ nguồn giúp chương trình sau linh hoạt việc xử lý, thay thế, nâng cấp modul, chúng tơi định tự cài đặt lại thuật tốn SHA-256 theo mô tả tài liệu FIPS PUB 180-4 cài đặt thành công ngôn ngữ lập trình C++ hệ điều hành Windows - 64bits.Chương trình kiểm tra vector test NIST so sánh với chương trình sinh SHA256 khác Đầu vào chương trình đường dẫn tập tin (văn bản, hình ảnh, âm thanh,…) Đầu chương trình xâu dài 64 ký tự (mỗi ký tự số hệ số 16), băm SHA-256 tập tin đầu vào dạng hexa Chúng tơi chạy thử nghiệm chương trình máy laptop có xử lý Core i5 1.8Ghz, với 4GB Ram, hệ điều hành Windows 8, 64 bit Thời gian sinh băm chương trình phụ thuộc vào kích thước tập tin đầu vào Với tập tin có kích thước Trường Đại học Thăng Long 17 Kỷ yếu cơng trình khoa học 2015 – Phần I 200MB, thời gian sinh băm trung bình xấp xỉ giây Trong q trình kiểm thử, chúng tơi băm tập tin hình video kích thước 1,05GB, thời gian sinh băm xấp xỉ 13 giây Tài liệu tham khảo [1] Khóa học Cryptography I : https://www.coursera.org/course/crypto [2] Jonathan Katz Chapman & Hall/CRC, 2007 Yehuda Lindell, Introduction to Modern Cryptography, [3] NIST, Federal Information Processing Standards Publication 180-4, SecureHash Standards (SHS), March 2012 Abstract: The concept “hash function” has appeared long ago in Computer Science It maps a binary string (text, images, audio, ) with any length into a fixed-length string The nature of the hash code can be viewed as a "fingerprint" of a document.And we can use it to guarantee that a document is correct and not be modified.Today, there are many hash functions which are usedformany different purposes, such as military, communications, authentic With a desire to control the source code and program, we have tried to learn and install SHA-256 in digital signature system for Thang Long University project In the paper, we will describe the details of this hash function Keyword:Hash function, Hash digest, Digital signature, SHA-256 Trường Đại học Thăng Long 18 ... suất tìm thấy xung đột phải “nhỏ” Định nghĩa 3.Hàm H gọi kháng xung độtnếu với thuật tốn (tường minh1 ) “hiệu quả” A, ta có nhỏ “không đáng kể” Hiệnnay, hàm băm dài tối đa đột , ánh xạ xâu nhị... mà đảm bảo tính tồn vẹn thơng điệp Vì xung đột ln tồn tại, nên ta có thuật tốn in xung đột Tường minh hiểu rẳng thuật tốn phải xây dựng xung đột từ mơ tả hàm băm, từ xung đột có Trường Đại học

Ngày đăng: 06/05/2018, 16:14

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

Tài liệu liên quan