Hiện nay trên thế giới có khá nhiều hệ mật mã khối khóa bí mật đã được nghiên cứu sử dụng cho các lược đồ xây dựng hàm băm như trên, điển hình là các hệ mật sau: DES, IDEA, RD.5, TDEA, A
Trang 1MỞ ĐẦU
Tính cấp thiết của đề tài
Với sự phát triển của khoa học kỹ thuật và công nghệ, cùng với các nhu cầu đặc biệt có liên quan tới an toàn thông tin, ngày nay các kỹ thuật chính trong an toàn thông tin bao gồm: Kỹ thuật mật mã (Cryptography); kỹ thuật ngụy trang (Steganography); kỹ thuật tạo bóng mờ (Watermarking – hay thủy vân)
Hiện nay việc trao đổi thông tin thương mại trên Internet có nhiều nguy cơ không an toàn do thông tin có thể bị lộ hay bị sửa đổi Nói chung, để bảo vệ các thông tin khỏi sự truy cập trái phép cần
phải kiểm soát được những vấn đề như: thông tin được tạo ra, lưu trữ
và truy nhập như thế nào, ở đâu, bởi ai và vào thời điểm nào
Để giải quyết các vấn đề trên, kỹ thuật mật mã hiện đại phải đảm bảo các dịch vụ an toàn cơ bản: (1) bí mật (Confidential); (2) xác thực (Authentication); (3) đảm bảo tính toàn vẹn (Integrity)
Tình hình nghiên cứu
Cho đến nay các nghiên cứu về hàm băm được chia thành hai loại: hàm băm không khóa và hàm băm có khóa, và thông thường các
hàm băm này dựa trên mật mã khối với hai phương pháp chính là Mã
phát hiện sửa đổi (MDC-Manipullation Detection Code) và Mã xác thực thông báo (MAC-Message Authentication Code)
Các hàm băm dựa trên mật mã khối đã được nghiên cứu khá mạnh trên thế giới, các nhóm nghiên cứu tập trung chủ yếu vào hướng xây dựng các hệ mật mã khối và đưa chúng vào lược đồ xây dựng hàm băm Các lược đồ được sử dụng để xây dựng hàm băm phổ biến bao gồm: (1) Matyas – Mayer – Oseas (M-M-O); (2) Davies – Mayer (D-M); (3) Miyaguchi – Preneel (M-P); (4) MDC-2; (5)
Trang 2Hiện nay trên thế giới có khá nhiều hệ mật mã khối khóa bí mật
đã được nghiên cứu sử dụng cho các lược đồ xây dựng hàm băm như trên, điển hình là các hệ mật sau: DES, IDEA, RD.5, TDEA, AES, CAST,… Những nghiên cứu về các hệ mật này và phương pháp sử dụng chúng cho lược đồ hàm băm đã xuất hiện trong rất nhiều công trình từ rất nhiều năm qua, tuy nhiên chúng đã được tổng kết trong các công trình sau:
− Knudsen, L.; Preneel, B; Construction of secure and fast
hash functions using nonbinary error-correcting codes, IEEE
Transactions on Information Theory, Volume 48, Issue 9, Sept 2002 Page(s): 2524 - 2539
Ở Việt Nam việc nghiên cứu các hệ mật cũng đã rất phát triển từ nhiều năm qua, tuy nhiên việc sử dụng các hệ mật này cho các lược
đồ xây dựng hàm băm còn khá mới mẻ Cũng có một số công trình
nghiên cứu điển hình về vấn đề này trong thời gian qua là: "Nghiên
cứu xây dựng hạ tầng khóa công khai phục vụ thư tín điện tử và thương mại điện tử, Báo các kết quả nghiên cứu đề tài Bộ Bưu chính
- Viễn thông, 6/2004, của GS.TS Nguyễn Bình.
Mục tiêu nghiên cứu của luận án
− Khảo sát đánh giá hệ mật khối sử dụng cho lược đồ hàm băm
− Xây dựng hệ mật trên các cấp số nhân cyclic trên vành đa thức
− Xây dựng các hàm băm mới sử dụng hệ mật dựa trên các cấp
số nhân cyclic trên vành đa thức
Trang 3− Viết các chương trình phần mềm mô phỏng, thử nghiệm và đánh giá kết quả đã nghiên cứu.
Phạm vi nghiên cứu của luận án
Luận án thuộc phạm vi lý thuyết cơ sở, tập trung nghiên cứu các thuật toán mã hóa và sử dụng chúng trong lược đồ xây dựng các hàm băm Các thuật toán mã hóa và sơ đồ tạo khóa trong các sơ đồ
mã hóa được xây dựng trên cấu trúc cấp số nhân cyclic, đây là một cấu trúc đại số được xây dựng trên cơ sở là nhóm nhân cyclic trên vành đa thức
Phương pháp nghiên cứu
Phương pháp nghiên cứu của đề tài là phân tích và tổng hợp dựa vào các công cụ toán học, đặc biệt là đại số đa thức, lý thuyết thông tin và mã hóa, lý thuyết xác xuất cùng với sự hỗ trợ tính toán của máy tính và các chương trình phần mềm mô phỏng để thử nghiệm đánh giá
Ý nghĩa khoa học và thực tiễn của luận án
Những kết quả trong luận án này là một đóng góp nhỏ bé vào việc phát triển lý thuyết mật mã nói chung và các hàm băm nói riêng Các nghiên cứu trong luận án đưa ra được một phương pháp xây dựng mật mã khối và một số hàm băm trên cơ sở là các cấp số nhân cyclic của vành đa thức
Trang 4công khai (hay mật mã hiện đại), từ đó phân tích các ưu và nhược điểm của từng hệ mật.
Các nghiên cứu về cấu trúc nhóm nhân và cấp số nhân cyclic trên vành đa thức cho các kết quả khá lý thú trong việc xây dựng các mã sửa sai và mật mã Để tăng chiều dài cho mật mã khối có thể sử dụng cấu trúc các cấp số nhân cyclic trong các hàm mật mã, nội dung này
sẽ được trình bày trong chương 2
Chương 2 Nội dung chương này đề cập đến cấu trúc cấp số nhân của vành đa thức, xây dựng được một hệ mật trên các cấp số nhân cyclic này Cụ thể là hệ mật mới này được xây dựng theo lược đồ Feistel có sửa đổi (sơ đồ mật mã khối có độ dài đầu ra 128 bit), hàm
mật mã f và việc tạo khóa được xây dựng theo cấu trúc của cấp số
nhân cyclic trên vành đa thức chẵn Một số mô phỏng đánh giá cho thấy kết quả khuếch tán của hệ mật khá tốt (tương đương DES) và đây là cơ sở để xây dựng các hàm băm mới, được trình bày trong chương 3
Chương 3 Nội dung chương này đề cập đến các phương pháp xây dựng hàm băm, xây dựng được hai hàm băm mới 128 bit và 384 bit, với mục đích tăng độ dài hàm băm, thỏa mãn yêu cầu càng cao của thực tế; các mô phỏng đánh giá các hàm băm mới đề xuất này cho thấy kết quả rất khả quan
Phần kết luận nêu những đóng góp của luận án và hướng phát triển tiếp theo
Trang 5CHƯƠNG 1 TỔNG QUAN VỀ MẬT MÃ HỌC
1 1 CÁC KHÁI NIỆM CƠ BẢN
− Xử lý bit (chú yếu trong các ngôn ngữ lập trình)
− Phương pháp hỗn hợp (điển hình là chuẩn mã hóa dữ liệu – DES của Mỹ)
+ Mật mã khóa công khai:
Xây dựng trên 5 bài toán cơ bản:
− Bài toán logarith rời rạc
− Bài toán phân tích thừa số
− Bài toán xếp ba lô
− Bài toán mã sửa sai
− Bài toán đường cong eliptic
+ Mật mã khối: quá trình xử lý thông tin được thực hiện trong các khối có độ dài xác định
+ Mật mã dòng: quá trình xử lý thông tin thực hiện trên từng bit
Trang 61.2.1 Sơ đồ khối chức năng hệ mật khóa bí mật
Hình 1.1 Sơ đồ khối chức năng hệ mật khóa bí mật
1.2.2 Các hệ mật thay thế
Bao gồm các hệ mật thay thế đơn biểu và thay thế đa biểu Các
hệ mật tiêu biểu gồm: Mật mã dịch vòng, hệ mật thay thế, hệ mật Affine, Vigenère…
1.2.3 Các hệ mật hoán vị (MHV)
Khác với hệ mật thay thê, ý tưởng của MHV là giữ các ký tự của bản rõ không thay đổi nhưng sẽ thay đổi vị trí của chúng bằng cách sắp xếp lại các ký tự này Ở đây không có một phép toán đại số nào cần thực hiện khi mã hoá và giải mã
1.2.4 Hệ mật mã tích
1.2.5 Các hệ mật mã dòng và tạo dãy giả ngẫu nhiên
Trang 71.2.6 Chuẩn mã dữ liệu DES
Mô tả đầy đủ của DES được nêu trong Công bố số 46 về các chuẩn xử lý thông tin Liên bang (Mỹ) vào 15/1/1977 DES mã hoá
một xâu bit x của bản rõ độ dài 64 bằng một khoá 54 bit Bản mã
nhận được cũng là một xâu bit có độ dài 64
Thuật toán DES thường được thực hiện qua 16 vòng mã hóa theo lược đồ Feistel, hàm mã hóa trong mỗi bước được thực hiện kết hợp giữa các phép hoán vị và thay thế
1.2.7 Ưu nhược điểm của mật mã khóa bí mật
− Khó xây dựng các dịch vụ an toàn khác như: đảm bảo tính toàn vẹn, xác thực, chữ ký số…
Vì các nhược điểm này nên phải sử dụng cả các hệ mật khóa công khai
Trang 81.3 HỆ MẬT KHÓA CÔNG KHAI
1.3.1 Sơ đồ chức năng
Hình 1.7 Sơ đồ khối chức năng hệ mật khóa công khai
- Khóa công khai của B (Lấy trên kênh mở)
- Khóa bí mật của B
Phép mã hóa là ánh xạ 1:1:
Giải mã:
Ưu điểm của hệ mật khóa công khai:
− Không cần tạo 2 khóa bí mật
− Không cần kênh an toàn riêng
− Biết khóa mã hóa trên kênh mở nhưng rất khó giải mã.Yêu cầu: Dễ mã hóa, khó giải mã (Hàm một chiều)
Các hướng nghiên cứu từ năm 1976 cho đến nay đã tìm được 5 hàm một chiều, tương ứng với 5 bài toán là các bài toán:
- Bài toán logarith rời rạc: Với các hệ mật tiêu biểu như: Thủ tục trao đổi khóa Diffie – Hellman, hệ mật Omura-Massey, hệ mật Elgamal
- Bài toán phân tích thừa số và hệ mật RSA
- Bài toán xếp ba lô với hệ mật Merkle – Hellman
- Bài toán mã sửa sai và hệ mật Mc.Eliece
- Hệ mật xây dựng trên đường cong Elliptic
Trang 9sẽ được trình bày trong chương 2.
Trang 10CHƯƠNG 2 HỆ MẬT XÂY DỰNG TRÊN
CÁC CẤP SỐ NHÂN CYCLIC
2.1 NHÓM NHÂN CYCLIC TRÊN VÀNH ĐA THỨC
Trong mục này luận án đề cập đến các vấn đề:
- Định nghĩa nhóm nhân cyclic trên vành đa thức
- Phân loại nhóm nhân cyclic
2.2 CẤP SỐ NHÂN CYCLIC TRÊN VÀNH ĐA THỨC
Bao gồm các nội dung:
- Khái niệm về cấp số nhân cyclic trên vành đa thức
- Phân hoạch vành đa thức: khái niệm về phân hoạch, các bước phân hoạch vành đa thức, các kiểu phân hoạch
2.3 XÂY DỰNG M-DÃY LỒNG GHÉP TRÊN VÀNH ĐA THỨC
CÓ HAI LỚP KỀ CYCLIC
Trong mục này luận án đề cập đến các vấn đề:
- Vành đa thức có hai lớp kề
- Các M-dãy xây dựng trên vành đa thức
- Các M-dãy lồng ghép xây dựng từ các cấp số nhân của vành đa thức
2.4 HỆ MẬT XÂY DỰNG TRÊN CÁC CẤP SỐ NHÂN CYCLIC
2.4.1 Vấn đề mã hóa
Trong mục này luận án đề cập đến vấn đề lý thuyết về việc áp dụng các cấp số nhân cyclic vào việc mã hóa cho hệ mật, có ví dụ minh họa và mạch điện mã hóa và giải mã
2.4.2 Xây dựng hệ mật dùng cấp số nhân cyclic
Trong sơ đồ xây dựng hệ mật, sơ đồ Feistel được sử dụng làm nền cho hệ mật dùng các cấp số nhân cyclic trên vành đa thức
Trang 11Sơ đồ này (hình 2.5) sẽ mã hóa cho chuỗi bit có độ dài 128, các hoán vị IP và hoán vị đảo IP-1 được tác giả xây dựng và phát triển từ các bảng IP của hệ mật DES, cho trong bảng 2.8 và bảng 2.9
Hàm được xây dựng trên cơ sở hệ mật sử dụng các cấp số nhân cyclic trên vành đa thức có hai lớp kề Các khóa là các phần tử trong một cấp số nhân được chọn như sau:
với là một đa thức có trọng số lẻ tùy ý sao cho:
là một phần tử nguyên thủy của nhóm nhân cyclic có cấp bằng
và cũng là một đa thức có trọng số lẻ Cần chú ý rằng với vành là một vành có hai lớp kề cyclic
Giả sử ta chọn khóa:
,
nhân và cũng là khóa đầu tiên là:
Sơ đồ khối bộ mã hóa với khóa như trong hình 2.6
Một khâu mã hóa được thực hiện theo quy tắc:
Trong sơ đồ mã hóa hình 2.5 tác giả có thay đổi so với sơ đồ Feistel, đó là nửa trái ở bước thứ bằng nửa phải ở bước thứ cộng với khóa (chỉ cộng 61 bit đầu tiên với khóa) Sở dĩ phải làm như vậy để tránh trường hợp khi các bit dữ liệu đầu vào toàn là bit
“0” thì dữ liệu mã hóa đầu ra cũng sẽ toàn là bit “0”, vì hàm f trong
sơ đồ của chúng tôi thực hiện cộng các bit dữ liệu chứ không cộng với các bit của khóa
Trang 13Bảng 2.10 là kết quả tính toán phân bố của bộ mã khi thay đổi
32 bản tin rõ [2], mỗi bản tin chỉ khác 1 bit, với cùng một bộ khóa
K Với phần tử sinh của khóa , phần tử đầu
; phần tử đầu của cấp số nhân (khóa đầu tiên) là:
Bản tin rõ đầu tiên gồm 32 ký tự dạng hexa là:
M 1 = 0123456789ABCDEF0123456789ABCDEF
Bảng 2.10 Khoảng cách Hamming giữa các cặp bản mã khi các bản rõ
khác nhau 1 bit, , với cùng một khóa
Trang 14Khoảng cách Hamming trung bình giữa các bản mã là:
Tiến hành tính toán độ khuếch tán của các từ mã khi thay đổi 1 bit của khóa so với khóa ban đâu, ta được kết quả là:
Trang 152.5 KẾT LUẬN CHƯƠNG 2
Nội dung chương này đề cập đến cấu trúc cấp số nhân của vành đa thức, xây dựng được một hệ mật trên các cấp số nhân cyclic này Cụ thể là hệ mật mới này được xây dựng theo lược đồ Feistel có sửa đổi
(sơ đồ mật mã khối có độ dài đầu ra 128 bit), hàm mật mã f và việc
tạo khóa được xây dựng theo cấu trúc của cấp số nhân cyclic trên vành đa thức chẵn
Một số ưu điểm nổi bật của hệ mật này là (1) Mạch điện mã hóa
và giải mã cùng một cấu trúc và rất đơn giản chỉ gồm các thanh ghi dịch và bộ cộng modul 2, tốc độ xử lý nhanh, (2) Dễ dàng mở rộng
độ dài từ mã trên các vành đa thức với , (3) Một số
mô phỏng đánh giá cho thấy kết quả khuếch tán của hệ mật khá tốt (tương đương DES) và đây là cơ sở để xây dựng các hàm băm mới, được trình bày trong chương 3
Trang 16CHƯƠNG 3 HÀM BĂM XÂY DỰNG TRÊN
CẤP SỐ NHÂN CYCLIC
3.1 HÀM BĂM, XÁC THỰC VÀ CHỮ KÝ SỐ
Mục này đề cấp đến các nội dung:
- Hàm băm: Định nghĩa, các tính cất cơ bản, phân loại hàm băm, các sơ đồ thực hiện hàm băm
3.2.1 Sơ đồ khối mật mã trong hàm băm
Trong phần này tác giả đưa ra một phương pháp xây dựng hàm băm 128 bit dựa trên các cấp số nhân cyclic của vành đa thức, với nền tảng là sơ đồ hàm băm Matyas–Mayer–Oseas như hình 3.12, đầu ra
có độ dài 128 bit Khối mật mã E trong sơ đồ này được xây dựng
theo mô hình mạng hoán vị thay thế Feistel (Hình 2.6)
Hàm E được xây dựng trên cơ sở
hệ mật sử dụng các cấp số nhân
cyclic trên vành đa thức có hai lớp
kề (đã được mô tả trong mục 2.5.2)
Các khóa là các phần tử trong
một cấp số nhân được chọn như sau
[5]:
Trang 17với là một đa thức có trọng số lẻ tùy ý sao cho:
; là một phần tử nguyên thủy của nhóm nhân cyclic
Sơ đồ khối mã hóa f với khóa
Một khâu mã hóa được thực hiện theo quy tắc:
Khối g trong sơ đồ 3.12 thực hiện việc trích trọn các khóa cho
các vòng tiếp theo của quá trình băm Khối mật mã f trong sơ đồ
sử dụng các khóa có độ dài 61 bit Trong 61 bit khóa ở bước thứ
do khối tạo ra thì 60 bit đầu tiên sẽ được trích trọn từ 128 bit của còn bit thứ 61 là bit kiểm tra chẵn lẻ Việc trích trọn được lấy liên tục các bit cách nhau 2 vị trí trong (trong khoảng bit 1 đến bit 120) Dưới đây là một vài kết quả đánh giá của hàm băm xây dựng trên các cấp số nhân cyclic
Trang 180 là kết quả tính toán phân bố của 32 hàm băm khi thay đổi duy nhất một bit dữ liệu trong 32 khối bản tin rõ so với bản tin ban đầu,
để thuận tiện cho việc quan sát chúng tôi chỉ thay đổi 1 bit trong chuỗi bản tin đầu tiên của một khối
Mỗi khối bản tin bao gồm 10 bản tin, mỗi bản tin có độ dài 128 bit Các hàm băm sử dụng cùng một bộ khóa khởi tạo:
Phần tử sinh của khóa khởi tạo là đa thức:
;
đầu tiên), cũng là khóa khởi tạo sẽ là:
Khối bản tin đầu tiên được xây dựng như sau: Bản tin đầu tiên gồm 32 ký tự dạng hexa (tương ứng 128 bit) được chọn là:
Các bản tin tiếp theo (từ 2 đến 10) được tạo một cách ngẫu nhiên
Bảng 3.1 Khoảng cách Hamming khi các khối dữ liệu
khác khối ban đầu 1 bit
Trang 20Bảng 3.2 là kết quả tính toán phân bố của bộ mã khi thay đổi khóa khởi tạo , mỗi khóa khác với khóa đầu tiên 2 bit Sở dĩ ta phải thay đổi 2 bit (tương ứng thay đổi 2 vị trí) là để đảm bảo đa thức sinh của khóa có trọng số lẻ.
Bản tin đầu vào gồm 10 khối 128 bit được tạo ngẫu nhiên [2]
Trang 21Chú ý, chiều dài của khóa là 61 bit, do đó khi mô tả khóa bằng 16
ký tự hexa nhưng thực tế chỉ có 15 ký tự đầu là dạng hexa, còn ký tự cuối cùng chỉ có 1 bit nên nó nhận giá trị “1” hoặc “0”
Chọn phần tử đầu của cấp số nhân tạo khóa là:
Phần tử sinh khóa đầu tiên như sau:
Các khóa chỉ thay đổi 2 bit trong một số hexa của khóa đầu tiên Chú ý: vị trí các bit “1” trong các khóa tương ứng là số
mũ của x trong đa thức sinh tạo khóa Ví dụ:
Bảng 3.2 Khoảng cách Hamming giữa các cặp giá trị băm
khi các khóa khác khóa 2 bit.
TT Khóa K i Giá trị băm MD i