Thực vậy, tìm ra các điểm chƣa hoàn chỉnh nhƣ vậy ở một hàm băm là một bằng chứng cho các yếu điểm về cấu trúc mà có thể bị phá hủy ở phạm vi lớn hơn để biến sự tấn công trên lý thuyết n
Trang 1Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
–––––––––––––––––
ĐỖ THU HOÀI
NGHIÊN CỨU VỀ HÀM BĂM TRÊN CƠ SỞ MẠNG HOÁN VỊ THAY THẾ ĐIỀU KHIỂN ĐƯỢC VÀ ỨNG DỤNG TRONG MÃ HÕA XÁC THỰC VĂN BẢN
Chuyên ngành: Khoa học máy tính
Mã số : 62.48.01
LUẬN VĂN THẠC SỸ KHOA HỌC MÁY TÍNH
Thái Nguyên, năm 2013
Trang 2Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
LỜI CAM ĐOAN
Em xin cam đoan toàn bộ luận văn: “Nghiên cứu về hàm băm trên cơ sở mạng hoán vị thay thế điều khiển được và ứng dụng trong mã hóa xác thực văn bản” là do bản thân tìm hiểu, nghiên cứu Không có sự sao chép nội dung từ các luận văn khác Tất cả nội dung hoặc hình ảnh minh họa đều có nguồn gốc xuất xứ
rõ ràng từ các tài liệu tham khảo ở nhiều nguồn khác nhau mà xây dựng nên Ngoài
ra còn có sự góp ý và định hướng của thầy giáo TS Vũ Đức Thái
Em xin cam đoan những lời trên là đúng, mọi thông tin sai lệch em xin hoàn toàn chịu trách nhiệm trước Hội đồng
Trang 3Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
MỤC LỤC
LỜI CAM ĐOAN 1
MỤC LỤC 2
DANH MỤC CÁC CHỮ VIẾT TẮT 4
DANH MỤC HÌNH ẢNH 5
DANH MỤC BẢNG BIỂU 7
CHƯƠNG 1 TỔNG QUAN VỀ HÀM BĂM 10
1.1 Giới thiệu về hàm băm 10
1.1.1 Định nghĩa về hàm băm 10
1.1.2 Lịch sử phát triển của hàm băm 11
1.1.3 Thuộc tính an toàn của hàm băm 13
1.1.4 Các quan niệm an toàn 15
1.2 Ứng dụng của hàm băm 16
1.3 Xu hướng thiết kế 17
1.3.1 Hàm băm không khóa và có khóa 17
1.3.2 Hàm băm lặp 18
1.3.3 Hàm băm dựa trên hình cây 28
1.3.4 Hàm nén 29
CHƯƠNG 2 KIẾN TRÚC MẠNG CHUYỂN VỊ THAY THẾ ĐIỀU KHIỂN ĐƯỢC 30
2.1 Các phần tử mã hóa cơ bản điều khiển được dựa trên mạng chuyển vị thay thế 30
2.1.1 Phần tử điều khiển cơ bản 30
2.1.2 Phân loại các phần tử cơ bản 32
2.1.3 Nhóm phụ của các phần tử U 2/1 với một đầu ra tuyến tính 37
2.2 Tô pô đối xứng 41
CHƯƠNG 3 XÂY DỰNG VÀ CÀI ĐẶT CHƯƠNG TRÌNH MÔ PHỎNG 51
3.1 Bài toán ứng dụng 51
3.2 Thiết kế CSDL, thuật toán và giao diện chương trình hàm băm 51
3.2.1 Thiết kế cơ sở dữ liệu 51
3.2.2 Thuật toán thực hiện 53
3.2.3 Phân tích các modul chương trình chính 54
3.2.4 Giao diện chương trình 58
Trang 4Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
3.3 Cài đặt chương trình 58
3.4 Tích hợp Add-In vào cho phần mềm Microsoftword 2007 59
3.5 Thử nghiệm và đánh giá kết quả 60
3.5.1 Một số kết quả thử nghiệm của chương trình 60
3.5.2 Đánh giá kết quả 61
3.6 Nghiên cứu sử dụng công nghệ FPGA để cấu hình các phần tử điều khiển được 62
3.7 Kết luận 69
KẾT LUẬN 71
TÀI LIỆU THAM KHẢO 72
PHỤ LỤC 74
Trang 5Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
DANH MỤC CÁC CHỮ VIẾT TẮT
Từ viết tắt Nghĩa tiếng Anh Nghĩa tiếng Việt
AES Advanced Encryption Standard Tiêu chuẩn mã hóa tiên tiến
CE Controlled Element Phần tử điều khiển đƣợc
Permutation Network
Mạng Hoán vị-Thay thế điều khiển đƣợc
DES Data Encrypt Standar Chuẩn mã hóa dữ liệu
DDP Data Dependent Permutation
(data-driven permutation)
Hoán vị phụ thuộc vào dữ liệu
FPGA Field Programmable Gate Array Thiết bị lập trình có khá năng tái
cấu hình
HMAC Hashed Message Authentication
Code
Xác thực thông điệp bằng hàm băm
NIST National Institute of Standards and
MD5 Message-Digest algorithm 5 Giải thuật tóm tắt thông điệp
MDP Message-Digest Permutation Hoán vị tóm tắt thông điệp
PKC Public Key Cryptographic Mật mã khóa công khai
RIPEMD Race Integrity Primitives
Evaluation Message Digest
Phân loại đánh giá tính toàn vẹn nguyên thủy của thông điệp
SHA Secure Hash Algorithm Thuật giải băm an toàn
SPN Substitution Permutation Network Mạng hoán vị thay thế
TT Truth Table Bảng giá trị chân lý của các phép
toán logic UOWHFs Universal One -Way Hash
Functions
Hàm băm 1 chiều phổ dụng
Trang 6Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
DANH MỤC HÌNH ẢNH
Hình 1.1 Hoạt động của một hàm băm 11
Hình 1.2 Sơ đồ biểu diễn các thuộc tính khả năng chống đụng độ, ngăn sự nghịch ảnh và nghịch ảnh thứ 2 14
Hình 1.3 Thuật toán bước đệm Merkle-Damgard 20
Hình 1.4 Cấu trúc Merkle-Damgard 20
Hình 1.5 Tấn công đa đụng độ 21
Hình 1.6 Cấu trúc kim cương 24
Hình 1.7 Cấu trúc NMAC (a) và HMAC (b) 27
Hình 1.8 Cấu trúc MDP 28
Hình 1.9 Cấu trúc cây mẫu 29
Hình 2.1 Phần tử cơ bản F 2/1 : a Sơ đồ tổng quát; b Sơ đồ dạng hàm Logic với 3 biến vào; c Sơ đồ dạng 2 phép thế; d,e Biểu diễn CE thuộc loại P 2/1 ; f Đặc trưng vi phân của F 2/1 30
Hình 2.2 Mô tả trực quan toàn bộ các khả năng có thể có của hộp S 2x2 34
Hình 2.3 Tô pô của các phần tử F 8/12 (a), F-18/12 (b), F 32/96 (c), và F-132/96 (d) 44
Hình 2.4 Cấu trúc của các phần tử 32/96 (a), -132/96 (b), 64/384 (c) và -164/384 (d) 45
Hình 2.5 Cấu trúc các phần tử đối xứng F 2n/4m (a), P 16/32 (b) và F 64/256 46
Hình 3.1: Kết quả thử nghiệm với file *.doc 52
Hình 3.2 : Kết quả thử nghiệm với file *.txt 53
Hình 3.3 Các phần tử cơ bản (a,e), (e,g), (f,i), (p,h), (x,d) 55
Hình 3.4 Phần tử CP F8/12 55
Hình 3.5 Phần tử CP F-18/12 56
Hình 3.6 Phần tử F 96/1 56
Hình 3.7 Phần tử F 32/96 (a), F -132/96 (b) 57
Hình 3.8 Phần tử F 32/32 57
Hình 3.9 Giao diện chương trình 58
Hình 3.10 Xây dựng thư viện HashDLL.dll 59
Hình 3.11 Giao diện sử dụng Add-In “Ez Hash Function” trong word 2007 60
Hình 3.12 Phần tử (a) được biểu diễn thành một cặp hàm logic 4 biến (b) hoặc thành 4 phép thế 2x2 (c) 64
Hình 3.13 Cấu trúc tổng quát của các phần tử n/m 65
Trang 7Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
Hình 3.14 Các đặc trƣng vi phân có thể của các phần tử F 2/2 66
Trang 8Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
DANH MỤC BẢNG BIỂU
Bảng 1.2 Một số thuật ngữ về hàm băm 18 Bảng 2.1 Xác suất của các đặc trƣng vi phân của các phần tử 35 Bảng 2.2 Toàn bộ các phần tử điều khiển đƣợc thỏa mãn tiêu chí lựa chọn 36 Bảng 2.3 Tập các đối hợp phi tuyến tính cơ bản điều khiển đƣợc 38 Bảng 2.4 Xác suất của các đặc trƣng vi phân của các phần tử và tập 40 Bảng 2.5 Các phần tử hoán vị điều khiển đƣợc với cấu trúc đối xứng 47
Trang 9Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
MỞ ĐẦU
Mật mã (Cryptography) là ngành khoa học nghiên cứu các nội dung về toán
học, kỹ thuật nhằm cung cấp các dịch vụ bảo vệ thông tin trong quá trình tuyền tin Khoa học mật mã đã ra đời và phát triển từ rất sớm, các kết quả nghiên cứu của lĩnh vực này được sử dụng nhiều trong lĩnh vực quân sự, chính trị, ngoại giao Ngày nay, khi công nghệ thông tin phát triển các ứng dụng mã hóa và bảo mật thông tin đang được sử dụng rộng rãi sang nhiều lĩnh vực khác như kinh tế, thương mại điện
tử, ngân hàng…
Với sự phát triển của công nghệ truyền thông và các mạng giao dịch toàn cầu, việc trao đổi thông tin ngày càng đơn giản và thuận tiện hơn, bên cạnh đó cũng nảy sinh nhiều yêu cầu cao hơn về bảo mật thông tin trong các hệ thống và các ứng
lớn và chúng không ngừng được nâng cao về mọi mặt để có thể đáp ứng xu thế thời đại Trong môi trường mạng, việc truy nhập, lưu giữ và trao đổi thông tin (trong đó
có các thông tin rất nhạy cảm) được phát triển với tốc độ cao Điều này đã tạo điều kiện cho các hoạt động phi pháp trên mạng ngày càng gia tăng Việc xâm phạm dưới các hình thức khác nhau có thể gây ra các hậu quả nặng nề cho các cá nhân và
ứng dụng mạng với các nguy cơ an toàn về thông tin
Do nhu cầu thực tế, khoa học mật mã không ngừng được nghiên cứu, phát triển và ứng dụng Trên thực tế, mật mã có thể phân chia hình thức thành ba hướng chính - mật mã khóa bí mật, mật mã khóa công khai, hàm băm mật mã Trong đó các hàm băm mật mã đóng một vai trò vô cùng quan trọng trong các ứng dụng bảo
vệ an toàn thông tin (xác thực, kiểm tra tính toàn vẹn, chữ ký số, …)
Trong những năm qua vấn đề nghiên cứu về mật mã tại Việt Nam cũng còn nhiều hạn chế bởi nhiều lý do hoặc có những kết quả nghiên cứu chỉ mang nội dung
cơ bản, đặc thù áp dụng trong những tình huống cụ thể của mỗi đơn vị sử dụng Còn
Trang 10Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
lại đa số các công nghệ, kỹ thuật mã hóa trong các ứng dụng và thiết bị đều theo các
mô hình mã hóa của thế giới nhƣ DES, AES, MD5, Do đó, việc nghiên cứu và phát triển các hàm băm mật mã tốt, luôn đƣợc sử dụng trong thực tiễn nhằm phát triển các thuật toán ngày càng tối ƣu, hoặc các thuật toán phù hợp cho các ứng dụng
- một trong những mục tiêu chính đƣợc đặt ra nhằm nâng cao tính độc lập trong xây dựng các giải pháp an toàn thông tin
Với mục đích phát triển một hàm băm có độ phức tạp cao có khả năng ứng
hoán vị thay thế điều khiển được và ứng dụng trong mã hóa xác thực văn bản”
cho luận văn tốt nghiệp của mình Nội dung đề tài nghiên cứu gồm có: Tìm hiểu thuật toán về hàm băm; mạng chuyển vị thay thế điều khiển đƣợc; xây dựng và cài đặt mô phỏng thuật toán băm; mã hóa xác thực văn bản; đánh giá độ tin cậy của thuật toán và đề xuất khả năng ứng dụng
Trang 11Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
CHƯƠNG 1
TỔNG QUAN VỀ HÀM BĂM 1.1 Giới thiệu về hàm băm
các giá trị băm nhanh hơn việc so sánh những khối dữ liệu có kích thước lớn)
Trong ngành mật mã học, một hàm băm mật mã học (Cryptographic hash function) là một hàm băm với một số tính chất bảo mật nhất định để phù hợp việc
sử dụng trong nhiều ứng dụng bảo mật thông tin đa dạng, chẳng hạn như chứng thực (authentication) và kiểm tra tính nguyên vẹn của thông điệp (message integrity) Một hàm băm nhận đầu vào là một xâu ký tự dài, thông điệp có độ dài tùy ý và tạo ra kết quả là một xâu ký tự có độ dài cố định, đôi khi được gọi là tóm tắt thông điệp (message digest) hoặc chữ ký số (digital fingerprint)
Trang 12Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
Hình 1.1 Hoạt động của một hàm băm Nói rộng ra, một hàm băm mật mã học phải hoạt động càng giống với một hàm ngẫu nhiên càng tốt, trong khi vẫn có tính chất đơn định và xử lý có hiệu quả Một hàm băm mật mã học được coi là không an toàn nếu một trong các việc sau là khả thi về mặt xử lý:
- Cho một tóm tắt (digest), tìm một thông điệp chưa biết khớp với tóm tắt đó
- Tìm các "xung đột băm" (hash collision), trong đó hai thông điệp khác nhau
có tóm tắt trùng nhau
Nếu có thể thực hiện một trong hai việc trên, một người có thể tấn công bằng cách dùng các cách trên để thay một thông điệp không được xác nhận (unauthorized message) vào chỗ của một thông điệp được xác nhận
Về lý tưởng, việc tìm hai thông điệp có tóm tắt rất giống nhau cũng không mấy khả thi; người ta không muốn một kẻ tấn công có thể tìm hiểu được điều gì đó hữu ích về một thông điệp nếu biết tóm tắt
1.1.2 Lịch sử phát triển của hàm băm
Các hàm băm mật mã học trên thực tế đã được chứng minh là công cụ đáng tin cậy của mật mã học hiện đại Tầm quan trọng của chúng được công nhận lần đầu tiên khi PKC (Public Key Cryptographic- Mật mã học với khóa phổ biến) được phát minh bởi Diffie và Hellman vào năm 1976 và từ đây nó trở thành một phần không thể thiếu của PKC [3] Các tiến bộ gần đây trong lĩnh vực phá mã đã tìm ra nhiều khuyết điểm trong hầu hết các hàm băm phổ biến, điều này đã gây chú ý cho các nhà nghiên cứu quan tâm đến lĩnh vực này Các nhà nghiên cứu đã phát triển hai hướng nghiên cứu chính: hoặc là chỉnh sửa lại các cấu trúc hiện có này bằng việc điều chỉnh chúng một chút để xóa bỏ các nhóm nhược điểm cụ thể, hoặc là thiết kế các hàm băm mới hoàn toàn từ vạch xuất phát Theo hướng thứ nhất, nếu khám phá
ra được các nhược điểm đang tồn tại thì các quy định để thiết kế hàm băm còn chưa được hoàn mỹ và nếu chúng không được chỉnh sửa lại một cách tổng thể thì những
Trang 13Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
nhược điểm này sẽ vẫn còn tồn tại, mặc dù có vẻ như chúng đã được chỉnh sửa lại bằng một số biện pháp nhỏ Tương tự, theo hướng thứ hai, nếu một hàm băm được thiết kế lại từ đầu thì vẫn có thể còn tồn tại nhiều nhược điểm, nhưng nó cũng bị ảnh hưởng ngầm từ các nhược điểm (có thể là các nhược điểm lớn hơn nhiều) mà không được nhận ra từ thời kỳ đầu của phát triển Mặt khác, các cấu trúc hiện thời lại có ưu điểm là đã được nghiên cứu và phân tích sâu rộng qua nhiều năm, do vậy nếu các hàm băm mới không được thiết kế cẩn thận, chúng có thể sẽ bị tấn công nhiều hơn là chống lại
Các hàm băm thường là những hàm nhiều ứng dụng do chúng ánh xạ các đầu vào có độ dài bất kỳ thành các đầu ra có độ vào cố định và đầu vào thường lớn hơn đầu ra (hàm băm là các hàm nén) Do đó, các vụ đụng độ (các thông điệp khác nhau băm thành cùng một giá trị) ở hàm băm thường là không tránh được do quy luật ngăn hộc Yuval là nhà nghiên cứu đầu tiên thảo luận về vấn đề làm thế nào để tìm
ra những vụ đụng độ trong hàm băm bằng sự sử dụng Birthday Paradox, việc này dẫn đến một hiện tượng khá phổ biến hiện nay đó là sự tấn công ngày sinh nhật [6]
truy vấn đến một hàm băm cho ra các giá trị với độ dài n-bit Dù khả năng chống lại sự đụng độ chắc chắn là một thuộc tính rất quan trọng mà hàm băm nên có nhưng đó không phải là thuộc tính duy nhất, thậm chí trong một số ứng dụng thì thuộc tính này là không bắt buộc Ví dụ như khả năng chống nghịch ảnh (tính bất khả nghịch) là một thuộc tính khó có được và mang tính thực tiễn hơn Trên thực
tế, ở hầu hết các ứng dụng để có thể nghịch đảo một giá trị băm thì sẽ tổn thất hơn nhiều là tìm ra một vụ đụng độ giữa hai thông điệp bất kỳ Do đó, chính ứng dụng
mà sử dụng hàm băm sẽ quyết định các thuộc tính an toàn mà hàm băm cần bảo tồn Tuy nhiên điều này đã thay đổi từ năm 2005 khi giáo sư Xiaoyun Wang đã
tiếp theo của giáo sư Wang, tấn công này được đánh giá là tìm được một va chạm
Trang 14Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
băm (hai thông báo có cùng giá trị băm) với khối lượng công việc ước tính khoảng
263 phép toán, thay cho một cách lý tưởng là 280 phép toán như người ta mong đợi cho SHA-1 hoặc một hàm băm tốt bất kỳ có độ dài đầu ra bằng 160 bit Đây là một khối lượng tính toán lớn, nhưng 263 phép toán rõ ràng là nằm trong khả năng của một kẻ tấn công có nhiều tài nguyên NIST (Viện Tiêu chuẩn và Công nghệ quốc gia Hoa Kỳ) công nhận rằng giáo sư Wang đã thực sự tìm được một tấn công va chạm thực hành lên SHA-1, người ta còn chứng tỏ rằng SHA-1 (tại thời điểm đó) vẫn chưa đủ mạnh và chưa thể chống lại được các vụ đụng độ như vẫn được mong đợi Do điều này mà vào tháng 11/2007 NIST đã công bố 1 cuộc thi mở rộng để lựa chọn 1 tiêu chuẩn hàm băm mới gọi là SHA-3 NIST nhận được 64 đơn đăng ký, 51 đơn trong số đó được lựa chọn vào vòng 1 của cuộc thi vào tháng 12 năm 2008 Tháng 7 năm 2009, chỉ có 14 đơn dự thi lọt qua vòng 1 được vào tiếp vòng 2 Tháng 12/2010, 5 ứng cử viên cuối cùng được chọn ra (đó là BLAKE, Grostl, JH, Keccak and Skein), và sẽ công bố giải nhất vào quý 2 năm 2012 Vòng chung kết
chọn làm SHA- 3 nhưng dư luận chung công nhận rằng cả hai đều là thuật toán vạn năng, chúng không chỉ thực hiện phép băm mà còn có thể thực hiện hàng loạt các chức năng mật mã khác, điều này cho phép trên thực tế có thể đơn giản hóa nhiều giao thức mật mã, cả những giao thức đang tồn tại và cả những giao thức đang được thiết kế Do đó, dù thuật toán nào được lựa chọn thì điều đó đều đánh dấu một bước tiến quan trọng trong nghiên cứu hàm băm
1.1.3 Thuộc tính an toàn của hàm băm
Các thuộc tính an toàn cơ bản (truyền thống) mà một hàm băm nên có đó là [8]: chống được sự đụng độ, ngăn được sự nghịch ảnh và nghịch ảnh thứ 2 Hình 1.2 minh họa các thuộc tính này theo sơ đồ Mặc dù đây là những thuộc tính an toàn phổ biến mà một hàm băm nên có thì ở một số ứng dụng cụ thể vẫn có thể có một
Trang 15Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
số thuộc tính phụ khác mà hàm băm cần phải có nếu chúng đƣợc sử dụng trong một ứng dụng cụ thể
Nhìn chung, khi ta nói rằng một cuộc tấn công phá vỡ đƣợc một hàm băm cụ thể thì không nhất thiết nó có nghĩa rằng hàm băm đó hoàn toàn bị phá hủy trong thực tiễn nếu một cuộc tấn công có thể chứng minh đƣợc rằng một hàm băm có thể
bị phá hỏng bởi cuộc tấn công ngày sinh nhật hay tấn công bạo lực (ví dụ nhƣ: tìm
ra một vụ đụng độ, hay nghịch ảnh, hay nghịch ảnh thứ 2) với khối lƣợng công việc
ít hơn truy vấn; hàm băm đƣợc coi là bị phá vỡ, mặc dù lƣợc công việc truy vấn để phá vỡ nó vẫn chƣa làm đƣợc trong thực tiễn (đây đƣợc gọi là sự tấn công trên lý thuyết) Thực vậy, tìm ra các điểm chƣa hoàn chỉnh nhƣ vậy ở một hàm băm là một bằng chứng cho các yếu điểm về cấu trúc mà có thể bị phá hủy ở phạm vi lớn hơn
để biến sự tấn công trên lý thuyết này trở thành thực tế; mẫu đầu tiên là MD5, thuật toán này đầu tiên bị phá vỡ trên lý thuyết, sau đó các cuộc tấn công dần dần đƣợc cải biến và ngày nay các vụ đụng độ thật có thể đƣợc tìm thấy ở MD5
Hình 1.2 Sơ đồ biểu diễn các thuộc tính khả năng chống đụng độ, ngăn sự nghịch
ảnh và nghịch ảnh thứ 2
a, Khả năng chống đụng độ
Một vụ đụng độ hàm băm xảy ra khi hai thông điệp khác nhau bất kỳ băm thành cùng một giá trị Tức là với một hàm băm chống đụng độ H, thì nó không thể
Điều này cũng có thể áp dụng cho họ hàm băm (tức là các hàm băm có khóa, ở đây các thành viên của họ hàm băm đƣợc thống kê bởi các khóa khác nhau)
Trang 16Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
Chính thức thì ưu điểm của một kẻ thù A của việc tìm ra đụng độ trong một hàm băm H được xác định như sau [8]:
b, Khả năng chống lại sự nghịch ảnh
Với mọi mục đích thực tiễn, các hàm băm cần phải là bất khả nghịch Khi một thông điệp được băm, nó phải không có khả năng khôi phục được thông điệp gốc từ các giá trị băm lấy được Tức là, với một hàm băm chống được sự nghịch ảnh H, giá trị băm H(M) cho trước của một thông điệp cụ thể M thì nó phải không
c, Khả năng chống lại sự nghịch ảnh thứ 2
Cho 1 hàm băm H có khả năng chống sự nghịch ảnh và 1 thông điệp M, thì 1
Với H được coi là có khả năng ngăn chặn sự nghịch ảnh thứ 2, kiểu tấn công
có hiệu quả nhất vào H là kiểu tấn công bạo lực (tức là với độ phức tạp công việc đối với 1 hàm băm có kích thước đầu ra n) Sự tấn công nghịch ảnh thứ 2 cũng còn được gọi là khả năng chống đụng độ yếu
1.1.4 Các quan niệm an toàn
Những thuộc tính an toàn ngoài những thuộc tính cơ bản truyền thống bên trên, người ta cho rằng các hàm băm cũng cần phải bảo tồn một số thuộc tính khác
và hầu hết các thuộc tính này phụ thuộc vào ứng dụng cụ thể Ở phần này, sẽ nói về các quan niệm an toàn mà đang nhanh chóng trở thành truy vấn phổ biến cho hầu hết các ứng dụng
Trang 17Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
kết quả băm cho Bob (trong khi vẫn giữ bí mật đáp án và khóa) Bằng cách này, khi Bob tự giải xong, Alice có thể chứng minh rằng cô đã có đáp án từ trước bằng cách đưa khóa cho Bob
Trong thực tiễn, Alice và Bob thường là các chương trình máy tính và bí mật thường là cái gì đó không dễ lừa bằng một lời giải cho câu đố Ứng dụng trên được gọi là một hệ thống tin cậy (commitment scheme) Một ứng dụng quan trọng khác của các hàm băm bảo mật là sự kiểm tra tính toàn vẹn của thông điệp Ví dụ, việc xác định xem một file hay một thông điệp có bị sửa đổi hay không có thể thực hiện bằng cách so sánh tóm tắt được tính trước và sau khi gửi (hoặc một sự kiện bất kỳ nào đó) Có thể dùng tóm tắt thông điệp làm một 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 là kiểm tra mật khẩu Mật khẩu thường không được lưu dưới dạng văn bản rõ (clear text), mà ở dạng tóm tắt Để xác thực một người dùng, mật khẩu do người đó nhập vào được băm và so sánh với kết quả băm được lưu trữ
Do các lý do cả về bảo mật và hiệu năng chương trình, đa số các thuật toán chữ ký số nói rằng chỉ có tóm lược của thông điệp, chứ không phải toàn văn thông điệp, được "ký" Các hàm băm còn có thể được dùng để tạo các bit giả ngẫu nhiên (pseudorandom)
Trang 18Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
SHA-1, MD5, và RIPEMD-160 nằm trong số các thuật toán tóm tắt thông điệp được dùng rộng rãi nhất của năm 2005 [4] Tháng 8 năm 2004, các nhà nghiên cứu đã tìm được các điểm yếu của một loạt hàm băm, trong đó có MD5, SHA-0 và RIPEMD Tháng 2 năm 2005, người ta ghi nhận một tấn công đối với SHA-1 Tháng 8 năm 2005, người ta lại ghi nhận thêm một tấn công khác đối với SHA-1 Các hàm băm được dùng để nhận dạng các file trong các mạng chia sẻ tệp đồng đẳng Ví dụ [5], trong một ed2k link, một biến thể của MD4 được kết hợp với kích thước file để cung cấp thông tin cho việc xác định nguồn file, tải xuống và kiểm tra nội dung
1.3 Xu hướng thiết kế
1.3.1 Hàm băm không khóa và có khóa
Nhìn chung, các hàm băm được phân loại thành có khóa hoặc không có khóa Các hàm băm không có khóa chấp nhận một thông điệp M có chiều dài biến
băm có khóa chấp nhận cả thông điệp có chiều dài biến động M và khóa có chiều
Hàm băm có khóa còn được tiếp tục phân loại dựa trên việc khóa là khóa bí mật hay khóa công khai Các hàm băm có khóa bí mật thường được sử dụng để xây dựng thông điệp các mã xác thực thông điệp (MAC - Message Authentication Code) ,
Code) rõ hơn về MAC Tuy nhiên, nếu các hàm băm có khóa công khai, thì chúng được biết đến như các hàm băm có khóa chuyên dụng Các hàm băm được thiết kế cho trường hợp khóa chuyên dụng là họ các hàm băm mà ở đây các hàm thành viên được đánh số bởi các khóa khác nhau Trong trường hợp này, nếu một thành viên của họ hàm băm bị phá thì sẽ có một số ảnh hưởng nhỏ tới các thành viên khác trong cùng một họ (điều này không đúng trong trường hợp hàm băm không khóa mà một cuộc tấn công đơn độc vào một hàm và phá hủy hoàn toàn hàm đó) Tuy nhiên
Trang 19Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
một yếu điểm rất rõ ràng của hàm băm trong trường hợp khóa chuyên dụng đó là hiệu quả bị thấp đi vì trong trường hợp này hàm băm ngoài có đầu vào (thông điệp) phải có thêm đầu vào (khóa)
Xem bảng 1.1 để rõ hơn về các định nghĩa ngắn gọn (không chính thức) của thuật ngữ về hàm băm được sử dụng trong toàn bài
Bảng 1.1 Một số thuật ngữ về hàm băm
Thuật ngữ Định nghĩa không chính thức
băm với miền lớn hơn phạm vi
Cấu trúc, chuyển đổi, chế độ hoạt động,
chế độ chuỗi, chuyển đổi mở rộng
miền, sơ đồ tổ hợp
Một thuật toán mà gọi một khối cấu trúc (thường là một hàm nén) theo tính hệ thống để băm một thông điệp
Biến số chuỗi, giá trị chuỗi, sự băm
trung gian, biến số tính trạng bên trong
Đầu ra của một hàm nén được sử dụng như đầu vào cuộc gọi với hàm nén theo sau
Giá trị băm, giá trị băm cuối cùng, mật
mã băm, kết quả băm, băm, phân loại
Kết quả cuối cùng của việc băm một thông điệp, gọi là một chuỗi có chiều dài
cố định
Tóm lại, một hàm băm (có khóa hay không khóa) được xây dựng bằng hai bộ
phận là: Một hàm nén f và cấu trúc H Hàm nén là một hàm ánh xạ một đầu vào có
kích thước lớn hơn (nhưng cố định) đến một đầu ra có kích thước nhỏ hơn
để xử lý một thông điệp
1.3.2 Hàm băm lặp
Khi các hàm băm xuất hiện lần đầu tiên, người ta nhận ra rằng cách thuận tiện nhất để băm một thông điệp đó là trước tiên phải chia nó thành một vài khối và sau đó xử lý các khối này lặp đi lặp lại theo hệ thống Ngày nay, phương pháp này vẫn là phương pháp được sử dụng rộng rãi nhất, mặc dù với sự có mặt của một số
bộ xử lý song song (mà ít nhất theo quy tắc thì phải tạo điều kiện thuận lợi cho các hàm băm song song)
a, Cấu trúc Merkle-Damgard
Trang 20Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
Hầu hết các hàm băm hiện nay như MD5 và SHA-1 đều dựa trên cấu trúc không nổi tiếng đó là cấu trúc Merkle-Damgard (còn gọi là cấu trúc tầng) được đề xuất độc lập bởi Merkle và Damgard vào năm 1989 (dù vậy, cấu trúc của Damgard
là có khóa còn của Merkle thì không) [6] Tuy nhiên trước đây một cấu trúc tương
tự đã được Rabin đưa ra vào năm 1978, điều này nảy sinh vấn đề rằng liệu rằng nó
có phải được gọi là cấu trúc của Rabin hay không Tuy vậy, trong khi trên thực tế là
do Rabin đưa ra cấu trúc này nhưng chính Merkle và Damgard mới là người chính thức chứng minh rằng cấu trúc này có thể ngăn chặn sự đụng độ Trong cấu trúc của Merkle và Damgard, thông điệp M trước tiên được chia đều thành các khối có kích
khối này được đệm lót thêm cho Để có thể ngăn chặn sự đụng độ, độ dài của thông điệp được gắn vào thông điệp (sau khi đã đệm) và nó được đặt tên là sự củng cố Merkle-Damgard (được đặt lần đầu tiên bởi Lai và Massey ở mặc dù đã được đề xuất bởi Merkle và Damgard); Hình 1.3 minh họa thuật toán bước đệm, ở đây L là 1
mã hóa 64 bit của độ dài thông điệp và m là độ dài của 1 khối đơn Tiếp đó thông điệp này được lặp lại bằng việc gọi một hàm nén có chiều dài đầu vào cố định (FIL)
chấp nhận hai đầu vào đó là: một khối thông điệp
(của độ dài m) và hoặc là một véc tơ khởi tạo IV (khi băm khối thứ nhất) hoặc là một biến chuỗi (mà sẽ do đầu vào của hàm f trước đó gọi), cả hai đầu vào đều thuộc
độ dài n; hình 1.4 miêu tả mã làm giả của cấu trúc Merkle-Damgard
* Algorithm Pad s (M)
d = M + 1 +64 mod m
→ M1 ML
Trang 21Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
Hình 1.3 Thuật toán bước đệm Merkle-Damgard
Hình 1.4 Cấu trúc Merkle-Damgard
b, Các kiểu tấn công vào Merkle-Damgard
Cuối cùng đã tìm ra được một số yếu điểm của cấu trúc Merkle-Damgard làm phát sinh một lớp các kiểu tấn công chung vào Merkle-Damgard mà có thể ứng
ý sự khác nhau giữa các kiểu tấn công “chung” và “chuyên dụng” ở đây là: các kiểu tấn công chuyên dụng phá hủy cấu trúc bên trong của hàm do vậy sẽ chỉ ảnh hưởng đến hàm băm đó Dưới đây chúng ta sẽ tìm hiểu về bốn kiểu tấn công chung nhất vào cấu trúc Merkle-Damgard; mặc dù sự liên hệ với thực tiễn của các kiểu này chưa rõ ràng nhưng đã minh họa được bản chất thực của các yếu điểm thuộc cấu trúc của các kiểu (sau đó có thể chỉ ra cách các biến thể của cấu trúc Merkle-Damgard thành công trong việc ngăn chặn một số cuộc tấn công khác)
Tấn công mở rộng
Kiểu tấn công này do Ferguson và Schneier báo cáo lần đầu vào năm 2003, trong đó nó được miêu tả là điểm yếu nghiêm trọng (và đơn giản) trong cấu trúc Merkle-Damgard [5] Tuy nhiên, dường như kiểu tấn công này đã được khám phá
từ trước năm 2003 bởi Solo và Kent, họ gọi chúng là kiểu tấn công bước đệm Bốn biến thể của kiểu tấn công này như sau:
Trang 22Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
m là chiều dài của một khối đơn trong M, thường là |H(M)|; lưu ý rằng |pad| thực tế
có thể là 0 nếu thông điệp được đặt thẳng hàng tại ranh giới của các khối Tuy nhiên, kiểu tấn công này không tính toán đến việc củng cố cấu trúc Merkle-Damgard (gắn thêm chiều dài thông điệp vào thông điệp trước khi băm nó)
* Tấn công đụng độ thứ 2
Trong kiểu tấn công này, có thể dễ dàng tìm được một vụ đụng độ bằng cách
mở rộng đồng đều kích thước của các thông điệp đụng độ với nhau Tức là, nếu ta
hai bằng cách mở rộng M và N với một chuỗi bất kỳ (tiếp tố) S, H(M
Điều này sẽ được thực hiện với sự củng cố cấu trúc Merkle-Damgard, nhưng nếu không có sự củng cố cấu trúc Merkle-Damgard thì một vụ đụng độ thứ hai thậm chí còn dễ hơn nhiều vì kích thước các thông điệp đụng độ nhau không bị chia đều ra nữa
kỳ một kiểu tấn công nào khác để phá các yếu điểm ở hàm băm tương ứng) Hình 1.5 minh họa cuộc tấn công này
Hình 1.5 Tấn công đa đụng độ
Trang 23Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
này tiếp tục cho đến khi tới như ở hình 1.5 Ta dễ dàng thấy rằng sự kết hợp của các thông điệp đứng trước sẽ đụng độ ở Thực tế, trong mẫu ví dụ ở hình 1.5,
có thông điệp đụng độ ở và chi phí tạo ra các vụ đụng độ này chỉ bằng l lần chi
phí tạo ra các vụ đụng độ đơn lập
* Tấn công liên quan thông điệp
Với cấu trúc Merkle-Damgard ta có thể dễ dàng tính được một thông điệp M’ có liên quan hoặc được mở rộng cho một thông điệp chưa biết M chỉ cần biết L (độ dài của M) và biết H(M), tức là, H(M||L||x) là sự băm của thông điệp bao gồm thông điệp gốc M và được mở rộng ra bởi một tiếp tố; do kẻ tấn công đã biết L nên không cần thiết phải tìm ra cách M được đệm như thế nào trước khi nó được băm
Tấn công nghịch ảnh thứ 2
Kiểu tấn công này được đưa ra lần đầu tiên bởi Dean và sau đó được tổng quát hóa bởi Kelsey và Scheneir [5] Kiểu tấn công này giả định sự tồn tại của một tập các thông điệp có thể mở rộng; đây là các thông điệp có độ dài khác nhau nhưng cho ra cùng một giá trị băm ở giữa là như nhau (biến chuỗi) với một IV cho trước Tuy nhiên các thông điệp có thể mở rộng này không cho ra cùng một giá trị băm cuối cùng do có sự củng cố cấu trúc Merkle-Damgard Có thể dễ dàng tìm được các thông điệp này nếu như hàm băm chứa các điểm cố định Trong khi bản thân các yếu điểm của cấu trúc Merkle-Damgard, các điểm cố định có thể được tìm thấy ở rất nhiều các ứng dụng có Merkle-Damgard (ví dụ SHA-1), do các hàm nén thường được mô hình thành các hàm Davies-Meyer mà các biến chuỗi đầu vào của các hàm nén tiếp tục được XORed bởi đầu ra của nó Ký hiệu một hàm băm Merkle-
Trang 24Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
hợp với (giá trị băm ở giữa thứ j của M), tiếp tục tìm E (nhóm các thông điệp có
là j Gọi thông điệp gốc M không có các khối j đầu tiên là thì
Tấn công này tìm được một sự nghịch ảnh thứ 2 với một
Ví dụ, sử dụng RIPEMD-160 nó sẽ tìm được một sự nghịch ảnh thứ 2 cho một
số kích thước 160bit
Kiểu tấn công theo nhóm
Kiểu tấn công này gần giống với kiểu tấn công đa đụng độ và sự nghịch ảnh thứ 2 đã đề cập ở trên và do Kelsey và Kohno nghiên cứu Một trường hợp điểm hình mà có thể sử dụng kiểu tấn công này đó là khi một kẻ tấn công công khai một giá trị băm D (không phải là ngẫu nhiên) và nói rằng mình biết được các sự kiện xảy ra trong tương lai (điều này là giả) và rằng D là giá trị băm của sự kiện đó Sau
đó, khi các sự kiện tương ứng xảy ra, kẻ tấn công cố gắng nhóm các sự kiện này để băm D như đã đưa ra trước đó Kiểu tấn công diễn ra trong 2 giai đoạn:
- Giai đoạn 1: Xây dựng một cấu trúc hình kim cương và tính toán giá trị D
- Giai đoạn 2: Cho trước tiền tố, tìm ra một tiếp tố thích hợp và nhóm chúng vào
D qua cấu trúc kim cương
Trang 25Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
Hình 1.6 Cấu trúc kim cương
Trong giai đoạn 1, kẻ tấn công xây dựng một cấu trúc kim cương như (hình 1.6) ở đây các đỉnh là các giá trị băm và các đường là các thông điệp Nếu hai thông điệp gặp nhau tại đỉnh chúng sẽ đụng độ tại đỉnh đó Trước tiên, kẻ tấn công ngẫu
tìm ra sự đụng độ, sau đó lặp lại quy trình này cho đến khi đạt tới gốc cuối của cấu trúc kim cương (D) Ở giai đoạn 2, kẻ tấn công nhóm một tiền tố P để băm tới D như sau: đầu tiên, kẻ tấn công tìm ra một tiếp tố một khối thích hợp để nếu nó ghép với P, nó sẽ rạo ra một giá trị băm đụng độ với một trong các giá trị băm của thông
lần thử để tìm được tiếp tố như vậy (ở đây n là độ dài của quá trình băm cuối cùng)
nối, cả chuỗi này cuối cùng sẽ băm đến D Tấn công theo nhóm gần đây mới được
mở rộng cho cấu trúc Merkle-Damgard Phần phân tích chi tiết về độ phức tạp của các kiểu tấn công nhóm dựa trên cấu trúc kim cương, phần này chỉ một khiếm khuyết của cấu trúc khi tạo ra cấu trúc kim cương và phân tích tính toán độ phức tạp
về việc xây dựng cấu trúc kim cương Để ngăn chặn kiểu tấn công này, các hàm băm phải sở hữu thuộc tính CTFP ngăn chặn sự nghịch ảnh
c, Biến thể của Merkle-Damgard
Trang 26Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
Sự phát hiện những điểm yếu của cấu trúc này là cơ sở cho những nghiên cứu đề xuất ra những biến thể của cấu trúc Merkle-Damgard có chỉnh sửa để sửa chữa những điểm yếu đó Trong phần này, ta sẽ trình bày một số ví dụ về cả cấu trúc có khóa và không có khóa (hầu hết chúng đều quan tâm đến độ an toàn) Lưu ý rằng một số cấu trúc sử dụng thuật toán đệm khác so với thuật toán tiêu chuẩn
Mạch kép và rộng
Một trong những đề suất sớm nhất để nâng cấp cấu trúc Merkle-Damgard đó
là mạch kép/rộng của Lucks, ông chỉ ra rằng tăng kích thước của biến số tính trạng bên trong (biến chuỗi) lớn hơn kích thước của giá trị băm cuối cùng sẽ cải thiện được khá nhiều độ an toàn của hàm băm Sự điều chỉnh như vậy rõ ràng ngăn chặn được tấn công mở rộng do trong mạch kép/rộng giá trị băm cuối cùng bị ngắt, nên
để mở rộng, cần phải đoán được các bit bị loại bỏ chưa biết và sẽ rất khó nếu số các bit bị loại bỏ là không ít Hơn nữa, tăng kích thước của biến số tính trạng bên trong
và tìm ra các vụ đụng độ cho hàm nén thì còn khó hơn và các kiểu tấn công chung càng phức tạp Tuy nhiên, một khuyết điểm của mạch kép/rộng đó là hiệu suất kém
do hàm nén có đầu vào/đầu ra lớn hơn trong khi vẫn giữ tỉ suất băm không đổi (kích thước đầu vào hàm nén tương ứng với một khối thông điệp là cố định) do đầu vào biến chuỗi tăng Hơn nữa, sử dụng các hàm băm hiện tại cho mạch kép /rộng cũng không dễ do tăng biến số tính trạng bên trong là cách duy nhất hợp lý để sử dụng nhiều hàm nén cho mỗi lần lặp Mới đây, Yasuda đã chỉnh sửa một chút cấu trúc mạng kép và chứng minh tính không thể làm giả được trên hàng chắn ngày sinh nhật
Cấu trúc 3C
Một biến thể khác của cấu trúc Merkle-Damgard là cấu trúc 3C, cấu trúc này giữ một biến số chứa một giá trị được tạo ra do sự lặp đi lặp lại việc XOR các biến chuỗi khi băm thông điệp; giá trị này sau đó được xử lý trong một lần gọi cuối thêm vào hàm nén Hình 1.7 minh họa cấu trúc 3C Một biến thể được củng cố của 3C đó
Trang 27Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
là 3C+, cấu trúc này sử dụng bộ nhớ phụ nhưng lại làm cho việc tìm ra sự đa khối khó hơn (không nên nhầm lẫn với sự tấn công đa đụng độ) Tuy nhiên, người ta chỉ
ra rằng cả 3C và 3C+ rất nhạy với tấn công đa khối, điều này được thể hiện bởi sự
sử dụng một kiểu tấn công gần đây vào MD5 và có thể được ứng dụng cho Damgard và 3C/3C+ Hơn nữa, 3C không ngăn chặn được tấn công đa đụng độ do các biến số tính trạng bên trong không bị ảnh hưởng bởi sự điều chỉnh như ở 3S Các cấu trúc Prefix Free, Chop, NMAC, và HMAC Một số cấu trúc do Coron đề suất để điều chỉnh cấu trúc Merkle-Damgard sau khi chỉ ra rằng cấu trúc này khác biệt RO Tuy nhiên, Bellare và Ristenpart sau đó cho thấy rằng mặc dù các cấu trúc này không khác biệt với RO, nhưng chúng lại không chống được đụng độ Cấu trúc prefix-free không điều chỉnh cấu trúc Merkle-Damgard, thay vào đó nó điều chỉnh thuật toán đệm để đảm bảo rằng thông điệp là prefix free (không có tiền tố) Một phương pháp để làm việc này đó là thêm vào mỗi khối thông điệp độ dài của toàn thông điệp Tuy nhiên bên cạnh việc lãng phí một vài bit để biểu diễn chiều dài của thông điệp ở mỗi khối và làm giảm đi hiệu suất việc này còn không hiệu quả đối với các ứng dụng mã hóa dòng (mà chiều dài thông điệp không biết trước) Cấu trúc Chop xóa bỏ một số lượng các bit ở giá trị băm cuối cùng, ở
Merkle-NMAC, một hàm độc lập g được áp dụng vào đầu ra của ứng dụng cuối cùng của
hàm nén, trong khi ở HMAC, một hàm nén phụ được đưa ra NMAC và HMAC được biểu diễn ở hình 1.7
Trang 28Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
Hình 1.7 Cấu trúc NMAC (a) và HMAC (b)
Cấu trúc Merkle-Damgard với sự hoán vị
Hirose đề xuất cấu trúc Merkle-Damgard có hoán vị (MDP), cấu trúc này chỉnh sửa một phần rất nhỏ của cấu trúc Merkle-Damgard Điểm khác biệt duy nhất giữa hai cấu trúc này đó là ở MDP đầu vào biến chuỗi của hàm nén cuối cùng được hoán vị Các nhà nghiên cứu chứng minh rằng MDP không khác biệt với RO trong khi khả năng chống đụng độ của nó cũng giống như khả năng chống đụng độ của Merkle-Damgard Các nhà nghiên cứu cũng thảo luận về độ an toàn của MAC dựa trên MDP Tuy nhiên, mặc dù chỉ điều chỉnh đơn giản như vậy, nhưng các nhà nghiên cứu đã thành công trong việc chứng minh được độ an toàn khá lớn, MDP dường như chỉ có thể ngăn chặn tấn công mở rộng chứ không ngăn được các kiểu tấn công chung vào Merkle-Damgard Hơn nữa, gần đây, người ta chứng minh rằng MDP không ngăn chặn được sự nghịch ảnh và sự nghịch ảnh thứ hai Hình 1.8 minh
Trang 29Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
Hình 1.8 Cấu trúc MDP
1.3.3 Hàm băm dựa trên hình cây
Hình 1.9 minh họa cấu trúc hàm băm hình cây Dây i là lớp cấu trúc song song nhất và phù hợp cho hệ thống nhiều lõi, ở đây nhiều bộ xử lý có thể hoạt động độc lập đồng thời trên các phần khác nhau của thông điệp Damgard đưa ra một phương thức hoạt động dựa trên hình cây sau đó cấu trúc này được Sarkar và
một phương pháp dựa trên hình cây để xây dựng UOWHFs (hàm băm 1 chiều phổ dụng) mà dù yếu hơn các hàm băm ngăn chặn sự đụng độ nhưng phù hợp với nhiều ứng dụng Bellare và Micciano đề suất hệ thống « ngẫu nhiên hóa và kết hợp », khi thông điệp được chia thành khối thì ngẫu nhiên hóa riêng biệt và cuối cùng kết hợp bởi một thuật toán XOR (nhưng các cách kết hợp dựa trên XOR sẽ bị đứt do một cuộc tấn công tuyến tính đại số vào các thông điệp dài Mặc dù cấu trúc này đầu tiên chỉ được đề suất để xây dựng các hàm số gia nó còn được coi là cây hai cấp và vẫn
có thể được tương đương hóa do quá trình ngẫu nhiên hóa của các khối riêng biệt là độc lập với nhau (tức là có thể được thực hiện bởi các bộ xử lý khác nhau) các cấu trúc dựa trên hình cây không phổ biến bằng các cấu trúc lặp do chúng không thích hợp với các hệ thống chậm kết thúc như thẻ thông minh, làm giới hạn công dụng của chúng Hàm băm Skein và MD6 (các ứng viên của SHA-3) đưa ra một phương thức băm hình cây bên cạnh phương thức lặp truyền thống
Trang 30Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
Hình 1.9 Cấu trúc cây mẫu
1.3.4 Hàm nén
Một số hàm băm MD5 và SHA-1 được gọi là hàm băm chuyên dụng Các hàm khác được xây dựng dựa trên các phần tử mật mã học hoặc toán học không được thiết kế để sử dụng cho hàm băm cũng có thể được điều chỉnh Cho đến nay, vẫn chưa thảo luận sâu về cách xây dựng hàm nén vì khi thiết kế một hàm băm, có người sẽ áp dụng sự có mặt của hàm nén « tốt » và thiết kế một cấu trúc theo đó Điều này rõ ràng trở thành một vấn đề trong giai đoạn triển khai Do vậy, một số các đề suất không xem xét về việc xây dựng hàm nén bảo tồn thuộc tính X và sau
đó sử dụng một cấu trúc phù hợp có thể bảo tồn được X (ví dụ, cấu trúc Damgard có khả năng ngăn chặn sự đụng độ nếu hàm nén đó cũng bảo tồn khả năng chống đụng độ
Trang 31Merkle-Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
CHƯƠNG 2 KIẾN TRÚC MẠNG CHUYỂN VỊ
THAY THẾ ĐIỀU KHIỂN ĐƯỢC
2.1 Các phần tử mã hóa cơ bản điều khiển được dựa trên mạng chuyển
vị thay thế
2.1.1 Phần tử điều khiển cơ bản
Khối cấu trúc chính trong các phần tử hoán vị phân tầng điều khiển được là
bởi 2 hàm logic phi tuyến với 3 biến, cụ thể là:
Với v là bit điều khiển Chọn 2 hàm logic được cân bằng bới 3 biến, hàm và
thuộc 2 loại khác nhau ta có được các biến thể khác nhau của các phần tử điều
Trang 32Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
biến vào; c Sơ đồ dạng 2 phép thế; d,e Biểu diễn CE thuộc loại P2/1; f Đặc trưng
vi phân của F2/1
cứng Các phần tử điều khiển được (CE) có thể được mô tả như 2 phép thế
giữa kiểu biểu diễn vừa đề cập của các CE được cho bởi đẳng thức biểu diễn ở hình 2.1d Đầu ra của hộp có thể được mô tả bằng một cặp hàm logic 2 biến:
Các đầu ra của hộp lần lượt được mô tả như sau:
hình 2.1d mô tả sự lựa chọn các biến thể hiện thời trong một số dạng rõ ràng Các đẳng thức đó có thể được viết lại như sau:
thực hiện các biến đổi thuộc các loại khác nhau, tức là các biến thể đó trong trường hợp tổng quát không bảo tồn trọng số của các vec tơ nhị phân đã biến đổi
của một vài loại khác nhau, ví dụ, mỗi lớp hoạt động có thể là độc nhất Thường thì
Trang 33Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
nhau của mạng hoán vị thay thế điều khiển được mà được xây dựng bằng các phần
tử điều khiển được (CE) có kích thước cực nhỏ
khả nghịch nếu phần tử là khả nghịch Biến đổi nghịch đảo có thể được xây
định cấu trúc đơn giản của các phép nghịch đảo tương hỗ, ta có thể sử dụng các đơn
phần tử điều khiển được giản đơn liên quan Ở phần sau đây, ta có thể chỉ ra rằng có
40 đối hợp giản đơn điều khiển được và 24 trong số đó là các phần tử mã hóa giản
2.1.2 Phân loại các phần tử cơ bản
Để phân loại các phần tử và lựa chọn những phần tử phù hợp hơn với các ứng dụng mật mã, ta cần có một số tiêu chí để lựa chọn Sử dụng ký hiệu cho tính phi tuyến là NL, trong một số trường hợp có khoảng cách xa với nhóm affin
i: Hàm f1, f2 của F2/1 là hàm logic 3 biến cân bằng và có tính phi tuyến (NL - Non line)
Trang 34Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
cân bằng và có tính phi tuyến
iv Mỗi phần tử luôn tồn tại phần tử nghịch đảo
nhau, ta có thể có được các biến thể khác nhau của các phần tử điều khiển được
với bảng giá trị thực có số lượng các bit = 0 và khác 0 là ngang nhau thì đó là hàm logic cân bằng) Mối quan tâm về hàm logic cân bằng cũng gắn với việc đơn giản
có thể được sử dụng trong thiết kế của các toán tử khả nghịch giống như hoán vị phụ thuộc dữ liệu Ta biết rằng một phép biến đổi là song ánh (tức là khả nghịch) nếu mỗi một bit đầu vào của nó được biểu diễn bằng một hàm logic cân bằng và toàn bộ các tổ hợp tuyến tính của các bit đầu ra cũng là các hàm logic cân bằng Do vậy, ta chỉ cần xét đến số các cặp hàm logic cân bằng Số lượng các hàm này là
Theo [8] Chỉ có 24 khả năng của S với kích thước 2x2 (xem hình 2.2) Do
nhau Thế nên, phương pháp cuối cùng (phương pháp mà được gọi là thiết kế trực
bằng có thể có
Để biểu diễn các phần tử điều khiển được, ta có thể mô tả chúng thành các cặp
24 trường hợp khác nhau của hộp S hiện thời có thể được biểu diễn
biểu diễn thành cặp phần tử (a, e)
Như vậy theo [8], có 288 các phần tử điều khiển được thỏa mãn tiêu chí i và
ii Có 192 phần tử thỏa mãn cả 3 tiêu chí i, ii, iii và 96 phần tử chỉ thỏa mãn tiêu chí
Trang 35Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
iii Các tiêu chí i, ii, iv có 40 phần tử thỏa mãn, 24 trong số đó cũng thỏa mãn tiêu chí iii 40 phần tử thỏa mãn tiêu chí i, ii, iii là các toán tử cơ bản điều khiển đƣợc(xem bảng 2.2)
Các phần tử F2/1 đƣợc chia vào 4 lớp con {Q2/1}, {R2/1}, {Z2/1}, {P2/1} Lớp con đƣợc quan tâm nhất của CE là {R2/1} và {S2/1} Với các phần tử thuộc 2 lớp này, chúng có tính chất là S-12/1= S2/1 và R-12/1= R2/1 Các lớp Z2/1 và P2/1 không có tính chất nhƣ vậy, nhƣng P-12/1= Z2/1 và Z-12/1= P2/1
Hình 2.2 Mô tả trực quan toàn bộ các khả năng có thể có của hộp S 2x2
của chúng và các đặc trƣng vi phân của các phần tử cơ bản điều khiển đƣợc đƣợc sử
Trang 36Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
phân có thể đƣợc phân chia thành 6 nhóm nhỏ (xem bảng 2.1) Ta có thể nhận thấy
thấy rằng các phần tử điều khiển đƣợc phi tuyến thì không dễ “đoán” đƣợc nhƣ các phần tử tuyến tính Nếu một phần tử điều khiển đƣợc thuộc tập các phần tử
Trang 37Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
Bảng 2.2 Toàn bộ các phần tử điều khiển đƣợc thỏa mãn tiêu chí lựa chọn
Trang 38Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
giác trái tính theo đường chéo từ trên xuống dưới từ trái sang phải của bảng 2.2 Các đối hợp này minh họa sự phân loại các phần tử điều khiển được phù hợp với tiêu chí
điều khiển được trong số đó ta có hai biến thể thực hiện phần tử chuyển mạch
và , ký hiệu lần lượt là (a,e) và (e,a) Các đối hợp phi tuyến tính điều khiển
2.1.3 Nhóm phụ của các phần tử U 2/1 với một đầu ra tuyến tính
Trang 39Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
không thỏa mãn tiêu chí lựa chọn 1: yêu cầu cả hai đầu ra của phần tử điều khiển được phải có khả năng có tính phi tuyến cực đại
Các phần tử điều khiển được được mô tả bằng hàm logic cân bằng ba biến, do
đó, chỉ một giá trị phi tuyến NL(f) là có khả năng, tức là NL(f) = 2 Phần tử điều
tuyến tính Trong một trường hợp khác, các phần tử điều khiển được
phải xác định được hai output tuyến tính Tuy nhiên, ta đã chọn được trong nhóm phụ thỏa mãn tiêu chí i) Một khảo sát chi tiết hơn về các phần tử
cho thấy chúng là những phần tử cụ thể nhằm vào ứng dụng tổng hợp các toán tử điều khiển được
vào điều khiển tất định ảnh hưởng lên vi sai đầu ra Không một phần tử
nào lại có thuộc tính như vậy (các phần tử
có mang thuộc tính như vậy nhưng chúng lại ít lý thú hơn do chúng có đặc trưng vi phân thuần túy) Vì vậy, với một xác suất nào đó, mạng hoán vị thay thế điều khiển
sai khác 0 được thêm vào đầu vào điều khiển
Bảng 2.3 Tập các đối hợp phi tuyến tính cơ bản điều khiển được
CE Type f1 (x1,x2,v) Truth
table
f 2 (x 1 ,x 2 ,v) Truth
table Algebraic normal form Algebraic normal form
(g,e) R x 1 v x 2 v x 1 00011011 x 2 v x 1 v x 2 00101101
Trang 40Số hóa bởi Trung tâm Học liệu http://lrc.tnu.edu.vn/
(e,g) R x 1 v x 2 v x 2 00100111 x 2 v x 1 00011110 (e,h) R x 1 v x 2 00110110 x 1 v x 2 v x 1 00011011
(h,e) R x 1 v x 1 x 2 00111001 x 1 v x 2 v x 2 00100111 (g,i) Q x 2 v x 1 v 01001011 x 1 v x 1 x 2 00111001 (g,f) R x 1 v x 2 v x 1 v 01001110 x 2 v x 2 x 1 v 01111000 (i,g) Q x 2 v x 2 x 1 v 1 10000111 x 1 v x 2 00110110 (f,g) R x 1 v x 2 v x 2 v 1 10001101 x 2 v x 1 v 1 10110100 (i,f) R x 1 v x 2 x 1 1 11000110 x 1 v x 2 v x 2 v 01110010 (f,i) R x 1 v x 2 1 11001001 x 1 v x 2 v x 1 v 1 10110001 (h,j) Q x 2 v x 1 x 2 00101101 x 1 v x 2 v 01100011 (j,h) Q x 2 v x 1 00011110 x 1 v x 2 x 1 v 1 10010011 (j,f) R x 1 v x 2 v x 1 v 01001110 x 2 v x 2 x 1 1 11010010 (f,h) R x 1 v x 2 v 1 10011100 x 1 v x 2 v x 1 v 1 10110001 (f,j) R x 1 v x 2 v x 2 v 1 10001101 x 2 v x 1 1 11100001 (e,j) R x 1 v x 2 v x 2 00100111 x 2 v x 1 v 01001011 (j,e) R x 1 v x 2 v x 1 00011011 x 2 v x 2 x 1 v 1 10000111 (j,i) Q x 2 v x 1 v 01001011 x 1 v x 2 x 1 v 1 10010011 (i,e) R x 1 v x 2 x 1 v 1 10010011 x 1 v x 2 v x 2 00100111 (i,j) Q x 2 v x 2 x 1 v 1 10000111 x 1 v x 2 v 01100011 (h,f) R x 1 v x 1 x 2 v 01101100 x 1 v x 2 v x 2 v 01110010 (e,i) R x 1 v x 2 v 01100011 x 1 v x 2 v x 1 00011011
Xét đến thám mã vi phân của thuật toán mã hóa Cobra-H64 và DDP-64, ta thấy đƣợc thực tế này có thể đƣợc sử dụng nhƣ thế nào để tìm các đặc trƣng vi phân khi sử dụng mạng hoán vị thay thế điều khiển đƣợc với xác suất cao Do vậy, một