1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận án tiến sĩ kỹ thuật nghiên cứu xây dựng một lớp hàm băm mở rộng mới và khả năng ứng dụng

202 4 0

Đ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

Thông tin cơ bản

Tiêu đề Nghiên Cứu Xây Dựng Một Lớp Hàm Băm Mở Rộng Mới Và Khả Năng Ứng Dụng
Tác giả Nguyễn Toàn Thắng
Người hướng dẫn GS.TSKH. Nguyễn Xuân Quỳnh
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Kỹ thuật Điện tử
Thể loại luận án tiến sĩ
Năm xuất bản 2017
Thành phố Hà Nội
Định dạng
Số trang 202
Dung lượng 4,19 MB

Cấu trúc

  • 1. MỞ ĐẦU (14)
  • 2. TÌNH HÌNH NGHIÊN CỨU (15)
  • 3. LÝ DO CHỌN ĐỀ TÀI (20)
  • 4. MỤC TIÊU NGHIÊN CỨU (21)
  • 5. ĐỐI TƯỢNG, PHẠM VI NGHIÊN CỨU (22)
  • 6. PHƯƠNG PHÁP NGHIÊN CỨU (22)
  • 7. Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN CỦA ĐỀ TÀI (22)
  • CHƯƠNG 1. TỔNG QUAN VỀ MẬT MÃ VÀ HÀM BĂM (23)
    • 1.1. GIỚI THIỆU (23)
    • 1.2. PHƯƠNG PHÁP XÂY DỰNG CÁC HỆ MẬT CƠ BẢN (23)
      • 1.2.1. Phương pháp xây dựng các hệ mật khóa bí mật (23)
      • 1.2.2. Phương pháp xây dựng các hệ mật khóa công khai (37)
    • 1.3. HÀM BĂM (44)
      • 1.3.1. Mô tả hàm băm (44)
      • 1.3.2. Các hàm băm có khóa (46)
      • 1.3.3. Các hàm băm không có khóa (47)
      • 1.3.4. Một số phương pháp toàn vẹn dữ liệu và xác thực thông báo (49)
    • 1.4. CẤP SỐ NHÂN CYCLIC (51)
      • 1.4.1. Nhóm nhân của vành đa thức (51)
      • 1.4.2. Các cấp số nhân cyclic cấp n (51)
      • 1.4.3. Phân hoạch vành đa thức (52)
    • 1.5. KẾT LUẬN CHƯƠNG I (54)
  • CHƯƠNG 2. XÂY DỰNG CÁC HÀM BĂM MỚI (56)
    • 2.1. GIỚI THIỆU (56)
    • 2.2. HÀM BĂM DỰA TRÊN HỆ MẬT THEO SƠ ĐỒ LAI-MASSEY (56)
      • 2.2.1. Hệ mật sử dụng cấp số nhân cyclic theo sơ đồ LAI-MASSEY (56)
      • 2.2.2. Xây dựng hàm băm trên cơ sở hệ mật (63)
    • 2.3. HÀM BĂM DỰA TRÊN HỆ MẬT MÃ LAI GHÉP (68)
      • 2.3.1. Bài toán Logarit rời rạc và hệ mật POHLIG-HELLMAN (69)
      • 2.3.2. Đề xuất một phương pháp xây dựng hệ mật mã lai ghép (72)
      • 2.3.3. Khả năng xây dựng hàm băm từ hệ mật (79)
    • 2.4. HÀM BĂM SỬ DỤNG CÁC CẤP SỐ NHÂN CYCLIC (80)
      • 2.4.1. Sơ đồ hàm băm MDC-2 sử dụng lưu đồ FEISTEL (80)
      • 2.4.2. Xây dựng hàm băm và kết quả mô phỏng (81)
    • 2.5. KẾT LUẬN CHƯƠNG II (87)
  • CHƯƠNG 3. XÂY DỰNG MỘT LỚP CÁC HÀM BĂM MỞ RỘNG MỚI (89)
    • 3.1. GIỚI THIỆU (89)
    • 3.2. XÂY DỰNG HÀM BĂM MỞ RỘNG MỚI MDC-3 (90)
    • 3.3. HÀM BĂM DỰA TRÊN HỆ MẬT MÃ KHỐI KẾT HỢP SƠ ĐỒ LAI- (99)
      • 3.3.1. Hệ mật mã khối kết hợp sơ đồ LAI-MASSEY và FEISTEL (100)
      • 3.3.2. Xây dựng hàm băm trên cơ sở hệ mật kết hợp (106)
    • 3.4. XÂY DỰNG HÀM BĂM MỞ RỘNG MỚI MDC 512 BÍT (111)
      • 3.4.1. Mô tả hệ mật mã khối 256 bít (111)
      • 3.4.3. Xây dựng hàm băm 512 bit trên cơ sở hệ mật (119)
    • 3.5. KẾT LUẬN CHƯƠNG III (123)
  • CHƯƠNG 4. KHẢ NĂNG ỨNG DỤNG CỦA HÀM BĂM XÂY DỰNG MỚI112 4.1. GIỚI THIỆU (125)
    • 4.2. CHỮ KÝ SỐ (125)
    • 4.3. KIỂM TRA TÍNH TOÀN VẸN CỦA THÔNG ĐIỆP (135)
    • 4.4. BẢO VỆ MẬT KHẨU (138)
    • 4.5. KẾT LUẬN CHƯƠNG IV (141)
    • 1. KẾT LUẬN (143)
    • 2. KIẾN NGHỊ HƯỚNG PHÁT TRIỂN (143)
  • TÀI LIỆU THAM KHẢO (147)

Nội dung

TÌNH HÌNH NGHIÊN CỨU

Sau chiến tranh thế giới lần thứ hai, ba lý thuyết lớn trong lĩnh vực điện tử đã ra đời, bao gồm lý thuyết hệ thống, lý thuyết điều khiển và lý thuyết thông tin cùng mã hóa, ảnh hưởng mạnh mẽ đến sự phát triển khoa học và công nghệ Những lý thuyết này, cùng với lý thuyết dây và giải tích hàm, được coi là năm lý thuyết lớn của thế kỷ XX Ban đầu, lý thuyết thông tin và mã hóa chủ yếu phục vụ cho kỹ thuật truyền tin, nhưng với sự phát triển của các kỹ thuật tính toán và thám mã, nó đã mở rộng sang lĩnh vực mật mã học Năm 1949, Claude Shannon công bố bài báo "Lý thuyết thông tin trong các hệ mật" trên tạp chí "The Bell System Technical Journal", có ảnh hưởng lớn đến nghiên cứu khoa học mật mã.

Cryptography is continuously evolving to safeguard key aspects such as authentication, confidentiality, integrity, authorization, non-repudiation, administration, and auditing.

Các hàm băm đang được cải tiến để nâng cao tính toàn vẹn của dữ liệu Các hàm băm mật mã tạo ra mã băm cho thông điệp, cho phép tính toán dễ dàng nhưng rất khó đảo ngược, với đặc điểm là hàm một chiều Các thuộc tính khác cũng rất quan trọng trong quá trình này.

Hiện nay, trên thế giới có nhiều loại hàm băm, bao gồm hàm băm đơn giản và phức tạp, hàm băm độ dài đơn và độ dài kép, cũng như các hàm băm chuyên dụng và thương mại Dưới đây là tổng quan về những sơ đồ hàm băm phổ biến.

* Hàm băm có độ dài đơn: [3, 4, 6]

+ Sơ đồ Matyas - Mayer - Oseas (M-M-O)

* Hàm băm có độ dài kép: [3, 4, 5, 7]

Các sơ đồ hàm băm được xây dựng từ nhiều hệ mật khác nhau, trong đó hệ mật mã khóa bí mật như DES, IDEA, RD.5, TDEA, AES, và CAST được sử dụng phổ biến Nghiên cứu về các hệ mật này và ứng dụng của chúng trong lược đồ hàm băm đã được đề cập trong nhiều công trình nghiên cứu suốt nhiều năm qua.

Các hàm băm phổ biến hiện nay bao gồm họ MD và họ SHS Trong họ MD, MD5 là thuật toán băm mật mã được sử dụng rộng rãi, được phát triển bởi giáo sư Ronald L Rivest tại MIT vào năm 1991 để thay thế MD4 Là một tiêu chuẩn Internet (RFC 1321), MD5 được áp dụng trong nhiều ứng dụng bảo mật và kiểm tra tính toàn vẹn của tệp tin MD5, cùng với các hàm như MD4 và SHS (Secure Hash Standard), nổi bật với tốc độ xử lý nhanh, phù hợp cho các thông báo dài và cho giá trị băm 128 bit.

SHS là chuẩn gồm các thuật toán băm mật mã an toàn như SHA-1, SHA-224, SHA-256, SHA-512 do NIST và NSA xây dựng [4, 5, 12]

Trước năm 2005, SHA-1 được xem là rất an toàn trước các cuộc tấn công Tuy nhiên, vào tháng 2/2005, tại hội nghị CRYPTO, nhóm chuyên gia Trung Quốc đã công bố một cuộc tấn công vào SHA-1 với đầy đủ 80 vòng lặp, cho thấy khả năng tạo ra một cặp xung đột chỉ trong 1 giờ 5 phút Điều quan trọng là họ đã phát triển chiến lược và phương pháp hiệu quả để vượt qua những khó khăn lớn trong việc tìm kiếm các xung đột của SHA-1.

Vào tháng 8 năm 2005, tại hội nghị CRYPTO, các chuyên gia Trung Quốc đã trình bày một phương án tấn công cải tiến vào SHA-1 chỉ cần 263 phép toán, thu hút sự chú ý đặc biệt từ cộng đồng mật mã toàn cầu Nghiên cứu này được coi là một bước ngoặt quan trọng trong lĩnh vực hàm băm, với nhiều trung tâm mật mã tiến hành xác minh và xác nhận kết quả Tại ASIACRYPT 2006, một phương án tấn công mới đã được phát hiện, cho phép tấn công SHA-1 trong 64 vòng chỉ với 235 phép toán.

Sau sự kiện đó, mặc dù chưa ghi nhận tấn công thực tế nào đối với SHA-1, NIST vẫn khuyến nghị chuyển sang sử dụng các hàm băm an toàn hơn.

SHA-2 (bao gồm SHA-224, SHA-256, SHA-384, SHA-512) đã được dự kiến sử dụng trong chữ ký số, tuy nhiên, nhiều chuyên gia cho rằng do sự tương đồng với SHA-1, SHA-2 cũng không có triển vọng lâu dài Trong giai đoạn 2005 - 2006, Viện NIST đã tổ chức nhiều hội thảo về hàm băm, từ đó nhận thấy cần thiết phải tổ chức các cuộc thi chọn hàm băm mới, tương tự như quy trình chọn tiêu chuẩn mã dữ liệu mới trước đây Tuy nhiên, khác với việc có hệ thống tiêu chí rõ ràng cho các ứng cử viên thuật toán mã hóa mới như AES, việc lựa chọn hàm băm lại thiếu các tiêu chí cụ thể Điều này cho thấy hàm băm là một trong những lĩnh vực ít được hiểu biết trong mật mã, do đó cần phát triển nhiều hàm băm để đáp ứng yêu cầu thực tiễn.

Việc phá mã bảo mật như SHA đòi hỏi sức mạnh tính toán lớn, nhưng các nhà nghiên cứu Trung Quốc đã sử dụng một chương trình điện toán phân tán, tương tự như dự án SETI@Home, để khai thác sức mạnh nhàn rỗi của hàng nghìn máy tính trên toàn cầu Một trong những trường hợp đột nhập đáng chú ý nhất vào hệ thống mã hóa là việc xuyên thủng chuẩn MD5-RC64, nhờ vào sức mạnh của 300.000 máy tính và mất tới 5 năm để hoàn thành.

SHA-1 khó hơn gấp 16 lần so với các thuật toán khác, yêu cầu khoảng 300.000 máy tính và mất khoảng 74 năm để hoàn thành Tuy nhiên, nhờ vào việc kết hợp sức mạnh của nhiều máy tính gia đình, như các nhà khoa học Trung Quốc đã thực hiện, thời gian thực hiện đã được rút ngắn đáng kể.

Một công trình nghiên cứu tiêu biểu gần đây về hàm băm có giá trị là bài báo

Bài báo "A new Design Criteria for Hash-Function" của nhóm tác giả Jean-Sesbastien, Yevgenity Dodis, Cescile Malinaud và Prashant từ các trường Đại học New-York và Luxembourg đánh giá các tính chất của các hàm băm thương mại gần đây Nghiên cứu chỉ ra rằng các hàm băm phổ biến như SHA-1 và MD5 không còn đáp ứng yêu cầu về bảo mật, tính va chạm và độ khuếch tán cần thiết Bài báo nhấn mạnh rằng cần phát triển các hàm băm với độ dài mã băm lớn như SHA-512 để phù hợp với nhiều ứng dụng hiện tại, đặc biệt khi cấu hình hệ thống máy tính ngày càng cao và tốc độ xử lý ngày càng nhanh.

Nghiên cứu “Properties of Cryptographic Hash Functions” của tác giả Michal RjaˇSko đã trình bày các thuộc tính cơ bản của hàm băm và ứng dụng của nó Tuy nhiên, bài viết chỉ tập trung vào các yếu tố như tính một chiều, tính khó tìm nghịch ảnh và tính kháng va chạm, mà chưa đề cập đến tính khuếch tán của các hàm băm.

Sự phát triển của các hàm băm trên thế giới đang thu hút nhiều sự chú ý trong nước, với nhiều cơ sở nghiên cứu và đào tạo tập trung vào lĩnh vực này Các công trình nghiên cứu về hàm băm đã được công bố tại các đơn vị như Học viện Kỹ thuật Quân sự, Đại học Mật mã, và Học viện Công nghệ Bưu chính Viễn thông Việc nghiên cứu các hệ mật ở Việt Nam đã diễn ra trong nhiều năm, với một số công trình nghiên cứu có giá trị đã được thực hiện.

MỤC TIÊU NGHIÊN CỨU

- Xây dựng được một số các hàm băm mới (khảo sát trước khi xây dựng các hàm băm mở rộng)

Chúng tôi đã phát triển một lớp hàm băm mở rộng mới với độ khuếch tán cao, nhằm tăng cường chiều dài mã băm thông qua việc kết hợp các móc xích Điều này tạo ra sự phụ thuộc giữa các bít đầu ra và các khối bít đầu vào, đã được kiểm chứng qua mô phỏng Bên cạnh đó, chúng tôi cũng đề xuất các khả năng ứng dụng cho các hàm băm mở rộng này.

PHƯƠNG PHÁP NGHIÊN CỨU

Ý NGHĨA KHOA HỌC VÀ THỰC TIỄN CỦA ĐỀ TÀI

Nghiên cứu của luận án đóng góp quan trọng vào việc phát triển các hàm băm, đặc biệt là hàm băm mở rộng Luận án đã trình bày nhiều phương pháp xây dựng hàm băm khác nhau Mặc dù hiện nay có nhiều loại hàm băm, nhưng vẫn chưa phong phú và cần thiết phải phát triển thêm các hàm băm mới để phục vụ cho các ứng dụng đa dạng trong thực tế.

TỔNG QUAN VỀ MẬT MÃ VÀ HÀM BĂM

GIỚI THIỆU

Chương này giới thiệu phương pháp xây dựng các hệ mật cơ bản, bao gồm hệ mật khóa bí mật như mã hoán vị, mã thay thế, DES, và các lưu đồ như Feistel và Lai-Massey, cùng với hệ mật khóa công khai như RSA, Elgamal, và McEliece Các thuật toán này thường được áp dụng trong các sơ đồ hệ mật Ngoài ra, chương cũng đề cập đến hàm băm, phân loại thành hàm băm có khóa và không có khóa, cùng với các cấp số nhân cyclic, bởi vì nhiều hàm băm mới được nghiên cứu xây dựng dựa trên các cấp số nhân này.

PHƯƠNG PHÁP XÂY DỰNG CÁC HỆ MẬT CƠ BẢN

1.2.1 Phương pháp xây dựng các hệ mật khóa bí mật

Thuật toán mã hoán vị giữ nguyên các ký tự trong bản rõ nhưng thay đổi vị trí của chúng bằng cách sắp xếp lại Quá trình mã hóa và giải mã chỉ đơn giản là đảo vị trí các ký tự mà không cần thực hiện phép toán đại số nào.

Mã hoán vị được thực hiện như sau: [4]

- Với các không gian: P là không gian các bản rõ, C là không gian các bản mã

- Cho m là một số nguyên dương xác định

P = C Z m, với không gian khóa K là tất cả các hoán vị khả thi của tập hợp {1, 2, , m} Đối với một khóa π (một phép hoán vị cụ thể), chúng ta sẽ xác định:

 1 , , m     1 , ,   m  e   x x  x  x  và d    x 1 , , x m    y   1   1 , , y   1   m  trong đó e  là phép mã hóa và d  là phép giải mã

  1là phép hoán vị ngược của 

1.2.1.2 Mã thay thế a) Mã dịch vòng

Giả sử không gian các bản rõ, không gian bản mã, không gian khóa đều bằng nhau và bằng Z 26, tức là P C KZ 26 với 0 k 25, ta có:

 trong đó: e k (x) là phép mã hóa và d k (y) là phép giải mã b) Mã thay thế

Cho P = C = Z 26 K chứa mọi hoán vị có thể có của 26 ký tự từ 0 đến 25 Với mỗi phép hoán vị  K , ta định nghĩa:

( ) ( ) e x   x d  ( )y   1 ( )y trong đó   1 là hoán vị ngược của 

1.2.1.3 Các lưu đồ thông dụng a) Lưu đồ Feistel

Các phép hoán vị và thay thế, khi sử dụng riêng lẻ, khó đảm bảo độ mật cần thiết; do đó, việc kết hợp chúng là cần thiết để tăng cường độ bảo mật Lưu đồ Feistel, được giới thiệu vào đầu những năm 70, đã chứng minh là một trong những phương pháp mã hóa hiệu quả nhất trong việc chống lại các thám mã thời bấy giờ Nhiều hệ thống mã hóa, bao gồm chuẩn mã dữ liệu DES, đã áp dụng lưu đồ này để nâng cao độ an toàn.

Trong luận án, nghiên cứu sinh đã áp dụng lưu đồ Feistel để xây dựng hàm băm và hàm băm mở rộng mới, đồng thời thực hiện một số cải tiến nhằm nâng cao độ bảo mật Đặc biệt, lưu đồ Feistel được kết hợp với lưu đồ Lai-Massey trong các hàm mật mã, tạo ra các hàm băm mở rộng mới với mức độ bảo mật cao hơn.

Cấu trúc Feistel sử dụng mã tích nghịch đảo, kết hợp mã thay thế và mã hoán vị, với quy trình mã hóa và giải mã giống nhau Để giải mã, chỉ cần thay đổi vai trò giữa khối bản mã và khối bản rõ, cùng với thứ tự các khóa con Mỗi vòng mã hóa sẽ được sinh ra một khóa con tương ứng từ khóa chính Quy trình cụ thể được thể hiện trong hình 1.1.

L i , R i là nửa trái và nửa phải của dữ liệu f là hàm mã hóa k i là các khóa

Bản rõ được chia thành hai nửa, trong đó nửa phải sẽ được chuyển thẳng xuống vòng mã hóa tiếp theo, trong khi nửa trái cần trải qua một số phép xử lý trước khi tiếp tục.

+ Mã hóa nửa phải bằng hàm f với khóa K i (i = 1 16)

+ Đầu ra của hàm f được cộng module 2 với nửa trái

Kết quả của phép cộng được sử dụng làm nửa phải trong vòng mã hóa tiếp theo Sau 16 vòng mã hóa với 16 khóa K i, chúng ta sẽ nhận được bản mã đã mã hóa Quá trình mã hóa, giải mã và xác thực có thể được thực hiện trên máy tính, với lưu đồ thuật toán được minh họa trong hình 1.2.

Hình 1.2 Lưu đồ hoạt động của chương trình b) Lưu đồ Lai-Massey

Lưu đồ Lai-Massey với 16 vòng lặp có đặc điểm an toàn tương tự như cấu trúc Feistel, đồng thời không yêu cầu hàm vòng f phải có tính nghịch đảo Một điểm tương đồng khác là nó chia tách các khối đầu vào thành hai phần bằng nhau Hàm vòng được áp dụng cho sự khác biệt giữa hai phần và kết quả sau đó được thêm vào cả hai nửa.

Lưu đồ Lai-Massey được thực hiện nhiều vòng mã hóa liên tiếp (thường là 16 vòng) với các khóa K i

Trước khi đưa vào mã hóa, bản rõ được chia thành 2 phần (M L0 và M R0 )

Mỗi vòng mã hóa thực hiện theo thuật toán:

Trong đó ký hiệu là phép toán cộng đảo

Thỏa thuận khóa K Đọc dữ liệu từ file

Ghi kết quả mã hóa ra file

Thỏa thuận khóa K Đọc dữ liệu từ file

Tính xác thực/so sánh bằng khóa K

Hiển thị kết quả xác thực Xác thực/ Kiểm tra

Hình 1.3 Lưu đồ Lai-Massey

Hàm f sẽ mã hóa tín hiệu cộng đảo của 02 nửa tín hiệu ở vòng trước bằng khóa

Khi tín hiệu đầu ra của hàm f được xử lý, nó sẽ được cộng với nửa trái của tín hiệu vòng trước, trong khi nửa trái của tín hiệu vòng hiện tại cũng sẽ được thêm vào Tương tự, nửa phải của tín hiệu vòng trước sẽ được cộng với nửa phải của tín hiệu vòng hiện tại.

1.2.1.4 Chuẩn mã dữ liệu (DES) a) Mô tả DES

DES là thuật toán mã hoá một xâu bit x của bản rõ độ dài 64 bít bằng một khoá

56 bit Bản mã nhận được cũng là một xâu bit có độ dài 64 bít Thuật toán tiến hành theo 3 giai đoạn:

Giai đoạn 1: Với bản rõ x đã cho, một xâu bit x0 được tạo ra bằng cách hoán vị các bit của x theo phép hoán vị IP cố định ban đầu.

0   0 0 x IP x L R , trong đó L 0 gồm 32 bit đầu và R 0 là 32 bit cuối

Giai đoạn 2 Sau đó tính toán 16 lần lặp theo một hàm xác định Ta sẽ tính L R i i

Kí hiệu phép hoặc loại trừ của hai xâu bit (cộng theo modulo 2) được mô tả bởi hàm f, trong đó k k 1, 2, , k 16 là các xâu bit có độ dài 48, được tính toán từ khoá k Mỗi k i thực chất là một phép chọn hoán vị bit trong k, và các khoá k k 1, 2, , k 16 sẽ tạo thành bảng khoá.

Lưu đồ Feistel sử dụng cho DES được mô tả như trên hình 1.4

Hình 1.4 Lưu đồ mã hóa

Giai đoạn 3 Áp dụng phép hoán vị ngược IP  1 cho xâu bit cuối cùng, ta thu được bản mã y

Hàm f nhận hai biến đầu vào: biến A là xâu bit dài 32 và biến J là xâu bit dài 48 Đầu ra của hàm f là một xâu bit dài 32 Các bước thực hiện hàm f sẽ được mô tả chi tiết trong bài viết.

Bước 1: Thực hiện mở rộng biến A thành xâu bit 48 bit thông qua hàm mở rộng E Hàm E(A) kết hợp 32 bit của A được hoán vị theo cách cố định, với 16 bit được lặp lại hai lần.

Bước 2 Tính E A    J và viết kết quả thành một chuỗi 8 xâu 6 bit có dạng

Bước 3 sử dụng 8 bảng S S 1, 2, , S 8, được gọi là các hộp S, với mỗi S i là bảng 4×16 cố định chứa các hàng số nguyên từ 0 đến 15 Đối với xâu bit dài 6 (ký hiệu B i = b1 b2 b3 b4 b5 b6), ta tính S j(B j) bằng cách sử dụng hai bit đầu b1 và b6 để xác định hàng r của S j (0 ≤ r ≤ 3) và bốn bit tiếp theo (b2, b3, b4, b5) để xác định cột c của S j (0 ≤ c ≤ 15) Kết quả, S j(B j) sẽ xác định phần tử tương ứng trong bảng.

S j r c là một phần tử được biểu diễn dưới dạng nhị phân với độ dài 4 bit Mỗi S j có thể được xem như một hàm mã, nhận đầu vào là một xâu bit dài 2 và một xâu bit dài 4, và cho ra đầu ra là một xâu bit dài 4 Tương tự, các S j có thể được tính toán theo cách này.

Bước 4 Xâu bit C  C C 1 2 C 8 có độ dài 32 được hoán vị theo phép hoán vị cố định P Xâu kết quả là P C   được xác định là f A J  , 

Hàm f được mô tả trong hình 1.5 Chủ yếu nó gồm một phép thế (sử dụng hộp

S), tiếp sau đó là phép hoán vị P Toàn bộ 16 phép lặp của f sẽ tạo nên một hệ mật tích

Nội dung dưới đây sẽ mô tả các hàm cụ thể được dùng trong DES Phép hoán vị ban đầu IP như sau: [4]

Hàm mở rộng E được xác định theo bảng sau [4]:

Bảng IP có nghĩa là bit thứ 58 của x là bit đầu tiên của IP x  ; bit thứ 50 của x là bit thứ hai của IP x   ,

Phép hoán vị ngược IP  1 là phép thay đổi vị trí ngược lại so với phép biến đổi

HÀM BĂM

Hàm băm h là một hàm có ít nhất hai tính chất sau:

- Tính chất nén: h sẽ ánh xạ một đầu vào x có độ dài bit hữu hạn tuỳ ý tới một đầu ra h(x) có độ dài bit n hữu hạn

- Tính chất dễ dàng tính toán: Với h cho trước và một đầu vào x, có thể dễ dàng tính được h(x)

Ngoài hai tính chất trên hàm băm còn có một số tính chất khác như sau [4]:

- Khó tìm nghịch ảnh (preimage): Cho một tóm tắt, khó tìm một thông báo (chưa biết) khớp với tóm tắt đó (khó tính toán để tìm x h 1 ( ) y )

Khó tìm nghịch ảnh thứ hai là một tính chất quan trọng trong lĩnh vực mã hóa, đặc biệt là trong các hàm băm Điều này có nghĩa là rất khó để tìm một giá trị x’ khác với x, sao cho h(x) = h(x’) Tính chất này được gọi là "tính xung đột băm", và nó đảm bảo rằng hai thông báo khác nhau sẽ có giá trị băm khác nhau, tăng cường tính bảo mật và độ tin cậy của hệ thống.

Kháng va chạm là một yếu tố quan trọng trong bảo mật thông tin, nhằm ngăn chặn việc xác định các cặp x và x’ sao cho h(x) = h(x’) Mục tiêu là ngăn chặn kẻ tấn công thu thập thông tin hữu ích từ một thông báo, ngay cả khi chúng có được tóm tắt của nó.

Hàm băm một chiều (OWHF) là một hàm băm có tính chất bổ sung là:

- Khó tìm nghịch ảnh thứ hai

Hàm băm kháng va chạm (CRHF) là một hàm băm có tính chất bổ sung là:

- Khó tìm nghịch ảnh thứ hai

Tính khuếch tán là một đặc tính quan trọng của hàm băm, phản ánh khoảng cách Hamming trung bình khi thay đổi dữ liệu đầu vào hoặc khóa Tối ưu nhất là khi tính khuếch tán đạt khoảng một nửa chiều dài mã băm, dẫn đến việc thay đổi một nửa số bít ở đầu ra Độ khuếch tán tốt giúp đảm bảo tính xác thực và toàn vẹn dữ liệu, đồng thời dễ dàng phát hiện các tấn công thám mã Ngoài ra, số lượng khóa lựa chọn và tốc độ mã hóa cũng là yếu tố quan trọng; càng nhiều khóa và tốc độ băm càng nhanh thì hiệu quả càng cao Tuy nhiên, nhiều nghiên cứu trước đây ít đề cập đến các đặc tính này.

Phân loại các hàm băm mô tả trong sơ đồ hình 1.7 [4, 6]

Hình 1.7 Phân loại các hàm băm

Không có khóa Có khóa

MDC Các ứng dụng khác

Các ứng dụng khác MAC

1.3.2 Các hàm băm có khóa

Các hàm băm có khoá gồm MAC và các ứng dụng, trong đó MAC là các thuật toán tạo mã xác thực thông báo

Sơ đồ của MAC dựa trên các mật mã khối như hình 1.8, thuật toán như sau:

Vào: Dữ liệu x, mật mã khối E, khoá MAC bí mật k của E

Ra: n bit MAC trên x (n là độ dài khối của E)

- Độn và chia khối: Độn thêm các bit vào x nếu cần Chia dữ liệu đã độn thành t khối, mỗi khối n bit: x x 1 2 x n

- Xử lý theo chế độ CBC Ký hiệu E k là phép mã hoá E với khoá K

- Xử lý thêm để tăng độ vững chắc của MAC:

Dùng một khoá bí mật thứ hai k’ ≠ k , tính:

- Kết thúc: MAC là khối n bit H t

1.3.3 Các hàm băm không có khóa

Mật mã khối (n,r) là một phương pháp mã hóa xác định hàm khả nghịch từ các bản rõ n bit sang các bản n bit, sử dụng khóa r bit Trong đó, ký hiệu E k (x) đại diện cho phép mã hóa x bằng khóa k.

Hàm băm cho h là một hàm có lặp được xây dựng từ một mật mã khối, với hàm nén f thực hiện s phép mã hóa khối để xử lý từng khối bản tin n bit Tốc độ của hàm h là 1/s, cho thấy hiệu suất trong việc xử lý dữ liệu.

Hình 1.9 trình bày ba sơ đồ về các hàm băm độ dài đơn phổ biến, được xây dựng dựa trên các mật mã khối Các sơ đồ này sử dụng các thành phần đã được xác định trước.

- Khối E: Một mật mã khối n bit khởi tạo E k được tham số hoá bằng một khoá đối xứng K

- Khối g: Một hàm g ánh xạ n bit vào thành khoá K sử dụng cho E (Nếu các khoá cho E cũng có độ dài n thì g có thể là hàm đồng nhất)

Và một giá trị ban đầu IV thích hợp dùng với E

Hình 1.9 Các sơ đồ hàm băm độ dài đơn a) Matyas-Mayer-Oseas; b) Davies-Mayer; c) Miyaguchi-Preneel g E a)

Các thuật toán MDC độ dài kép, bao gồm MDC-2 và MDC-4, được trình bày trong hình 1.10 và hình 1.11 Tên gọi MDC-2 và MDC-4 xuất phát từ số lượng phép toán mã hóa khối cần thiết để phát hiện sự sửa đổi, tương ứng là 2 và 4 Những sơ đồ hàm băm này sử dụng 2 hoặc 4 lần lặp lại của sơ đồ M-M-O để tạo ra hàm băm với độ dài gấp đôi so với các sơ đồ hàm băm đơn.

Khi áp dụng DES, MDC-2 và MDC-4 sẽ tạo ra mã băm có độ dài 128 bit Tuy nhiên, trong cấu trúc tổng quát, có thể sử dụng các hệ mật mã khối khác nhau Cụ thể, MDC-2 và MDC-4 sử dụng các thành phần đã được xác định rõ ràng.

- DES được dùng làm mật mã khối E k có đầu vào và đầu ra là 64 bit và với khoá k 56 bit

- Hai hàm g và g ánh xạ các giá trị 64 bit U thành các khoá 56 bit như sau: g E x i

Cho U u u 1 2 u 64 , xoá mọi bit thứ 8 và đặt các bit thứ 2 và thứ 3 về "10" đối với g và "01" đối với g

Để đảm bảo an toàn cho hệ thống mã hóa, cần tránh sử dụng các khóa DES yếu hoặc nửa yếu, vì các khóa này có bit thứ hai trùng với bit thứ ba Đồng thời, cần đảm bảo rằng giá trị khởi tạo (IV) không trùng lặp để đáp ứng các yêu cầu bảo mật.

1.3.4 Một số phương pháp toàn vẹn dữ liệu và xác thực thông báo

Xác thực thông báo là một thuật ngữ được dùng tương đương với xác thực nguyên gốc của dữ liệu

Có ba phương pháp xác định tính toàn vẹn của dữ liệu bằng cách dùng các hàm băm:

- Dùng MDC và mã hoá (hình 1.13)

- Sử dụng MDC và kênh tin cậy (hình 1.14)

Hình 1.12 Toàn vẹn dữ liệu dùng MAC

Hình 1.13 Toàn vẹn dữ liệu dùng MDC và mã hóa

Hình 1.14 Toàn vẹn dữ liệu dùng MDC và kênh tin cậy

Thông báo Thuật toán MDC

Thông báo Thuật toán MDC

Thông báo Thuật toán MAC

Trong 3 phương pháp trên, phương pháp toàn vẹn dữ liệu dùng MDC và mã hóa có khả năng đảm bảo an toàn cho dữ liệu cao hơn cả.

CẤP SỐ NHÂN CYCLIC

1.4.1 Nhóm nhân của vành đa thức Định nghĩa 1.1: Tập các đa thức f x( )trong vành đa thức 2 [ ] /x x n 1với một phép toán nhân đa thức tạo nên một nhóm nhân G:

Trong nhóm nhân tồn tại phần tử đơn vị e x( )với f x( )* ( )e x f x( ) [4]

Có tất cả 2 n 2 các nhóm nhân cyclic cấp n và nhóm nhân I cũng thuộc vào lớp các nhóm nhân này Ta gọi I là nhóm nhân cyclic đơn vị [4, 5]

1.4.2 Các cấp số nhân cyclic cấp n

Xét vành đa thức 2 [ ]/x x n 1 với n lẻ Định nghĩa 1.2: Cấp số nhân cyclic (Cyclic Geometic Progressions CGP) trên vành đa thức là một tập hợp con có dạng sau [6], [10], [23]:

A  a x a x q x a x q x a x q  x (1.5) Trong đó: m là số các số hạng của cấp số nhân a x( )là số hạng đầu của cấp số nhân

Giá trị của m chính là cấp của nhóm nhân sinh với phần tử sinh q x( ) và lũy đẳng q m ( )x Trong trường hợp ta chọn số hạng đầu ( ) 1a x  , công bội là ( )q x thì

Là một cấp số nhân cyclic cấp m

Trong vành đa thức Z[x]/(x^n + 1), việc lựa chọn số hạng đầu a(x) và hạt nhân phân hoạch q(x) khác nhau cho phép tạo ra nhiều kiểu phân hoạch khác nhau Điều này dẫn đến việc hình thành các cấp số nhân cyclic, từ đó xây dựng được các mã cyclic với cấu trúc đa dạng.

* Các cấp số nhân cyclic cấp n:

Khi nhân các phần tử của một nhóm nhân cyclic cấp n với một phần tử bất kỳ trong nhóm nhân G của vành đa thức, ta nhận được một cấp số nhân có công bội là phần tử sinh của nhóm nhân, với số hạng đầu tiên là đa thức được nhân.

1.4.3 Phân hoạch vành đa thức

Phân hoạch vành đa thức là quá trình chia các phần tử của vành đa thức thành các tập không trùng nhau, gọi là các lớp kề Các phần tử sinh của nhóm nhân sinh được xem là hạt nhân của phân hoạch Mỗi phân hoạch trong vành đa thức tạo ra các lớp kề tương ứng với các cấp số nhân cyclic có cùng một công bội.

Phân hoạch thường được chia thành các loại: Phân hoạch chuẩn, phân hoạch cực đại, phân hoạch cực tiểu,

Phân hoạch này còn được gọi là phân hoạch theo I

I là nhóm nhân cyclic đơn vị

Hạt nhân của phân hoạch là x, có cấp ord( )x n

+ Các lớp kề có độ lớn bằng n hoặc ước của n

+ Khi n là số nguyên tố thì có thể tính chính xác được số lớp kề

Có một lớp kề chỉ chứa 0   1

 , số phần tử còn lại trong các lớp kề là

2 n 2 Do đó số các lớp kề là [26]: 2 2

1.4.3.2 Phân hoạch cực đại Định nghĩa 1.3: Phân hoạch cực đại là phân hoạch có nhóm nhân cyclic sinh có phần tử sinh với cấp lớn nhất, ord ( )a x max ord ( ); ( )b x b x  2 [ ]/x x n 1

Trong phân hoạch cực đại thì số lớp kề của phân hoạch được xác định theo công thức sau [4, 28]:

1.4.3.3 Phân hoạch cực tiểu Định nghĩa 1.4: Phân hoạch cực tiểu là phân hoạch có phần tử sinh của nhóm nhân cyclic là a x( ) 1

Trong phân hoạch cực tiểu với phần tử của nhóm nhân a x( ) 1 , số lớp kề trong phân hoạch được xác định [4]:

Trong phân hoạch cực tiểu, mỗi lớp kề chỉ chứa một phần tử, do đó số lớp kề trong phân hoạch này tương ứng với số phần tử khác 0 có trong vành, cụ thể là 2^n - 1.

1.4.3.4 Phân hoạch vành thành các cấp số nhân có cùng trọng số

Khi \(q(x) = x^i\) và \(\text{ord}(x^i) = n\), cấp số nhân \(A(a, q)\) bao gồm các đa thức có trọng số giống nhau Vành đa thức được phân hoạch thành các cấp số nhân, trong đó các phần tử của mỗi cấp số nhân đều có trọng số tương đồng Đây là một dạng phân hoạch không suy biến và phân hoạch theo nhóm nhân đơn vị.

1.4.3.5 Phân hoạch vành đa thức thành các cấp số nhân theo modulo h(x)

Ta có thể phân hoạch vành đa thức 2 [ ]/x x n 1 thành các cấp số nhân theo modulo h x( ) với h x( ) |x n 1

Trong đó, f i(x) là các đa thức bất khả quy

Hàm h(x) là sự kết hợp của các đa thức f_i(x) với bậc deg(h(x)) < k n Số lượng đa thức không khả quy khác nhau phụ thuộc vào giá trị n, dẫn đến sự tồn tại của nhiều hàm h(x) khác nhau Do đó, trong vành sẽ có nhiều phân hoạch tương ứng với các hàm h(x) khác nhau.

Trong trường hợp này, phân hoạch của vành chỉ có 2 k – 1 phần tử, dẫn đến việc phân hoạch bị suy biến Kết quả là vành đa thức cũng bị suy biến thành các vành nhỏ hơn.

KẾT LUẬN CHƯƠNG I

Trong chương này, chúng tôi giới thiệu các kiến thức cơ bản liên quan đến luận án, bao gồm phương pháp xây dựng hệ mật khóa bí mật và khóa công khai Các hệ mật cơ bản như mã hoán vị, mã thay thế, thuật toán Lai-Massey, Feistel, và chuẩn mã dữ liệu DES với các chế độ hoạt động khác nhau sẽ được trình bày Ngoài ra, chúng tôi cũng đề cập đến các hệ mật mã khóa công khai như thuật toán RSA, Elgamal và McEliece.

Chương này tập trung vào việc giới thiệu và mô tả hàm băm, bao gồm các loại hàm băm thông dụng như có khóa và không có khóa Ngoài ra, các kiến thức cơ bản về nhóm nhân cyclic và các cấp số nhân cyclic cũng được đề cập, cùng với các dạng hệ mật cần thiết để xây dựng lớp hàm băm mới trong các chương tiếp theo Những nội dung này tạo nền tảng lý thuyết cho nghiên cứu sinh trong việc phát triển các hàm băm mở rộng mới.

Trong chương I, các hàm băm cơ bản được giới thiệu với độ dài mã băm nhỏ, bao gồm 64 bít cho các hàm băm đơn như M-M-O, D-M, M-P và 128 bít cho các hàm băm kép MDC-2 và MDC-4 Tuy nhiên, do yêu cầu của bài toán tấn công ngày sinh nhật, việc tìm kiếm các văn bản có cùng giá trị hàm băm trở nên khả thi khi kích thước hàm băm nhỏ, dẫn đến nguy cơ va chạm Do đó, cần phát triển các hàm băm với độ dài mã băm lớn hơn Nghiên cứu sinh sẽ tập trung vào việc xây dựng các hàm băm có độ dài từ 384-512 bít, bắt đầu bằng việc nghiên cứu các hàm băm có độ dài nhỏ qua phương pháp tạo độ khuếch tán cao trong chương II, và sau đó sẽ tiếp tục phát triển lớp hàm băm mở rộng mới trong chương III của luận án.

XÂY DỰNG CÁC HÀM BĂM MỚI

GIỚI THIỆU

Chương này trình bày một số kết quả mới của nghiên cứu sinh về hàm băm, bao gồm:

Nghiên cứu sinh phát triển một hàm băm dựa trên hệ mật theo sơ đồ Lai-Massey bằng cách xây dựng một hệ mật mới sử dụng các cấp số nhân cyclic Hệ mật này sau đó được ứng dụng trong quá trình xây dựng hàm băm, tạo ra một phương pháp an toàn và hiệu quả.

Xây dựng một hệ mật mã lai ghép kết hợp giữa hệ mật Pohlig-Hellman và sơ đồ Feistel có thể mang lại nhiều lợi ích trong bảo mật thông tin Hệ mật này không chỉ tăng cường tính an toàn mà còn cho phép áp dụng vào các sơ đồ hàm băm, mở rộng khả năng ứng dụng trong lĩnh vực mã hóa dữ liệu Việc kết hợp hai phương pháp này hứa hẹn sẽ tạo ra những giải pháp bảo mật hiệu quả hơn trong việc bảo vệ thông tin nhạy cảm.

Xây dựng hàm băm theo sơ đồ MDC-2 với điểm mới là áp dụng các hệ mật sử dụng cấp số nhân cyclic trên vành x^n + 1, trong đó n = 2k Các khóa trong mã khối cũng được tạo ra từ các cấp số nhân cyclic trên vành đa thức.

HÀM BĂM DỰA TRÊN HỆ MẬT THEO SƠ ĐỒ LAI-MASSEY

2.2.1 Hệ mật sử dụng cấp số nhân cyclic theo sơ đồ LAI-MASSEY

Vành đa thức 2 [ ] / x x n  1 với n2 k là một trường hợp đặc biệt trong xây dựng mã sửa sai Tuy nhiên, việc áp dụng các cấp số nhân cyclic trên vành đa thức này mở ra những ứng dụng thú vị trong lĩnh vực mật mã và hàm băm Bài viết đề xuất một hàm băm dựa trên hệ mật mã khối, sử dụng các cấp số nhân cyclic và lược đồ mã hóa theo sơ đồ Lai-Massey đã được sửa đổi Các khóa cho hệ mật cũng là các phần tử của các CGP, hoạt động trên vành đa thức với hai lớp kề cyclic Nghiên cứu sinh cũng thực hiện mô phỏng tính khuếch tán của hàm băm và hệ mật được đề xuất.

Việc sử dụng các cấp số nhân cyclic trên các vành đa thức đặc biệt với

Nghiên cứu về độ khuếch tán trong các hệ mật mã khối và hàm băm cho thấy rằng các hệ mật mã mới xây dựng theo phương pháp này đạt được độ khuếch tán tốt, với quy trình mã hóa đơn giản chỉ sử dụng các thanh ghi dịch và bộ cộng module 2, thuận lợi cho việc phát triển các hàm băm mới Bài viết giới thiệu một hệ mật mã khối được thiết kế dựa trên sơ đồ Lai - Massey, trong đó các hàm mã hóa và khóa được xây dựng từ các cấp số nhân cyclic trên vành đa thức Hệ mật mã mới này được áp dụng vào một sơ đồ hàm băm đơn 64 bit, và tính toán tính khuếch tán của hàm băm này được thực hiện thông qua chương trình mô phỏng.

Lưu đồ thuật toán của hệ mật là lưu đồ Lai - Massey như trong hình vẽ 2.1, các khối mã hóa f sử dụng các CGP trên vành đa thức 2 [ ] / x x n 1với n  2 5  32 ( k  5) [7,

Mỗi vòng mã hóa thực hiện theo thuật toán:

Trong đó: ký hiệu là phép toán cộng đảo

Cấu trúc CGP tạo khối mã hóa f có dạng: A   a x x i ( ) ; i  0,31 

Hình 2.1 Sơ đồ khối bộ mã hóa

Dữ liệu bản rõ M (64 bít)

Dữ liệu bản mã C (64 bít)

Thực chất đây là một lớp biến đổi đặc biệt được đặc trưng bởi ma trận luân hoàn có dạng như sau [4]:

Khi chọn a x( )G, ma trận A sẽ có ma trận nghịch đảo A  1 Việc sử dụng ma trận A trong mã hóa cho phép giải mã dễ dàng bằng ma trận nghịch đảo A  1.

Ma trận nghịch đảo này xác định như sau:

A  A  Điều này là do ma trận A có cấp n tức là: A n  I hay AA n  1  I , với I là ma trận đơn vị

Theo lý thuyết, việc chọn a x( ) là một đa thức có trọng số lẻ sẽ đảm bảo rằng nó thuộc vào nhóm nhân G, từ đó đảm bảo điều kiện cần thiết cho việc giải mã.

Nếu chọn đa thức a(x) = 1 + x + x^2 làm phần tử đầu của CGP mã hóa, ma trận nghịch đảo A⁻¹ = A₃₁ sẽ được xây dựng từ CGP với phần tử đầu là đa thức b(x) được tính toán như sau.

Chú ý b x( )là đa thức nghịch đảo của a x( )

Mạch điện mã hoá thực hiện phép cộng theo các hệ số của đa thức a x( ) với n bước dịch vòng Để giải mã, thuật toán áp dụng tương tự với các hệ số của đa thức nghịch đảo b x( ).

Ví dụ mạch điện mã hóa với a x( ) 1  x x 2 như mô tả trong hình 2.2, chú ý dạng biểu diễn theo số mũ của a x( )là(012).

Hình 2.2 Mạch điện mã hóa f với a x( ) 1  x x 2

Các khóa K i trong sơ đồ hình 2.1 được tạo ra từ các CGP, xây dựng trên các vành đa thức có hai lớp kề cyclic Các khóa K i này đóng vai trò là các đa thức đầu a x( ) của ma trận mã hóa A của hàm f Để đảm bảo điều kiện tồn tại ma trận giải mã A  1, các khóa K i sẽ được chọn là các đa thức có trọng số lẻ.

Các vành đa thức có hai lớp kề được phân tích thành tích của hai đa thức bất khả quy như mô tả dưới đây:

Chúng tôi chọn tạo khóa trên vành đa thức có hai lớp kề cyclic 2 [ ] / x x n 1 vì điều này cho phép tạo ra các CGP với số lượng phần tử lớn, tức là số lượng khóa rất nhiều Sự phong phú này xuất phát từ việc các đa thức a x( ) x n 1 trên vành này có cấp cực đại được tính là maxorda x( ) 2 n  1 1.

Chọn vành đa thức hai lớp kề cyclic x^2 + 1, với 16 khóa K_i cho các vòng mã hóa là 16 phần tử đầu tiên trong một CGP được xây dựng theo công thức mod 29.

K i K K x  i (2.4) vớiK a là một đa thức có trọng số lẻ tùy ý sao cho: degK a 29

K0 là một phần tử nguyên thủy của nhóm nhân có cấp bằng 2^28 - 1, đồng thời cũng là một đa thức có trọng số lẻ, đảm bảo rằng các khóa Ki sẽ có trọng số lẻ Để thuận tiện cho mạch điện mã hóa, nên chọn K0 = x, từ đó các khóa cho các vòng mã hóa được tạo ra từ cấp số nhân với công thức: mod 29 1; (0,15) i i a.

Sở dĩ ta chọn vành x 29 1 để tạo khóa là vì: (1) các đa thức tạo khóa phải thuộc vành x 32 1 và (2) nên chọn các vành x n 1 với n gần bằng 32

Trong sơ đồ mã hóa mới được nghiên cứu, điểm khác biệt so với sơ đồ Lai-Massey truyền thống là nửa phải ở bước thứ i được cộng thêm với khóa K i trước khi kết hợp với đầu ra của hàm f, chỉ áp dụng cho 29 bit đầu tiên Việc này nhằm tránh tình trạng khi dữ liệu đầu vào toàn là bit “0”, dữ liệu mã hóa đầu ra sẽ trở thành toàn bit “1” và ngược lại Nguyên nhân là do hàm f chỉ thực hiện phép cộng các bit dữ liệu mà không thực hiện phép thay thế như trong DES.

Tiến hành tính toán độ khuếch tán của bộ mã khi thay đổi khóa K [31] với cùng một bản rõ đầu vào là:

Khóa có chiều dài 29 bit, do đó khi biểu diễn bằng 8 ký tự hexa, chỉ có 7 ký tự đầu là hexa, trong khi ký tự cuối chỉ chứa 1 bit với giá trị “1” hoặc “0”.

Theo biểu thức (2.5) ta chọn phần tử sinh của CGP tạo khóa là K 0  x

Phần tử đầu của CGP và cũng là khóa đầu tiên K 1 chọn là K 1 = 1234567.1 với

Trong quá trình tính toán mô phỏng, các khóa được thay đổi lần lượt từng bit từ bit 1 đến bit 28 của khóa đầu tiên K1 Để đảm bảo rằng các khóa luôn có trọng số lẻ, bit 29 của các khóa sau sẽ được thiết lập là “0”.

Ghi chú: vị trí các bit “1” trong các khóa K i tương ứng là số mũ của x trong đa thức sinh tạo khóa, ví dụ với khóa K 1 :

Bảng 2.1 là kết quả tính khoảng cách Hamming của bộ mã với các khóa khác với khóa đầu tiên 2 bit

Bảng 2.1 Khoảng cách Hamming d H (C 1 ,C i ) giữa các cặp bản mã khi các khóa khác khóa ban đầu (K 1 ) 2 bit với cùng một bản rõ M

K 1(HEX) = 1 2 3 4 5 6 7 Bít 29 (kiểm tra chẵn lẻ)

Trong bảng 2.1, các ký tự hexa được in đậm thể hiện các bit của khóa đã thay đổi, trong khi trọng số của các đa thức sinh tạo khóa luôn được đảm bảo là số lẻ.

Khoảng cách Hamming trung bình giữa các bản mã tính được như trong biểu thức (2.7):

+ 28 là số lần thay đổi khóa

+ Khoảng cách mã giữa mỗi lần thay đổi khóa là:

2.2.2 Xây dựng hàm băm trên cơ sở hệ mật

Hàm băm mới có thể được xây dựng từ hệ mật đề xuất nhờ vào ưu điểm của mạch điện mã hóa đơn giản Nghiên cứu sinh thực hiện tính toán độ khuếch tán của hàm băm theo sơ đồ Matyas-Mayer–Oseas, như thể hiện trong hình 2.3.

Hình 2.3 Sơ đồ hàm băm Matyas-Mayer-Oseas

HÀM BĂM DỰA TRÊN HỆ MẬT MÃ LAI GHÉP

Các hệ mật khóa công khai hiện nay thường dựa trên các bài toán một chiều, trong đó việc mã hóa dễ dàng nhưng giải mã lại rất khó Một trong những bài toán khó này là logarit rời rạc, và cho đến nay chưa có thuật toán hiệu quả nào để giải quyết nó Nghiên cứu sinh đã đề xuất một hệ mật mã khóa bí mật lai ghép, kết hợp giữa hệ mật Pohlig-Hellman và sơ đồ Feistel, đồng thời thực hiện đánh giá về tính khuếch tán của hệ mật này Ngoài ra, NCS cũng đưa ra khả năng ứng dụng hệ mật này trong các hàm băm mật mã.

Trong mô hình mật mã cổ điển, người gửi A và người nhận B chọn một khóa bí mật k để tạo ra luật mã hóa e_k và luật giải mã d_k, trong đó d_k có thể dễ dàng nhận được từ e_k Hệ thống này được gọi là mật mã khóa bí mật (hay mật mã khóa đối xứng), và nếu khóa k bị lộ, an toàn của hệ thống sẽ bị đe dọa Để khắc phục, ý tưởng về hệ mật khóa công khai ra đời, cho phép xác định d_k mà không cần tính toán từ e_k Với hệ mật khóa công khai, quy tắc mã hóa e_k có thể được công bố, cho phép A gửi tin nhắn mã hóa cho B mà không cần thông tin về khóa bí mật Chỉ B mới có thể giải mã tin nhắn đó bằng luật giải mã bí mật d_k của mình Ý tưởng này được Diffie và Hellman phát triển vào năm 1976.

1976 Còn việc hiện thực hoá nó thì do Rivesrt, Shamir và Adleman đưa ra lần đầu tiên vào năm 1977, họ đã tạo nên hệ mật nổi tiếng RSA [36]

Hàm mã hóa khóa công khai e k của B cần phải dễ tính toán, trong khi việc tìm hàm ngược (hàm giải mã) lại rất khó khăn đối với bất kỳ ai không phải là B Đặc tính dễ tính toán này được gọi là đặc tính một chiều, với điều kiện cần thiết là e phải là hàm một chiều, tức là dễ tính thuận nhưng khó tính ngược.

Bài toán logarit rời rạc là một trong những hàm một chiều phổ biến trong các hệ mật khóa công khai Nhiều hệ mật khóa công khai dựa vào bài toán này, bao gồm trao đổi và thỏa thuận khóa Diffie-Hellman, hệ mật Omura-Massey, cũng như hệ mật và chữ ký số ElGamal.

Cho đến nay, chưa có thuật toán hiệu quả nào giải quyết bài toán logarit rời rạc tổng quát Mặc dù có nhiều thuật toán phức tạp, thường dựa trên các phương pháp tương tự như phân tích thừa số, chúng vẫn chậm hơn so với thời gian đa thức Một số thuật toán tiêu biểu bao gồm Baby-step giant-step, Pollard, Pohlig-Hellman, COS và tính toán chỉ số (index calculus).

Nghiên cứu sinh đề xuất một phương pháp xây dựng hệ mật mã lai ghép nhằm kết hợp ưu điểm của các hệ mật và sơ đồ mã hóa hiện có Phương pháp này sử dụng phép mã hóa của hệ mật Pohlig-Hellman kết hợp với sơ đồ mã hóa theo mạng Feistel cân bằng đã được cải tiến.

2.3.1 Bài toán Logarit rời rạc và hệ mật POHLIG-HELLMAN

2.3.1.1 Bài toán logarit rời rạc

Các phép tính logarit rời rạc được thực hiện trên các nhóm nhân cyclic Nếu G là một nhóm nhân cyclic và g là phần tử sinh của G, mỗi phần tử y trong G có thể được biểu diễn dưới dạng g^x với một giá trị x cụ thể Phép tính logarit rời rạc của y với cơ số g sẽ cho kết quả là x.

Có thể tóm tắt bài toán logarit rời rạc như sau [4], [27]:

Nếu p là một số nguyên tố, thì vành số p sẽ trở thành một trường, ký hiệu là GF(p) Tập hợp tất cả các phần tử khác không của trường này sẽ tạo thành một nhóm nhân cyclic, ký hiệu là *p.

Cho g * p là một phần tử sinh của nhóm nhân

Cho y * p , yêu cầu hãy tìm x (nếu tồn tại) sao cho: g x  y, tức là: xlog g y

Nhận xét:  y * p thì [4]: Bài toán có thể không có nghiệm khi g bất kỳ

Khi p = 19 và g = 2, chúng ta có phần tử nguyên thủy của nhóm nhân * 19 Các giá trị 2t và log 2t được trình bày trong bảng 2.4, với tất cả các phép tính được thực hiện theo modulo 19.

Bảng 2.4 Giá trị hàm mũ và Logarit rời rạc cơ số 2 của các phân tử trong nhóm nhân * 19 t 1 2 3 4 5 6 7 8 9

Cả hàm mũ và hàm logarit rời rạc đều không phải là hàm đồng biến và thuộc loại hàm phi tuyến Khi đối số tăng, kết quả của hai hàm này tạo ra các giá trị với phân bố ngẫu nhiên.

Một số tính chất của hàm logarit rời rạc [4] log g (log g log g ) mod 1 x bc b c p log g b (log g log g ) mod 1 x b c p

Bài toán logarit rời rạc không phải lúc nào cũng khó, độ khó của nó phụ thuộc vào các nhóm nhân được lựa chọn

Các hệ mật dựa trên phép logarit rời rạc thường chọn các nhóm nhân * p, với p là số nguyên tố lớn Để tăng cường bảo mật, p thường được chọn là số nguyên tố an toàn, có dạng p = 2q - 1, trong đó q là số nguyên tố lớn Điều này đảm bảo rằng p - 1 = 2q có phân tích thành tích của các số nguyên tố lớn, làm cho việc giải bài toán logarit rời rạc bằng thuật toán Pohlig - Hellman trở nên khó khăn hơn.

Bài toán logarit rời rạc là một thách thức lớn, trong khi bài toán lũy thừa rời rạc lại đơn giản hơn, có thể giải quyết bằng thuật toán nhân và bình phương Cả hai bài toán này tương tự như việc phân tích thừa số và phép nhân các số nguyên, và đều có ứng dụng quan trọng trong việc xây dựng cấu trúc cho hệ mật mã.

Hệ mật Pohlig-Hellman là một hệ mật sử dụng bài toán logarit rời rạc, có thể tóm tắt hệ mật này như sau [36], [38]:

- Chọn p là một số nguyên tố lớn

- Phép mã hóa thực hiện theo phương trình đồng dư sau: e mod cm p (2.11)

- Phép giải mã được thực hiện theo phương trình sau: e mod mc p (2.12)

Trong đó: m là bản rõ; c là bản mã; e là số mũ mã hóa và d là số mũ giải mã

Số mũ mã hóa e (hay khóa) phải là số khả nghịch và do đó e phải thỏa mãn điều kiện sau [40]: gcd( , ( ))e p 1 (2.13)

Với ( )p là hàm Phi-Euler, cách tính ( )p có trong [36] Kết quả của hàm ( )p cho ta biết số lượng các số là nguyên tố cùng nhau với p

Do p là số nguyên tố nên ( )p  p 1 và như thế số mũ giải mã tương ứng d được tính từ phép nghịch đảo của emod ( ) p như sau [36]:

Hệ mật Pohlig-Hellman có thể được áp dụng như một hệ mật khóa bí mật thông thường do khả năng dễ dàng xác định d từ e và p Ngay cả khi giữ bí mật số nguyên tố 𝑝, nó vẫn có thể bị suy ra từ kích thước của khối bản mã.

2.3.2 Đề xuất một phương pháp xây dựng hệ mật mã lai ghép

Hệ mật mã hóa sử dụng sơ đồ Feistel cân bằng với các khâu IP và IP -1 là các bảng hoán vị 64 bit Điều này tạo ra tổng cộng 64! cách lựa chọn khác nhau cho quá trình mã hóa.

Trong mục này, nghiên cứu sinh chọn các bảng hoán vị theo cách của hệ mật DES, như trong bảng 2.5 và bảng 2.6 [40]

Bảng 2.5 Hoán vị ban đầu (IP)

Hình 2.4 Sơ đồ khối của hệ mật

Hình 2.5 Sơ đồ mã hóa của hệ mật

Sơ đồ mã hóa thực hiện bốn vòng mã hóa với bốn khóa riêng biệt e1, e2, e3 và e4 Số vòng mã hóa được lựa chọn tùy thuộc vào từng hệ mật, chẳng hạn như DES.

HÀM BĂM SỬ DỤNG CÁC CẤP SỐ NHÂN CYCLIC

Hình 2.7 Sơ đồ bộ mã hóa

Dữ liệu bản rõ (64 bít)

Dữ liệu mã hóa (64 bít)

NCS nghiên cứu phát triển hàm băm kép MDC-2 với điểm mới là áp dụng các cấp số nhân cyclic cho hàm mã hóa và tạo khóa Mật mã E được thiết kế theo 16 vòng mã hóa dựa trên mô hình mạng hoán vị thay thế Feistel, như thể hiện trong hình 2.7.

Hàm mã hóa f được xây dựng trên cơ sở hệ mật sử dụng các cấp số nhân trên vành đa thức 2 [ ]/x x n 1với n 2 5 32

Các khóa cho các vòng mã hóa được tạo ra từ các CGP, với việc lựa chọn các CGP trên vành đa thức có hai lớp kề nhằm tối ưu hóa số lượng khóa được tạo ra.

2.4.2 Xây dựng hàm băm và kết quả mô phỏng

Sơ đồ hàm băm được sử dụng là sơ đồ MDC-2 truyền thống đã được giới thiệu trong hình 1.10 ở chương I

Các khóa K 1 K 16 trong sơ đồ mã hóa có độ dài 48 bit (như trong sơ đồ MDC-

2 dùng với DES truyền thống) Chúng ta sử dụng các CGP trên vành đa thức

Để tạo khóa, cần loại bỏ 5 bit từ các phần tử trong CGP, nhằm đạt độ dài 48 bit trước khi đưa vào sơ đồ mã hóa.

Cách tạo khóa: Các khóa K i là các phần tử trong một CGP được chọn như sau [24]:

K là một đa thức có trọng số lẻ với bậc degK a < 53, trong đó K 0 là phần tử nguyên thủy của nhóm nhân cyclic có cấp 2^52 - 1, tương ứng với số lượng khóa có thể có Do số lượng khóa rất lớn, chỉ 16 khóa đầu tiên được chọn để sử dụng trong mô phỏng tính toán Cụ thể, ta chọn K 0 = 1 + x + x^3 và K a = 1 + x + x^2.

Phần tử đầu của CGP (cũng là khóa đầu tiên) là: K 1  K K 0 a   1 x 4  x 5  (045) (Chú ý giá trị (045) là dạng biểu diễn số mũ của đa thức)

Khối trích chọn trong sơ đồ MDC-2 thực hiện việc trích chọn 53 bit từ 64 bit mã băm đầu ra Quá trình này bao gồm việc loại bỏ các bit ở vị trí 8, 16 và 24.

Bảng 2.9 trình bày kết quả phân bố của 16 hàm băm khi chỉ thay đổi một bit dữ liệu trong khối bản tin rõ ban đầu Để dễ dàng quan sát, chúng tôi chỉ thực hiện việc thay đổi 1 bit trong chuỗi bản tin đầu tiên của khối.

Mỗi bản tin được cấu thành từ 10 khối, với mỗi khối có độ dài 128 bit Các hàm băm sử dụng một bộ khóa khởi tạo (IV) giống nhau.

Phần tử sinh của khóa khởi tạo: K i   1 x 7  x 14  x 21  x 29

Khóa đầu tiên (cũng là khóa khởi tạo): K IV K K a i

Khối bản tin đầu tiên được xây dựng như sau:

Khối 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 (mỗi bản tin có độ dài 128 bit)

Bảng 2.9 Khoảng cách Hamming d H (MD 1 , MD i ) khi các khối dữ liệu khác khối ban đầu 1 bit

TT Bản rõ M i Giá trị băm MD i d H

1 0123456789ABCDEF0123456789ABCDEF 298093C81BC5EBFE2AC4E86FCF112DD0 0

3 0323456789ABCDEF0123456789ABCDEF 3E862FCD550B64FA94C25CDED6945469 60

4 0133456789ABCDEF0123456789ABCDEF 588D22CF0A2FA1BC76F6EF658DB0AB5E 50

5 0127456789ABCDEF0123456789ABCDEF 2E1A455CB0F0CC89F1FC77DF10D1C2EE 73

6 0123556789ABCDEF0123456789ABCDEF 714BBC56936EF3F6B4A479B2E6DE7769 62

7 0123416789ABCDEF0123456789ABCDEF 85DAB3D4299BCC894964D9B1C0E90AD1 59

10 01234567C9ABCDEF0123456789ABCDEF 8EDB126573D24939EEEEF41106BF9106 66

11 0123456781ABCDEF0123456789ABCDEF 3AE65217617B38DB5C740D2847ED6346 69

12 0123456789BBCDEF0123456789ABCDEF A751F31BAB3930FAA7E13B0E96DA804A 64

14 0123456789AB4DEF0123456789ABCDEF 6FFA0FA0F5CFB0AD8FE41A7C002D0994 59

15 0123456789ABCFEF0123456789ABCDEF 8AB1D23727889FE74808F40DDD85DB99 59

16 0123456789ABCDFF0123456789ABCDEF 08296F57ABFCC970B5B9AD1DF69AAB04 65

17 0123456789ABCDED0123456789ABCDEF 0B50C87BF40471339DB52D70F4EBF732 73

(Ghi chú: Trong bảng 2.9 và bảng 2.10, các ký tự hexa in đậm chứa các bit thay đổi)

Thay đổi từng bit từ bit 1 đến bit 128 của bản tin đầu vào M1, sau đó đưa vào hàm băm để tính khoảng cách Hamming dH(MD, MD1, i) cho mỗi lần thay đổi Cuối cùng, tính toán khoảng cách Hamming trung bình giữa các giá trị băm và giá trị băm ban đầu.

Bảng 2.10 là kết quả tính toán phân bố của hàm băm khi thay đổi khóa khởi tạo

K, 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ẻ [32] Bản tin đầu vào gồm 10 khối 128 bit được tạo ngẫu nhiên

Khóa được tạo từ CGP có chiều dài 53 bit, tương ứng với 14 ký tự hexa Tuy nhiên, chỉ 13 ký tự đầu tiên là dạng hexa, trong khi ký tự cuối cùng chỉ đại diện cho 1 bit, có giá trị "1" hoặc "0".

Chọn phần tử đầu của cấp số nhân tạo khóa là:

Tương tự cách tính khóa như trên ta có khóa đầu tiên K 1 là:

Các khóa K_i khác với khóa đầu tiên K_1 2 bit trong hệ hexa Vị trí các bit “1” trong các khóa K_i tương ứng với số mũ của x trong đa thức sinh tạo khóa.

Các khóa K i khác với khóa đầu tiên K 1 2 bit trong hệ hexa, và vị trí của các bit “1” trong các khóa K i tương ứng với số mũ của x trong đa thức sinh tạo khóa.

Bảng 2.10 Khoảng cách Hamming d H (MD 1 , MD i ) giữa các cặp giá trị băm khi thay đổi khóa

TT Khóa Giá trị băm

1 023456789ABCD.1 A0A9F69E88EF6FE00D19FE1E04CFC2B1 76

5 133456789ABCD.1 72ACDC838C13030E1B7AE1EB8CAF9AE6 58

6 103456789ABCD.1 8CDC97B7EA3E03E6AF9BB9144BA1914F 65

9 122456789ABCD.1 E4727086AF7B2E34DB3F2A0AE17158BF 68

15 123056789ABCD.1 CFC2568BA4A3E54F1FE80C5CBFC452A1 67

17 123446789ABCD.1 C9FE79619790ED396EAD78BE6FB6DBE7 65

21 123457789ABCD.1 46DA05181A755CDFB779C733FB59C9CD 55

24 12345E789ABCD.1 FAFDE0BBCA1B02062E0C41EA51EAA4CA 59

36 123456781ABCD.1 C2ED02CC3FEF80EACB2D9DDD0E9FF6A9 64

40 1234567892BCD.1 C23FFF533ABD9CAF11CE8BD3B7DE4A46 71

45 123456789ABDD.1 66390EDB9633D9DD84EABE37DA6D3F80 67

47 123456789AB8D.1 2E20F17397ECD59C88DC48F4EBA669EC 73

52 123456789ABC5.1 3241034DEE9B6DF8A646133F3EB58FC1 62

Khoảng cách Hamming trung bình:

Bằng cách áp dụng cấu trúc nhóm nhân và cấp số nhân cyclic trên vành đa thức, chúng ta có thể phát triển một hàm băm MDC-2 cho mật mã khối Hàm băm này dựa trên mạng hoán vị Feistel và mang lại một số ưu điểm nổi bật.

- Hàm băm có độ khuếch tán rất tốt, thể hiện ở các khoảng cách Hamming đã tính được theo các biểu thức (2.27) và (2.28)

- Số lượng khóa tìm được rất nhiều (N k 2 52 1 ) theo công thức tính toán [4] đáp ứng yêu cầu thực tế (vì khóa có độ dài 53 bít)

- Việc tính toán khá đơn giản, các khóa được tạo từ các cấp số nhân cyclic và có thể thực hiện được dễ dàng khi thiết kế và xây dựng mạch phần cứng (do ở đây, việc mã hóa có thể được thực hiện được chỉ với thuật toán nhân và bình phương đa thức).

KẾT LUẬN CHƯƠNG II

Trong chương này, nghiên cứu sinh giới thiệu một số hệ mật và hàm băm mới Hàm băm được xây dựng dựa trên hệ mật theo sơ đồ Lai-Massey, đạt được độ khuếch tán khoảng 32 bít khi mã băm có độ dài 64 bít.

Hệ mật lai ghép được sử dụng để xây dựng hàm băm 64 bit, kết hợp giữa phép mã hóa của hệ mật Pohlig-Hellman và sơ đồ mã hóa theo mạng Feistel cân bằng, mang lại độ khuếch tán xấp xỉ 32 bit.

Hàm băm MDC-2 (128 bít) được phát triển dựa trên khối mã hóa sử dụng cấp số nhân cyclic và thuật toán Feistel đã được điều chỉnh Hàm này có nhiều ưu điểm, bao gồm số lượng khóa lớn, mạch điện phần cứng đơn giản và dễ dàng trong tính toán cũng như thiết kế Đặc biệt, hàm băm này thể hiện độ khuếch tán tốt với khoảng cách Hamming xấp xỉ 64 bít, tương đương với một nửa chiều dài của mã băm.

Các kết quả nghiên cứu này được trình bày ở các bài báo và bài hội thảo số

[2], [3], [5] trong Danh mục các công trình công bố của tác giả

Với các kết quả bước đầu này, nghiên cứu sinh tiếp tục đề xuất xây dựng các hàm băm mở rộng mới ở chương sau.

XÂY DỰNG MỘT LỚP CÁC HÀM BĂM MỞ RỘNG MỚI

GIỚI THIỆU

Trong chương II, NCS đã phát triển các hệ mật và hàm băm mới với độ dài từ 64 bít đến 128 bít Những kết quả này được thực hiện nhằm khảo sát các thuật toán và lưu đồ trước khi tiến hành xây dựng các hàm băm có độ dài lớn hơn.

Các hàm băm mới được mô phỏng trong chương II thể hiện nhiều đặc tính ưu việt, bao gồm độ khuếch tán tốt, khả năng tạo ra số lượng khóa lớn, và mạch điện phần cứng đơn giản, dễ thiết kế và xây dựng.

Trên cơ sở việc khảo sát đó, trong chương III này, nghiên cứu sinh đề xuất xây dựng một số hàm băm mở rộng mới:

Hàm băm mở rộng MDC-3 được xây dựng với độ dài mã băm 384 bít, dựa trên hệ mật mã khối có kích thước 128 bít vào và 128 bít ra Sơ đồ hàm băm này bao gồm 3 nhánh, mỗi nhánh sử dụng một hàm mã hóa riêng, với dữ liệu đầu vào và đầu ra của từng nhánh đều có độ dài 128 bít.

Hàm băm mở rộng MDC-4 được phát triển với cấu trúc gồm 4 nhánh, mỗi nhánh dài 128 bít, tạo ra mã băm cuối cùng với độ dài 512 bít Khác với hàm băm kép MDC-4 thông thường, chỉ lặp lại hai lần hàm băm MDC-2 và có độ dài 128 bít, MDC-4 tạo ra sự phụ thuộc lẫn nhau thông qua việc kết hợp các nửa mã băm ở các nhánh theo từng đôi Điều này giúp nâng cao độ an toàn và bảo mật cho các ứng dụng sử dụng hàm băm.

Nghiên cứu và phát triển hàm băm mở rộng MDC 512 bít được thực hiện dựa trên sơ đồ Miyaguchi - Preneel Sơ đồ này nhằm cải thiện hiệu suất và độ an toàn của các hàm băm, đồng thời áp dụng phương pháp mã hóa qua mạng để tối ưu hóa quy trình.

Feistel bốn nhánh không cân bằng sử dụng hàm mã hóa và các khóa con cho các vòng mã hóa, dựa trên cấp số nhân cyclic của vành đa thức chẵn 2[x]/(x^n + 1) với n = 6, tương ứng với 64.

Các hàm băm áp dụng nhiều lưu đồ mã hóa khác nhau như Feistel, Lai-Massey và sự kết hợp giữa Lai-Massey và Feistel Mục tiêu chính của nghiên cứu này là khảo sát tính khuếch tán của các hàm băm, không phụ thuộc vào loại lưu đồ được sử dụng.

XÂY DỰNG HÀM BĂM MỞ RỘNG MỚI MDC-3

Nghiên cứu sinh đề xuất một phương pháp xây dựng hàm băm mới với độ dài đầu ra 384 bit, dựa trên các cấp số nhân cyclic của vành đa thức, như thể hiện trong hình 3.1.

Hình 3.1 Sơ đồ hàm băm MDC-3 đề xuất x i g E

Hình 3.2 Sơ đồ khối mật mã E

Dữ liệu bản rõ (128 bít)

Dữ liệu mã hóa (128 bít)

Bảng 3.1 Bảng hoán vị ban đầu (IP)

Khối E sẽ mã hóa cho chuỗi bit có độ dài 128 Trong sơ đồ hình 3.2 các hoán vị

IP và hoán vị đảo IP 1 được xây dựng và phát triển từ các bảng IP và IP 1 của hệ mật DES, cho trong bảng 3.1 và bảng 3.2

Khối mật mã E trong sơ đồ này được xây dựng theo dạng mô hình mạng hoán vị thay thế Feistel với một số thay đổi như trong hình 3.2

Hàm mã hóa f được phát triển dựa trên hệ mật sử dụng các CGP trên vành đa thức 2, tương tự như hàm băm MDC-2 đã đề cập ở chương II Trong sơ đồ hình 3.1, các khối bít đầu ra 128 bít được chia thành hai nửa 64 bít, nhằm ghép móc xích với nhau để đảm bảo rằng đầu ra sẽ thay đổi một nửa chiều dài mã băm Kết quả cụ thể sẽ được khảo sát thông qua mô phỏng trong phần tiếp theo.

Các khóa K i là các phần tử trong một cấp số nhân xây dựng trên vành đa thức có hai lớp kề cyclic và được chọn như sau [7]:

Bảng 3.2 Bảng hoán vị đảo (IP -1 )

Đa thức K a là một đa thức có trọng số lẻ, với degK a = 61 Phần tử K 0 là một phần tử nguyên thủy của nhóm nhân cyclic có cấp bằng 2 60 1 và cũng là một đa thức có trọng số lẻ.

Giả sử ta chọn khóa K 0 1 x x 3

Phần tử đầu của cấp số nhân và cũng là khóa đầu tiên tính được như sau:

K K K   x x  (3.2) (Ghi chú: (045) là dạng biểu diễn số mũ của đa thức)

Sơ đồ khối bộ mã hóa f với khóa K 1 như hình 3.3

Hình 3.3 Sơ đồ khối mã hóa f với khóa K 1 1 x 4 x 5

Một khâu mã hóa được thực hiện theo quy tắc:

Khối g trong sơ đồ hình 3.1 có chức năng trích xuất các khóa cho các vòng tiếp theo trong quá trình băm Khối mã hóa E trong sơ đồ sử dụng các khóa với độ dài nhất định.

Khóa 61 bit được tạo ra từ khối g ở bước thứ i, trong đó 60 bit đầu tiên được trích chọn từ 128 bit của H i 1, và bit thứ 61 là bit kiểm tra chẵn lẻ Việc trích chọn diễn ra liên tục với các bit cách nhau 2 vị trí trong H i 1, trong khoảng từ bit 1 đến bit 120 Dưới đây là một số kết quả đánh giá của hàm băm được xây dựng dựa trên các cấp số nhân cyclic.

Bảng 3.3 trình bày kết quả phân bố của 8 giá trị băm khi chỉ thay đổi một bit dữ liệu trong bản tin rõ so với bản tin gốc Để dễ dàng quan sát, chúng ta chỉ thực hiện việc thay đổi 1 bit trong khối bản tin đầu tiên, cụ thể là thay đổi lần lượt 8 bit đầu tiên.

Mỗi bản tin bao gồm 10 khối bản tin, mỗi khối có độ dài 384 bit Các hàm băm sử dụng cùng một bộ khóa K IV khởi tạo như sau:

Chọn phần tử sinh của khóa khởi tạo cho các hàm băm là đa thức sau:

Phần tử đầu của cấp số nhân (khóa đầu tiên) cũng là khóa khởi tạo sẽ là:

Bản tin rõ đầu tiên được xây dựng như sau:

Khối bản tin đầu tiên gồm 96 ký tự dạng hexa (tương ứng 384 bit vì mỗi ký gồm 4 bit) được chọn là:

Các khối bản tin tiếp theo (từ 2 đến 10) được tạo một cách ngẫu nhiên [31]

Bảng 3.3 Khoảng cách Hamming d H (MD 0 , MD i ) khi các bản tin dữ liệu khác bản tin ban đầu 1 bit

TT Bản rõ M i Giá trị băm MD i d H ( MD MD 0 , i )

7ECE10DB17D1D602020BAEDDCB5F7156 AEB620E7E2D66FE846E64F5CBBA1164D 402B9B64C1924FC6EC3D581FA0A02CAB

6A015AA71AC4DBD8E89319958FF7F5C8 EF1D2479AF24B358F77B1B9E699770DD 9D5AE5F266254C5A8B5721488554C9EC

6513440305C13EDCEDFF906359467E3B 2091676950CA2A41F89FD5CCB73A5C04 77F4C239EEAB4524A72BF7E98E01C36C

60137994C8749F533EB118F636E84E5E BC640D132F52B5AB759D9FBC92E21259 57B9726AA009A95EF4AD4E9B7BAE71E1

08B805C4A9CE3FAAFDBBA60FC0246050 163785DF6194774F2C710EE2D5AFF64E 04CAE51DA40A6AE0298AF00C90791304

090C76EBE74B45FCC82C9A28246DF6DA E81DF39FCA9F21C0282035B158E605C1 C5301F9EE97D5EE004FA4C975FC28073

1D506129653F7F851886702343CA6BAF 3966DB41633D3F7B3E8C7A06BF5864F0 C9285E90DEA037739E0E0A2E6E1D579F

FA583602F0CDF37B6E52D04FF5EDA698 653B5A4485F55AC2A5141887F64F7363 E7839362E8DD08B4E83A43A33B1CD90E

(Ghi chú: Trong bảng 3.3 và bảng 3.4, các ký tự hexa được in đậm chứa các bit thay đổi)

Thực hiện thay đổi từng bit từ bit 1 đến bit 384 của khối bản tin đầu tiên M0, sau đó tính toán khoảng cách Hamming dH(MD, MD0, i) cho mỗi lần thay đổi Cuối cùng, tính toán khoảng cách Hamming trung bình giữa các giá trị băm.

Ta thấy khoảng cách Hamming trung bình đạt xấp xỉ một nửa (192 bit) độ dài hàm băm

Bảng 3.4 trình bày kết quả phân bố của 8 giá trị băm khi thay đổi khóa khởi tạo K1, với mỗi khóa khác biệt so với khóa đầu tiên ở 2 bit Việc thay đổi 2 bit, tương ứng với 2 vị trí khác nhau, nhằm đảm bảo rằng đa thức sinh của khóa có trọng số lẻ.

Bản tin đầu vào bao gồm 10 khối dữ liệu 384 bit (từ MD 0 đến MD 9) được tạo ra ngẫu nhiên Để minh họa cho dễ hiểu, chúng ta sẽ chọn phần tử đầu tiên của chuỗi khóa.

K a = 1 Phần tử sinh tạo khoá cũng là khoá đầu tiên K 1 là:

Ta có trọng số của khóa K 1 : W(K 1 ) 33đảm bảo là một số lẻ

Khóa có chiều dài 61 bit, do đó khi mô tả khóa bằng 16 ký tự hexa, chỉ có 15 ký tự đầu là dạng hexa, trong khi ký tự cuối cùng chỉ đại diện cho 1 bit với giá trị “1” hoặc “0”.

- Vị trí các bit “1” trong các khóaK 1 tương ứng là số mũ của x trong đa thức sinh tạo khóa:

Thực hiện thay đổi từng bit từ bit 1 đến bit 60 của khóa K1, trong khi bit 61 được sử dụng để kiểm tra tính chẵn lẻ Sau đó, tính toán khoảng cách Hamming trung bình giữa các giá trị băm và giá trị băm ban đầu.

Bảng 3.4 Khoảng cách Hamming d H (MD 0 , MD i ) của 8 mã băm với mã băm ban đầu khi các khóa khác khóa K 1 2 bit

TT Khóa K i Giá trị băm MD i d H ( MD MD 0 , i )

0 123456789ABCDEF1 102DFDDAF8977EBA12BC607A6486DEEAE7E6630BC8D8CD7A

9EC9EDFE90898CECE6B2ECB21D6A0B3CABE2D3E4BC639289 0

815E2CF878ABA440C92F4EDBFF6CD12FDF1EF332740F2783 176

1669420D2BE16AD929CB59121A3FEF3126D41238C34AA888 194

3 523456789ABCDEF0 6DBF778AD492EDBC21B9DE2B77D9DA8C6EAF90FC7960B177 184

D572A93A8BE4EAAD438EE1C9502D7694489F0F88EEE23AA5

5 133456789ABCDEF0 ED0567AD1F80DAC26CDBBBA8D8319DF611602A2F3527BD29

CB94CC8897EEE4B205ECD5B8AD57A2F3739DCBF1859167E7 212

6 103456789ABCDEF0 79EBDE78580DA8D2AF3043136B5519C19618C40FA383AF10

54AE3364958586354C06AC251C79578DCD2BD029B4632AEC 176

7 163456789ABCDEF0 4EB307D302DFBC7192BE0C1F9E27B2CA3A7B881C52420A67

9F46423A66BFEF9ECAA0AFC79967BB118064E05971AE6822 192

Bảng 3.5 liệt kê trọng số (chiều dài) của các khóa trong quá trình băm, thực hiện với ba lần thay đổi khóa đầu tiên Do bản tin có 10 khối, sẽ có 10 khóa tương ứng với 10 bước băm, trong đó khóa đầu tiên đã được chọn trước Từ bảng 3.5, có thể thấy rằng tất cả các khóa ở các bước băm đều có trọng số lẻ, đảm bảo điều kiện tạo khóa.

Bảng 3.5 Trọng số của các khóa tại các bước băm

Khóa khởi đầu K i 123456789ABCDEF1 023456789ABCDEF0 323456789ABCDEF0

Trọng số của khóa tại các bước băm

Để tăng độ dài mã băm và hạn chế tấn công ngày sinh nhật, NCS đã phát triển lược đồ hàm băm mới (MDC-3) với độ dài 384 bit Lược đồ này sử dụng hàm mật mã dựa trên các cấp số nhân cyclic trong vành đa thức, mang lại nhiều ưu điểm như khả năng tạo ra số lượng khóa lớn và mạch điện phần cứng đơn giản với các thanh ghi dịch và bộ cộng module 2 Kết quả mô phỏng cho thấy hàm băm này có độ khuếch tán tốt, đạt gần một nửa chiều dài mã băm khi thay đổi dữ liệu hoặc khóa, với khoảng cách mã Hamming trung bình xấp xỉ 192 bit Tuy nhiên, để có đánh giá toàn diện hơn, cần thực hiện thêm các nghiên cứu về khả năng xung đột.

HÀM BĂM DỰA TRÊN HỆ MẬT MÃ KHỐI KẾT HỢP SƠ ĐỒ LAI-

Các hàm băm phổ biến hiện nay chủ yếu thuộc họ MD, như HAVAL, MD4, MD5, PANAMA, RIPEMD, SHA và VEST Trong số đó, MD5 và SHA-1 nổi bật với số vòng mã hóa cao, lần lượt là 64 và 80 vòng Các hàm mật mã này yêu cầu tài nguyên phần cứng và tốc độ xử lý nhất định do quy trình mã hóa phức tạp.

Nghiên cứu sinh đã đề xuất một hệ mật mã khối kết hợp giữa sơ đồ Lai - Massey và sơ đồ Feistel, nhằm xây dựng một hệ mật đơn giản nhưng vẫn đảm bảo yêu cầu về độ khuếch tán tốt, cũng như dễ dàng mã hóa và giải mã Hệ mật này sau đó được ứng dụng trong việc xây dựng hàm băm.

3.3.1 Hệ mật mã khối kết hợp sơ đồ LAI-MASSEY và FEISTEL

Sơ đồ mã hóa Feistel cân bằng có những ưu điểm nổi bật như: quy trình mã hóa và giải mã sử dụng chung một sơ đồ, chỉ khác nhau ở thứ tự khóa con, giúp tiết kiệm tài nguyên cho phần cứng; và hàm mã hóa f có thể được chọn với độ khó tùy ý mà không cần tìm hàm nghịch đảo Tuy nhiên, nhược điểm của nó là mỗi vòng mã chỉ biến đổi một nửa khối dữ liệu, dẫn đến việc cần nhiều vòng mã hóa để đảm bảo độ khuếch tán, làm giảm tốc độ mã hóa Hơn nữa, các hệ mật dựa trên mạng Feistel còn tồn tại lớp khóa tương đương, khiến không gian khóa bị giảm đi một nửa.

Sơ đồ Lai-Massey cho phép thực hiện mã hóa trên cả hai nửa dữ liệu trong mỗi vòng, từ đó tăng tốc độ khuếch tán Đồng thời, phương pháp này không yêu cầu tính toán hàm ngược của hàm mã hóa f.

Nghiên cứu sinh đã đề xuất một hệ mật kết hợp, sử dụng mười sáu vòng mã hóa xen kẽ giữa sơ đồ Lai-Massey và sơ đồ Feistel, nhằm tận dụng các ưu điểm của cả hai phương pháp.

Các vòng mã hóa lẻ được thực hiện theo sơ đồ Lai-Massey và có thuật toán như sau [31]:

Và các vòng mã hóa chẵn thực hiện theo sơ đồ Feistel với thuật toán như sau [31]:

Hình 3.4 Sơ đồ mã hóa của hệ mật

Các hàm mã hóa f trong sơ đồ sử dụng các CGP trên vành đa thức 2[x]/(x^n + 1) với n = 2, là một vành đặc biệt không được xem xét trong lý thuyết mã sửa sai.

Các vành đa thức có thể được áp dụng trong mật mã, với hệ mật đề xuất chọn n = 2^6 = 64, cho phép f hoạt động với các khối 64 bit Các CGP sẽ có dạng như sau:

A a x x i (3.8) thực chất đây là một lớp biến đổi đặc biệt được đặc trưng bởi ma trận luân hoàn như sau [8]:

Trong ma trận A, mỗi hàng tương ứng với một đa thức, trong đó các phần tử a_i là các hệ số của x^i trong đa thức đó Chẳng hạn, hàng đầu tiên của A đại diện cho đa thức a(x) = 1 + x + 7x^2 + 35x^3 + 60x^4, với các hệ số a_i = 1 cho i = 0, 1, 2, 3, 4 và a_i = 0 cho các i khác Nếu chọn a(x) thuộc nhóm nhân G và có trọng số lẻ, ma trận A sẽ có ma trận nghịch đảo A^(-1) Việc sử dụng ma trận A để mã hóa cho phép giải mã bằng cách áp dụng ma trận nghịch đảo A^(-1), được xác định theo một phương pháp cụ thể.

A A (3.10) Điều này là do A có cấp n tức là: A n I hay AA n 1 I, với I là ma trận đơn vị

Sơ đồ mạch mã hóa với CGP có số hạng đầu là đa thức

( ) 1 a x    x x x x và công bội x như trong hình 3.5

Các khóa con k i trong sơ đồ hình 3.4 được tạo ra từ các CGP trên các vành đa thức có hai lớp kề cyclic Những khóa k i này thực chất là các đa thức đầu vào x( ) của các ma trận mã hóa A, do đó, chúng cần phải có trọng số lẻ.

Các vành đa thức có hai lớp kề cyclic được phân tích duy nhất thành tích của hai đa thức bất khả quy như sau [29]:

Việc tạo khóa trên vành đa thức có hai lớp kề cyclic được lựa chọn do các đa thức trong vành này có cấp cực đại được xác định là maxorda x( ) = 2^n - 1 - 1 Số lượng này lớn khi n tăng, cho phép tạo ra các CGP với số lượng phần tử (hay số lượng khóa) rất lớn.

Hình 3.5 Mạch mã hóa f với a x( ) 1   x x 7 x 35 x 60

Chọn vành đa thức có hai lớp kề cyclic x^2 + 1, từ đó 16 khóa k_i cho các vòng mã hóa được xác định là 16 phần tử đầu tiên trong một CGP được xây dựng theo phương pháp đã nêu.

Trong đóK a là một đa thức có trọng số lẻ tùy ý sao cho degK a 61.

K là một phần tử nguyên thủy thuộc nhóm nhân G với cấp độ 2^60 - 1, đồng thời là một đa thức có trọng số lẻ, đảm bảo rằng các khóa k_i sẽ có trọng số lẻ.

Lý do chọn vànhx 61 1để tạo khóa là vì: các đa thức tạo khóa phải thuộc vành

64 1 x  và nên chọn vành đa thức có hai lớp kề x n 1 với n gần bằng 64

Tiến hành khảo sát tính khuếch tán của hệ mật đề xuất khi thay đổi dữ liệu đầu vào và thay đổi khóa [31]

Chọn đa thức đầu là đa thức K a(Hex) = 123456789ABCDEF.1, và đa thức sinh

K = x + x với W K(a) = 33 Chú ý rằng 15 ký tự đầu tiên của K a là dạng hexa, tổng cộng có 60 bit, trong đó bit thứ 61 là bit kiểm tra lẻ Mô tả K a như sau, với vị trí các bit được xác định rõ ràng.

“1” tương ứng là số mũ của x i trong đa thức K a

K a (Hex) = 1 2 F 1 Bít 61 (kiểm tra chẵn lẻ)

Bản rõ ban đầu M gồm 32 ký tự hexa tương đương 128 bit:

Bảng 3.6 trình bày kết quả tính toán khoảng cách Hamming, phản ánh độ khuếch tán giữa các bản mã trong hệ mật khi đầu vào thay đổi 1 bit so với bản tin gốc M, với việc thay đổi từng bit từ 1 đến 128.

Khoảng cách Hamming trung bình giữa các bản mã của 128 lần thay đổi bit dữ liệu tính được như biểu thức (3.12):

Bảng 3.7 trình bày kết quả tính toán độ khuếch tán của hệ mật khi thay đổi khóa K a, với mỗi lần thay đổi 2 bit liên tiếp so với khóa ban đầu Đồng thời, bản rõ đầu vào M được giữ nguyên như trước.

Sở dĩ ta phải thay đổi 2 bit (tương ứng thay đổi 2 vị trí) là để đảm bảo khóa luôn có trọng số lẻ (như trong cột W(K a ) của bảng 3.7)

Ghi chú: Trong các bảng 3.6 và 3.7, các ký tự hexa in đậm chứa bit dữ liệu hoặc bit khóa đã thay đổi

Bảng 3.6 Khoảng cách Hamming d H (C 0 ,C I )giữa các cặp bản mã khi bản rõ khác nhau 1 bit

TT Bản rõ M i Bản mã C i d H ( C 0 , C i )

14797EC36F8645BD 58AC82BF85081FBB 62

21FCAD88DA09FF50 FE0F7AC0C1AA0264 67 Độ khuếch tán trung bình giữa các bản mã khi thay đổi khóa được tính:

Bảng 3.7 Khoảng cách Hamming d H (C 0 ,C I )giữa các cặp bản mã khi thay đổi khóa

TT Các khóa K a Bản mã C i d H ( C 0 , C i ) W( K a )

XÂY DỰNG HÀM BĂM MỞ RỘNG MỚI MDC 512 BÍT

3.4.1 Mô tả hệ mật mã khối 256 bít

Hệ mật sử dụng sơ đồ khối mã hóa như hình 3.7, trong đó mã hóa các khối bản rõ 256 bit và tạo ra bản mã cũng có độ dài 256 bit Hệ mật này bao gồm hai khóa bí mật k0 và ka, mỗi khóa có độ dài 64 bit, được tính toán để tạo thành khóa ki Hai khóa này là các đa thức tạo cấp số nhân cyclic, đóng vai trò là khóa con cho hệ mật.

Hình 3.7 Sơ đồ khối của hệ mật a (64 bits) f b (64 bits) c (64 bits) d (64 bits) f f f a’ (64 bits) b’ (64 bits) c’ (64 bits) d’ (64 bits) k 1 k 2 k 15 k 16

(256 bits) fo 1 fo 2 fo 15 fo 16

Hình 3.8 Sơ đồ mã hóa của hệ mật

Hệ mật mã khối dựa trên mạng Feistel bốn nhánh không cân bằng sử dụng sơ đồ mã hóa với mỗi nhánh có độ dài 64 bít.

Quá trình mã hóa trải qua 16 vòng, mỗi vòng mã hóa thực hiện theo thuật toán sau:

Quá trình giải mã diễn ra theo chiều ngược lại, trong đó thứ tự các khóa con được sắp xếp từ k đến k và thực hiện qua 16 vòng Mỗi vòng mã hóa được thực hiện theo một thuật toán cụ thể.

Trong sơ đồ hình 3.8, hàm mã hóa f có bốn đầu vào: ba đầu vào dữ liệu (b c i, i và d i) và một đầu vào khóa k i Tất cả các đầu vào và đầu ra đều có độ dài 64 bit Quá trình mã hóa được thực hiện thông qua các CGP trên vành đa thức 2[x]/(x^n + 1).

Cấu trúc của CGP sử dụng trong hàm f có dạng:

Trong bài viết này, k(x) là đa thức đầu và cũng là các khóa con của các vòng mã hóa Đa thức g(x) là một đa thức sinh có cấp 64, với tổng cộng 2^64 - 2^62 đa thức cấp 64 Để đơn giản, ta có thể chọn g(x) = x.

Ta có thể mô tảA i theo dạng ma trận sau [25]:

Các hàng của ma trận A đại diện cho các đa thức của CGP, trong đó các phần tử a_t trong một hàng là hệ số của đơn thức x_t tương ứng trong đa thức Ví dụ, hàng đầu tiên của ma trận A sẽ chứa các hệ số cho đa thức đầu tiên trong CGP.

1 của A là đa thức k x x i ( ) 0   1 x 2 x 3 thì các hệ số a t của hàng 1 sẽ là a t 1 với 0,2,3 t và a t 0 với các giá trị t còn lại [48]

Tại các vòng mã hóa i, hàm f thực hiện các phép tính sau:

Với A i T là ma trận chuyển vị của A i Ma trậnA i được tính như (3.21)

Sơ đồ mạch thực hiện hàm f như trong hình 3.9

Dịch 64 nhịp Khóa con k i (64 bit)

Hình 3.9 Mạch mã hóa hàm f

Hoạt động của mạch mã hóa hình 3.9 diễn ra khi các bit của khóa con k i được nạp vào thanh ghi 64 bit Ba đầu vào b c d i i i sau khi qua mạch MAJ sẽ tạo ra một chuỗi bit tương ứng với đa thức m i Các hệ số p j của đa thức m i sẽ liên quan đến các khâu p j trong mạch mã hóa, và hoạt động của các khâu này phụ thuộc vào các hệ số p j của đa thức m i.

+ p j nối tắt nếu hệ số p j "1",

+ p j hở mạch nếu hệ số p j "0"

Các bit trong thanh ghi sẽ được dịch vòng và sau 64 nhịp dịch ta sẽ có mã đầu ra có độ dài 64 bit

Hình 3.10 minh họa một mạch điện mã hóa với m i = +1 x 3 x 63, biểu diễn dưới dạng số mũ của đa thức Giá trị m i được tính dựa trên hàm MAJ theo biểu thức (3.22) Trong trường hợp này, các giá trị p được xác định là p p p = "1", trong khi p = "0" đối với các j khác.

Tất cả các khóa con \( k_i \) được tạo ra từ các CGP trên vành \( \mathbb{Z}/x^{64}+1 \) Do \( k_i \) là phần tử đầu trong CGP \( A_i \), nên nó phải có trọng số lẻ Cấu trúc của các khóa con \( k_i \) được định nghĩa như sau: \( k_i = \{ k_{0} a_i \mod x^{64}+1, i=1,2,3, ,16 \} \).

Dịch 64 nhịp Khóa con k i (64 bit)

Hình 3.10 Mạch mã hóa với m i   1 x 3 x 63

Trong đó, k 0 là đa thức đầu, k a là đa thức sinh Để k i có trọng số lẻ thì cả k 0 và k a cùng phải có trọng số lẻ

Số CGP với 64 tính sẽ đạt 2^125, nhưng do sơ đồ mã hóa chỉ sử dụng 16 vòng, nên CGP cần tối thiểu 16 phần tử Do đó, số lượng CGP có thể chọn thực tế sẽ nhiều hơn con số lý thuyết này.

Trong sơ đồ mã hóa hình 3.8, có sự khác biệt so với sơ đồ Feistel 4 nhánh không cân bằng truyền thống, cụ thể là ở bước mã hóa thứ i, dữ liệu trong khối a i được cộng với khóa con k i Điều này nhằm ngăn chặn tình huống khi bản rõ đầu vào chỉ chứa bit "0" hoặc "1", dẫn đến việc bản mã đầu ra cũng chỉ toàn bit "0" hoặc "1".

3.4.2 Đánh giá độ khuếch tán của hệ mật

Tiến hành tính toán độ khuếch tán của hệ mật khi thay đổi dữ liệu bản rõ Để tạo khóa cho hệ mật, đa thức sinh k a và đa thức đầu k 0 được giữ cố định và lựa chọn như sau:

Bản rõ bao gồm 256 bit và được chọn và biểu diễn theo dạng hexa như sau:

Bảng 3.10 trình bày độ khuếch tán giữa các cặp bản mã trong một số bước tính toán khi thay đổi một bit của bản rõ j Cụ thể, nó thể hiện mối quan hệ giữa bản rõ tại bước j (M j) và bản mã tại bước j (C j), cùng với độ khuếch tán d H (C 0 ,C j).

71877CBA2367BA32 4AFA1EF5B894D0CA 02C3D5B87A1EF3D6 A6FF644BF1FF4010

0731F31001CE3563 EAAF1881A7FA55AC 1B6BF9E899E71AD5 0E4083A37AC7B4FA

8CAFFE01729B9EFE 0D4051BDA77C611A 5001A91E2E8D1358 6A2AAC26FB120CD5

Trong quá trình mô phỏng, mỗi lần chỉ thay đổi một bit trong bản rõ, bắt đầu từ bit số 1 đến bit thứ 256 Sau đó, ta tính toán khoảng cách Hamming trung bình, đây cũng chính là độ khuếch tán.

Kết quả tính toán khoảng cách mã Hamming d H (C C 0 , j ) của một vài bước thay đổi bản rõ như trong bảng 3.10

Chú ý trong các bảng 3.10 và bảng 3.12 các ký tự hexa in đậm là ký tự chứa bit bị thay đổi

Thực hiện 10 phép tính tương tự với tham số khóa k k 0 và a được chọn theo công thức (3.24), mỗi lần tạo ra một bản rõ ngẫu nhiên Trong mỗi phép tính, từng bit từ 1 đến 256 của bản rõ ban đầu được thay đổi lần lượt, và kết quả thu được được trình bày trong bảng 3.11.

Bảng 3.11 Kết quả của 10 lần tính độ khuếch tán khi thay đổi bản rõ t Bản rõ ban đầu M t Độ khuếch tán trung bình

1 BF621A5DCBA779FF81E36CD649F5CFB6

5BC3C8A3BF4A6AD7FB0D31585EE98F9F 127.92

95053977F3E8868C279794983DD18998 127.81 Độ khuếch tán trung bình của 10 lần tính toán:

KẾT LUẬN CHƯƠNG III

Trong chương này, nghiên cứu sinh tập trung vào xây dựng 3 hàm băm mở rộng mới với độ dài mã băm từ 384 đến 512 bít:

Hàm băm MDC-3 được thiết kế với cấu trúc ba nhánh, cho ra đầu ra dài 384 bit Nó dựa trên các cấp số nhân cyclic của vành đa thức và áp dụng mô hình mạng hoán vị thay thế Feistel với một số điều chỉnh Các mô phỏng cho thấy hàm băm này có khả năng khuếch tán tốt, đạt gần một nửa chiều dài mã băm khi thay đổi dữ liệu đầu vào hoặc khóa Hơn nữa, số lượng khóa có thể tạo ra rất phong phú, và thiết kế mạch điện phần cứng tương đối đơn giản.

- Hàm băm MDC-4 có độ dài mã băm 512 bít, sơ đồ tương tự như MDC-3 với

Hệ mật được xây dựng với 4 nhánh, mỗi nhánh 128 bít, sử dụng sơ đồ Lai - Massey kết hợp với sơ đồ Feistel Các hàm mã hóa và khối tạo khóa trong hệ thống này được phát triển từ các cấp số nhân cyclic trên vành đa thức Kết quả tính toán mô phỏng cho thấy tính chất tương tự như sơ đồ hàm băm MDC-3, với độ khuếch tán đạt khoảng 256 bít, tương đương với một nửa chiều dài mã băm.

Hàm băm MDC 512 bít được phát triển dựa trên hệ mật mã khóa đối xứng 256 bít vào/256 bít ra, sử dụng sơ đồ mạng Feistel bốn nhánh không cân bằng Trong đó, hàm mã hóa và các khóa con của các vòng mã hóa được xây dựng dựa trên các cấp số nhân cyclic của vành đa thức chẵn 2 [ ]/x x n 1 với n2 Nghiên cứu sinh đã áp dụng hệ mật này để tạo ra một hàm băm không khóa mới với kích thước 512 bit.

Các kết quả nghiên cứu này được trình bày ở các bài báo và bài hội thảo số

[1], [4], [6] trong Danh mục các công trình công bố của tác giả.

KHẢ NĂNG ỨNG DỤNG CỦA HÀM BĂM XÂY DỰNG MỚI112 4.1 GIỚI THIỆU

CHỮ KÝ SỐ

Chữ ký số là một loại chữ ký điện tử, chứa thông tin đi kèm với dữ liệu như văn bản, hình ảnh và video, nhằm xác định chủ thể của dữ liệu Nó thường được gắn kèm với các thông điệp liên quan để đảm bảo tính xác thực.

Chữ ký số có nhiều hình thức đa dạng, bao gồm tên hoặc hình ảnh cá nhân, mã bí mật, và dữ liệu sinh trắc học như hình ảnh khuôn mặt, dấu vân tay, hay võng mạc, giúp xác thực danh tính người gửi Mỗi loại chữ ký số có mức độ an toàn khác nhau, ảnh hưởng đến tính bảo mật của dữ liệu điện tử.

Hình 4.1 Tạo một thông báo có ký bằng chữ ký số

Chữ ký số được tạo ra bằng cách kết hợp mã hóa khóa công khai và hàm băm Quy trình tạo và xác minh chữ ký được minh họa trong hình 4.1.

Ví dụ một dạng chữ ký số thông dụng là sơ đồ chữ ký số RSA

Bài toán xác thực có thể được xem là bài toán "đối ngẫu" với bài toán bảo mật Do đó, việc sử dụng thuật toán RSA theo hướng ngược lại cho phép chúng ta xây dựng một sơ đồ chữ ký số RSA hiệu quả.

Giả sử n = p.q , trong đó p và q là các số nguyên tố lớn có kích thước tương đương

Với K = (n, e, d) ta có D = d là khoá bí mật, E = (n, e) là khoá công khai, m là bản tin cần ký

Mã hóa khóa công khai 175ab1b5c7ed4e9f

Khóa bí mật của người gửi 175ab1b5c7ed4e9f

Thông báo đã được ký bằng chữ ký số

Tạo chữ ký: Ssig D ( )m m d modn

Kiểm tra chữ ký: er ( , )v E m S = đúng  m S e modn

Hình 4.2 Các bước kiểm tra một thông báo đã ký

Hoạt động của sơ đồ chữ ký RSA có thể mô tả như sau:

Trường hợp bản tin rõ m không cần bí mật:

A ký bản tin m và gửi cho B

B kiểm tra chữ ký của A

Ký: S A m d A modn A Kiểm tra: mS A e A modn A

Hình 4.3 Sơ đồ chữ ký số RSA không bí mật bản tin

Giả sử A muốn gửi cho B bản tin rõ m có xác thực bằng chữ ký số của mình Trước tiên A tính chữ ký số

Tóm lược đã mã Khóa công khai của người gửi a1b2c3d4e5f6opq7 Tóm lược thông báo đã được phục hồi

Sau đó A gửi cho B bộ đôi (m, S A ) B nhận được (m, S A ) và kiểm tra xem điều kiện mS A e A modn A có thoả mãn không Nếu thoả mãn, thì khi đó B khẳng định rằng er ( , )

E A A v m S nhận giá trị đúng và chấp nhận chữ ký của A trên m

Trường hợp bản tin rõ m cần giữ bí mật:

A tính: B tính: i S A m d A modn A i X M d B modn B ii X m S A ii X m S A iii M X e B modn B iii Kiểm tra mS A e A modn A

Hình 4.4 Sơ đồ chữ ký số RSA có bí mật bản tin

A ký bản tin m để được chữ ký S A Sau đó A dùng khoá mã công khai E B của

B thực hiện việc lập bản mã M = E B (m, S A ) và gửi đến B Khi nhận được bản mã M, B sử dụng khoá bí mật D B để giải mã M, từ đó thu được m và S A Sau đó, B tiến hành kiểm tra bằng thuật toán phù hợp.

Để xác nhận chữ ký của A, một lớp hàm băm mới được nghiên cứu và phát triển Các hàm băm này không chỉ sở hữu đầy đủ các tính chất cơ bản như tính nén và dễ dàng tính toán mà còn phù hợp với các sơ đồ chữ ký số theo yêu cầu sử dụng cụ thể Hơn nữa, chúng còn có những đặc điểm vượt trội, đặc biệt là tính khuếch tán tốt, đạt khoảng một nửa chiều.

Công bố EB dài mã băm cho thấy số lượng khóa tạo ra rất lớn, đồng thời mạch điện phần cứng có thể được thiết kế và chế tạo một cách đơn giản, điều này làm tăng tính khả thi trong việc ứng dụng để tạo chữ ký số.

Khi thiết kế hàm băm, việc đảm bảo độ an toàn cao là rất quan trọng, nhưng không phải là mục tiêu duy nhất Cần cân nhắc đến tốc độ băm và mức độ phức tạp khi thực hiện trên phần cứng và phần mềm Việc lựa chọn loại hàm băm và các bước đánh giá phù hợp phụ thuộc vào yêu cầu của ứng dụng, do đó, tầm quan trọng của ứng dụng sẽ quyết định thuật toán và các tham số hàm băm tương ứng.

Các hàm băm được đề xuất trong bài viết này có tính toán đơn giản và dễ thực hiện, với độ dài mã băm từ 384 đến 512 bít, cùng tính chất khuếch tán tốt, làm cho chúng phù hợp cho việc áp dụng vào các sơ đồ chữ ký số Chữ ký số thường được tạo ra từ sự kết hợp giữa thuật toán băm và mã hóa, do đó cần nhiều hàm băm khác nhau để đáp ứng các yêu cầu ứng dụng đa dạng Các hàm băm mở rộng được nghiên cứu trong luận án sẽ bổ sung vào thư viện hàm băm hiện tại, làm phong phú và đa dạng hóa nguồn tài nguyên này Đặc biệt, độ dài mã băm lớn của các hàm băm mới sẽ cải thiện bảo mật và thuận lợi hơn trong việc tạo chữ ký số.

Việc lựa chọn hàm băm và thuật toán mật mã khóa công khai phù hợp là rất quan trọng để đáp ứng yêu cầu về chữ ký số của từng tổ chức, cá nhân và doanh nghiệp Hiện tại, số lượng hàm băm vẫn còn hạn chế, vì vậy những hàm băm mới đang được nghiên cứu và đề xuất sẽ bổ sung vào ngân hàng hàm băm, giúp đa dạng hóa sự lựa chọn và xây dựng chữ ký số phù hợp với nhu cầu sử dụng.

Các hàm băm mở rộng do nghiên cứu sinh phát triển có thể áp dụng hiệu quả vào các sơ đồ chữ ký kép nhờ vào những ưu điểm nổi bật mà chúng mang lại.

Chữ ký kép có vai trò quan trọng trong việc kết nối hai thông báo gửi đến hai bên nhận khác nhau Ví dụ, khi khách hàng gửi thông tin đặt hàng (OI) cho người bán và đồng thời gửi thông tin chi trả (PI) cho ngân hàng để thực hiện thanh toán.

Người bán hàng không cần biết số thẻ tín dụng của khách hàng và ngân hàng không cần biết chi tiết đơn hàng của khách hàng

Khách hàng cần tách biệt hai thông tin quan trọng nhưng vẫn phải kết nối chúng để giải quyết tranh chấp khi cần thiết Kết nối này giúp khách hàng chứng minh rằng khoản chi trả là cho đơn hàng cụ thể, không phải cho hàng hóa hoặc dịch vụ khác Ví dụ, nếu khách hàng gửi hai thông báo OI và PI cho cửa hàng, và cửa hàng gửi PI tới ngân hàng, việc giữ một OI khác có thể dẫn đến nhầm lẫn Mối liên kết giữa OI và PI sẽ giúp tránh sự nhập nhèm này.

KR C : Khóa chữ ký riêng của khách hàng

Cửa hàng hiện có chữ ký kép (DS), thông tin OI và tóm tắt thông báo của PI (PIMD) Ngoài ra, cửa hàng cũng sở hữu khóa công khai của khách hàng được lấy từ chứng chỉ của khách hàng Dựa vào những thông tin này, cửa hàng có thể tính toán hai đại lượng quan trọng.

H(PIMD||H(OI)) và D KUc (DS)

KU C : Khóa chữ ký công khai của khách hàng

Nếu hai đại lượng này bằng nhau thì cửa hàng đã kiểm tra được chữ ký Tương tự, nếu ngân hàng có DS, PI, OIMD và KU C

Khi đó ngân hàng có thể tính:

H(H(PI)||OIMD)) và D KUc (DS)

Nếu hai đại lượng này bằng nhau thì ngân hàng đã kiểm tra được chữ ký của khách hàng

PI : Thông tin chi trả PIMD : Tóm lược thông báo của PI

OI : Thông tin đặt hàng OIMD : Tóm lược thông báo của OI

H : Hàm băm POMD : Tóm lược thông báo của lệnh chi trả

 : Phép ghép E : Phép mã hóa (RSA)

KR C : Khóa chữ ký riêng của khách hàng

Hình 4.5 Thủ tục chữ ký kép

Thủ tục kiểm tra chữ ký số ở phía cửa hàng và phía ngân hàng chi trả được thực hiện như mô tả trong các sơ đồ hình 4.6 và hình 4.7

Hình 4.6 Thủ tục cửa hàng kiểm tra chữ ký

Hình 4.7 Thủ tục ngân hàng kiểm tra chữ ký

Giải mã khóa công khai DDS Đ S

Giải mã khóa công khai DDS Đ S

Các hàm băm mở rộng mà nghiên cứu sinh phát triển có thể được áp dụng vào sơ đồ chữ ký kép theo sơ đồ hình 4.8, thông qua các bước quy trình cụ thể sau đây.

KIỂM TRA TÍNH TOÀN VẸN CỦA THÔNG ĐIỆP

Hàm băm đóng vai trò quan trọng trong việc kiểm tra tính toàn vẹn của thông điệp Việc xác định xem một file hoặc thông điệp có bị sửa đổi hay không có thể thực hiện thông qua việc so sánh tóm tắt trước và sau khi gửi Tóm tắt thông điệp là phương tiện đáng tin cậy để nhận dạng file Khi nhận một file kèm theo thư điện tử, chúng ta có thể sử dụng hàm băm để kiểm tra xem file đó có còn nguyên vẹn hay đã bị thay đổi trong quá trình truyền tải bởi hacker, thám mã hoặc virus.

Tính toàn vẹn dữ liệu đảm bảo rằng thông tin không bị sửa đổi trong quá trình truyền tải, với các chứng thư số và phong bì chữ ký số là những ví dụ điển hình Nội dung của email, thông điệp và giao dịch cần phải được bảo vệ để đảm bảo tính toàn vẹn PKI sử dụng mã hóa phi đối xứng hoặc đối xứng để cung cấp tính toàn vẹn, mặc dù giải pháp mã hóa đối xứng khó mở rộng hơn Để đảm bảo tính toàn vẹn của dữ liệu, thuật toán mã hóa công khai thường kết hợp với thuật toán băm Một hệ thống hiệu quả cần phải áp dụng các hàm băm để đảm bảo tính toàn vẹn một cách tối ưu.

Hàm băm mật mã là hàm một chiều, cho phép tạo ra một giá trị băm duy nhất từ dữ liệu đầu vào mà không thể suy ngược lại giá trị gốc Việc kiểm tra xem một tệp hoặc 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 giá trị băm trước và sau khi gửi Ngoài ra, giá trị băm còn được sử dụng như một phương tiện đáng tin cậy để nhận diện tệp.

Giá trị băm của một bản tin x tại thời điểm T1 được tính toán và bảo vệ để đảm bảo tính toàn vẹn Tại thời điểm T2, một phép kiểm tra sẽ được thực hiện để xác định xem bản tin x’ có bị sửa đổi hay không Giá trị băm của x’ sẽ được so sánh với giá trị băm đã được bảo vệ; nếu chúng giống nhau, điều này chứng tỏ bản tin không bị thay đổi Do đó, việc đảm bảo tính vẹn toàn của một bản tin lớn có thể được quy về việc bảo vệ một giá trị băm có kích cỡ cố định và nhỏ hơn.

Nghiên cứu sinh đã phát triển các hàm băm mới trong luận án, cho phép ứng dụng thực tế nhằm đảm bảo tính toàn vẹn của thông điệp Mặc dù các hàm băm chuyên dụng như MD6, SHA-512 và WHIRLPOOL thường được sử dụng trong các ứng dụng thương mại, không phải ứng dụng nào cũng cần đến chúng, vì có thể đảm bảo tính toàn vẹn của thông điệp với chi phí hợp lý hơn.

Các hàm băm mở rộng mới trong luận án đảm bảo tính toàn vẹn của thông điệp nhờ vào tính khuếch đại cao, nơi một thay đổi nhỏ ở đầu vào có thể dẫn đến thay đổi lớn ở đầu ra, giúp phát hiện sự thay đổi và thám mã dễ dàng Một ứng dụng minh họa là việc cắt mẩu bản tin và gắn nhãn thời gian Để chứng minh việc sử dụng thông báo, cần tạo một phần chữ ký vào nhãn thời gian; ví dụ, nếu thông báo của khách hàng có ngày tháng và thời gian gửi, ngân hàng không thể tái tạo thông báo tương tự mà không bị phát hiện Nhãn thời gian không chỉ là ngày tháng mà là một mã không lặp lại, như số loạt, gây khó khăn cho việc tái tạo Để ngăn chặn việc cắt thông báo thành nhiều mẩu và sử dụng lại, người dùng có thể làm cho mỗi mẩu phụ thuộc vào nhãn thời gian Ví dụ, hàm băm mở rộng mới MDC-4 sẽ băm dữ liệu đầu vào thành các mã băm.

Hàm băm 512 bit cho phép người sử dụng lưu trữ thời gian và ngày tháng trong 8 bit đầu của mỗi khối, trong khi chỉ sử dụng 120 bit cho nội dung thông báo Điều này là do hàm băm có 4 nhánh, mỗi nhánh sản sinh mã băm 128 bit Tuy nhiên, do toàn bộ 512 bit của mỗi khối phụ thuộc vào nhau, ngân hàng không thể liên kết 120 bit thông báo với nhãn thời gian 8 bit khác trong sơ đồ mã hóa của hàm băm MDC-4 Quá trình này được minh họa trong hình 4.9.

Hình 4.9 Ứng dụng gắn nhãn mã băm của hàm băm mở rộng mới

S là thông tin người gửi

ZM i là các nhãn thời gian

Các hàm băm được nghiên cứu và đề xuất trong bài viết này sử dụng các phương pháp băm cơ bản, mang lại ưu điểm vượt trội về chi phí triển khai ứng dụng Độ khuếch tán của các hàm băm này đạt kết quả tốt, đã được tính toán và phân tích qua nhiều lưu đồ và kết quả mô phỏng Việc lựa chọn các hàm băm này cho việc kiểm tra và đảm bảo tính toàn vẹn của thông điệp hứa hẹn sẽ đem lại kết quả khả quan.

BẢO VỆ MẬT KHẨU

Một ứng dụng quan trọng trong bảo mật thông tin là bảo vệ mật khẩu Thay vì lưu trữ mật khẩu dưới dạng văn bản rõ, chúng thường được lưu dưới dạng băm Quá trình xác thực người dùng diễn ra khi mật khẩu mà người dùng nhập vào được băm và so sánh với giá trị băm đã được lưu trữ.

Một trong những công việc quan trọng nhưng thường bị bỏ qua là sử dụng hàm băm để bảo vệ và kiểm tra mật khẩu Bài viết này sẽ hướng dẫn bạn từ việc lưu trữ mật khẩu dưới dạng văn bản đơn giản đến việc áp dụng phương pháp băm mật khẩu để tăng cường bảo mật.

Để đảm bảo an toàn thông tin, người dùng cần chọn mật khẩu có ít nhất 8 ký tự ngẫu nhiên Hiện nay, một máy chủ hiện đại có thể xử lý tới 10.323.000.000 mật khẩu mỗi giây trong các cuộc tấn công Với tốc độ này, việc thử tất cả các mật khẩu 8 ký tự sẽ mất khoảng 80 ngày Tuy nhiên, nếu sử dụng nhiều máy chủ và tối ưu hóa, khả năng tạo ra mật khẩu có thể đạt tới 350 tỷ mỗi giây, cho phép hacker có thể bẻ khóa toàn bộ mật khẩu 8 ký tự trong chưa đầy 2 ngày.

Việc thêm một ký tự vào mật khẩu có thể tăng khả năng bảo mật lên 128 lần Với tốc độ tấn công 350 tỷ mật khẩu mỗi giây, thời gian để bẻ khóa mật khẩu 10 ký tự sẽ kéo dài tới 106 năm Mặc dù thời gian này có vẻ dài, nhưng với sự phát triển nhanh chóng của công nghệ vi xử lý theo định luật Moore, thời gian này có thể giảm xuống đáng kể Từ góc độ mật mã học, 106 năm vẫn được coi là khoảng thời gian ngắn, do đó, chúng ta cần hướng tới một thời gian bảo mật vô tận, tức là từ vài trăm ngàn đến hàng triệu năm.

Để bảo vệ thông tin người dùng khỏi tin tặc, chúng ta băm mật khẩu nhằm ngăn chặn việc khôi phục văn bản gốc Trong cơ sở dữ liệu, chúng ta thường lưu trữ tên truy cập, địa chỉ email và thông tin cá nhân khác Quy tắc bảo mật số 1 là bảo vệ người dùng khỏi chính họ, bằng cách cảnh báo về các nguy cơ và khuyên không tái sử dụng mật khẩu Tuy nhiên, vẫn có những người sử dụng cùng một mật khẩu cho nhiều tài khoản như ngân hàng, email, iCloud, điều này có thể dẫn đến việc tin tặc dễ dàng truy cập vào tất cả các tài khoản khi xâm nhập vào cơ sở dữ liệu.

Việc sử dụng hàm băm để bảo vệ mật khẩu nhằm ngăn chặn hậu quả khi tin tặc truy cập vào cơ sở dữ liệu Mặc dù băm mật khẩu không làm cho trang web an toàn hơn, nhưng nó giúp giảm thiểu thiệt hại trong trường hợp bị xâm nhập trái phép.

Mật khẩu của người dùng không nên được lưu trữ ở dạng dễ đọc mà phải lưu trữ kết quả băm của nó Điều này khiến cho cả người quản trị dữ liệu cũng khó có thể biết được mật khẩu “thật” để đăng nhập tài khoản, vì họ chỉ có kết quả băm và không thể suy ra mật khẩu ban đầu do hàm băm là hàm một chiều Khi người dùng đăng nhập, mật khẩu sẽ được băm và so sánh với kết quả băm đã lưu trong hệ thống, cho phép đăng nhập nếu chúng giống nhau, từ đó đảm bảo tính chính xác và bảo mật cho dữ liệu.

Với các hàm băm mới được tạo ra trong luận án thì việc ứng dụng chúng vào bảo vệ mật khẩu là điều hết sức khả thi

Mục đích của việc băm mật khẩu là chuyển đổi chuỗi mật khẩu thành một mã hóa khác, đảm bảo rằng không thể khôi phục lại mật khẩu từ đoạn mã này Điều này có nghĩa là việc tìm ra mật khẩu gốc là không thể hoặc sẽ mất một khoảng thời gian rất lâu, đủ để làm nản lòng các hacker.

Các hàm băm trong luận án đã chứng minh tính khuếch tán hiệu quả, với việc thay đổi chỉ một bít đầu vào có thể làm thay đổi khoảng một nửa bít đầu ra Điều này cho thấy khả năng bảo vệ mật khẩu là rất khả thi, đặc biệt với các hàm băm mở rộng có độ dài từ 384 đến 512 bít Trong khi nhiều hàm băm chuyên dụng như MD và SHA chỉ có độ dài 128 bít, các hàm băm mở rộng này cung cấp độ an toàn cao hơn trong việc bảo vệ mật khẩu.

Mật khẩu người dùng thường bao gồm chữ cái hoa, chữ cái thường, chữ số và ký tự đặc biệt Nếu mật khẩu được lưu trữ dưới dạng không mã hóa trên máy tính hoặc trong cơ sở dữ liệu, nguy cơ bị lộ thông tin là rất cao Người quản trị mạng hoặc hacker có thể dễ dàng truy cập vào file dữ liệu và xem trộm mật khẩu Do đó, việc lưu trữ mật khẩu theo cách thông thường này không đảm bảo an toàn.

Để bảo vệ mật khẩu, chúng ta có thể sử dụng phần mềm mã hóa, trong đó mật khẩu sẽ được mã hóa bằng một khóa bí mật trước khi lưu trữ Phương pháp này giúp ngăn chặn việc xem trộm mật khẩu, nhưng cần lưu ý rằng nếu khóa bí mật bị lộ, mật khẩu cũng sẽ bị tiết lộ.

Phương pháp bảo vệ mật khẩu hiệu quả nhất hiện nay là sử dụng hàm băm Khi người dùng đăng ký mật khẩu, mật khẩu sẽ được băm bằng một trong các hàm băm mở rộng mới như MDC-3, MDC-4, hoặc MDC 512 bít, được phát triển trong luận án Giá trị băm của mật khẩu tạo thành một chuỗi bít có độ dài 384 hoặc 512 bít, tùy thuộc vào loại hàm băm được chọn Giá trị băm này sẽ được lưu trữ trong cơ sở dữ liệu của chương trình Nhờ vào tính chất một chiều và độ dài mã băm lớn của hàm băm, việc thám mã để tìm ra mật khẩu từ giá trị băm là rất khó khăn, ngay cả khi biết loại hàm băm và giá trị băm.

Lưu đồ cụ thể của ứng dụng đề xuất như hình 4.10:

Hình 4.10 Dùng hàm băm mở rộng mới để lưu trữ và kiểm tra mật khẩu

Khi người dùng đăng nhập vào hệ thống qua form đăng nhập, mật khẩu sẽ được băm và so sánh với giá trị băm lưu trữ trong cơ sở dữ liệu Nhờ vào tính chất chống trùng và khuếch tán của các hàm băm, mỗi mật khẩu chỉ có một giá trị băm duy nhất, đảm bảo rằng chỉ người dùng biết mật khẩu mới có thể truy cập vào hệ thống.

KẾT LUẬN CHƯƠNG IV

Các hàm băm thường được áp dụng trong nhiều lĩnh vực, bao gồm kiểm tra tính nguyên vẹn của thông điệp, chữ ký số và bảo vệ mật khẩu.

Lớp hàm băm nghiên cứu sinh trong luận án bao gồm nhiều loại hàm băm với độ dài khác nhau, từ đơn đến kép và mở rộng Đặc biệt, ba hàm băm mở rộng mới có độ dài mã băm từ 384-512 bít hứa hẹn mang lại hiệu quả ứng dụng cao nhờ vào độ dài mã băm lớn Ngoài các tính chất cơ bản của hàm băm thông thường, các hàm băm mở rộng này còn sở hữu tính khuếch tán tốt, thiết kế mạch điện phần cứng đơn giản và khả năng tạo ra nhiều khóa, mở ra nhiều cơ hội lựa chọn cho các ứng dụng.

Các hàm băm mở rộng mới, bao gồm MDC-3 với độ dài mã băm 384 bít và hai hàm băm khác với độ dài 512 bít, mang lại tính chất khuếch tán rất tốt.

Mật khẩu (text) Hàm băm mở rộng mới Mã băm Lưu trữ

Mật khẩu được bảo vệ bằng hàm băm mở rộng mới, với mã băm chứng minh qua mô phỏng, đảm bảo chiều dài mã băm đủ lớn để chống lại các tấn công thám mã đa dạng hiện nay.

Các hàm băm mới được nghiên cứu và phát triển sẽ làm phong phú thêm thư viện hàm băm hiện có, nhằm đáp ứng nhu cầu đa dạng của các ứng dụng thực tế.

KẾT LUẬN VÀ KIẾN NGHỊ

KẾT LUẬN

Luận án “Nghiên cứu xây dựng một lớp hàm băm mở rộng mới và khả năng ứng dụng” có 02 kết quả nghiên cứu chính sau đây:

Bài viết trình bày việc xây dựng các hàm băm mới với tính khuếch tán cao, bao gồm các hàm băm MDC-64 bit, MDC-2, MDC-3, MDC-4 và MDC-512 bit Các hệ mật này sử dụng các lưu đồ Feistel, Lai-Massey, cũng như sự kết hợp giữa Lai-Massey và Feistel, với những cải tiến mới Các hàm băm mở rộng được thiết kế để chia dữ liệu đầu ra ở mỗi nhánh, thực hiện ghép móc xích theo nhiều cách khác nhau, nhằm tạo ra sự phụ thuộc giữa đầu ra và các bít dữ liệu đầu vào.

Xây dựng các thuật toán để tạo ra các hàm băm mới và đề xuất khả năng ứng dụng của chúng trong lĩnh vực mật mã học là rất quan trọng Những hàm băm này có thể cải thiện tính bảo mật và hiệu quả trong việc xử lý dữ liệu nhạy cảm Việc áp dụng các hàm băm mới sẽ góp phần nâng cao khả năng bảo vệ thông tin trong các hệ thống mã hóa hiện đại.

Chữ ký số, kiểm tra tính toàn vẹn của thông điệp, bảo vệ mật khẩu

Tất cả các hàm băm mới đều có tính khuếch tán tốt, đạt khoảng 50% chiều dài mã băm theo mô phỏng Chúng có tốc độ tính toán nhanh, khả năng tạo ra số lượng khóa lớn, và dễ dàng thiết kế, chế tạo mạch điện phần cứng, phù hợp với ứng dụng thực tế.

KIẾN NGHỊ HƯỚNG PHÁT TRIỂN

Dựa trên một lớp hàm băm mở rộng mới trong luận án, cần nghiên cứu phát triển các hàm băm với độ dài lớn hơn để đối phó với tốc độ xử lý máy tính ngày càng nhanh, làm tăng khả năng bẻ khóa và thám mã Mặc dù các hàm băm hiện tại có thể an toàn, nhưng trong tương lai, chúng có thể bị phá vỡ, vì vậy việc tăng chiều dài của các hàm băm là cần thiết để đảm bảo an toàn thông tin.

Luận án mới tập trung vào việc đánh giá tính khuếch tán của hệ mật và hàm băm Để nâng cao chất lượng nghiên cứu, cần tiếp tục xem xét các tính chất khác như mức độ an toàn trước các cuộc tấn công và tỷ lệ va chạm của hàm băm.

Luận án hiện tại mới chỉ dừng lại ở lý thuyết mà chưa phát triển thành các ứng dụng thực tế Để tiến xa hơn, hướng đi tiếp theo sẽ tập trung vào việc thiết kế và thử nghiệm mạch điện phần cứng, đồng thời áp dụng các hàm băm mới vào thực tiễn.

DANH MỤC CÁC CÔNG TRÌNH CÔNG BỐ CỦA TÁC GIẢ

Nguyễn Toàn Thắng, Ngô Đức Thiện và Hồ Quang Bửu (2012) đã trình bày nghiên cứu về việc xây dựng hàm băm mở rộng dựa trên các cấp số nhân cyclic trong hội thảo Điện tử - Truyền thông An toàn thông tin, diễn ra vào tháng 10 năm 2012 Bài viết được đăng tải trong tài liệu hội thảo, trang 52-57.

Ngô Đức Thiện và Nguyễn Toàn Thắng (2013) đã trình bày một phương pháp xây dựng hệ mật mã khối dựa trên sơ đồ Lai-Massey, cùng với khả năng ứng dụng của nó vào các hàm băm Nghiên cứu này được công bố trong Tạp chí Khoa học và Công nghệ, Viện hàn lâm Khoa học và Công nghệ Việt Nam, tập 51, số 4A, tháng 9-2013, trang 126-134, mang mã số ISSN 0866 708X.

Ngô Đức Thiện, Nguyễn Hương Thảo, và Nguyễn Toàn Thắng (2013) đã trình bày một phương pháp xây dựng hàm băm dựa trên các cấp số nhân trên vành đa thức Nghiên cứu này được công bố tại Hội nghị khoa học kỷ niệm 15 năm ngày truyền thống của Học viện Công nghệ Bưu chính Viễn thông vào tháng 9 năm 2013, với nội dung nằm trong trang 25 đến 29.

[4] Ngô Đức Thiện, Nguyễn Trung Hiếu, Nguyễn Toàn Thắng, Đặng Hoài Bắc

Vào năm 2013, một nghiên cứu đã giới thiệu phương pháp xây dựng hệ mật mã khối kết hợp giữa sơ đồ Lai-Massey và sơ đồ Feistel, đồng thời ứng dụng vào hàm băm Nghiên cứu này được trình bày tại Hội nghị Quốc gia về Điện tử - Truyền thông, REV 2013, diễn ra vào tháng 12 năm 2013, với các thông tin chi tiết được đăng tải từ trang 75 đến 80.

Nguyễn Toàn Thắng và Ngô Đức Thiện (2015) đã trình bày một phương pháp xây dựng hệ mật mã lai ghép trong bài viết của họ tại Hội thảo Quốc gia về Điện tử, Truyền thông và Công nghệ thông tin (ECIT) vào tháng 12 năm 2015 Bài viết này được đăng trên trang 227 đến 231, đóng góp vào lĩnh vực mật mã học và công nghệ thông tin.

Nguyễn Toàn Thắng, Ngô Đức Thiện và Nguyễn Trung Hiếu (2017) đã đề xuất một phương pháp xây dựng hàm băm không khóa trên vành đa thức chẵn trong bài viết của họ đăng trên Tạp chí Khoa học và Công nghệ các trường Đại học Kỹ thuật, số 121, tháng 9-2017, trang 64 - 69.

DANH MỤC CÁC CÔNG TRÌNH CÓ LIÊN QUAN

[1] Nguyễn Toàn Thắng, Nguyễn Thúy Anh, Nguyễn Ngọc San (2007), “Tóm tắt ma trận nghịch đảo suy rộng và ứng dụng” Tạp chí Khoa học và Công nghệ, Viện

Khoa học và Công nghệ Việt Nam, tập 45, số 6, 2007, tr 141 - 178

Nguyễn Toàn Thắng (2015) đã thực hiện một nghiên cứu khoa học cấp Bộ Thông tin và Truyền thông với đề tài “Nghiên cứu, xây dựng phần mềm quản lý hạ tầng công nghệ thông tin trong các cơ quan nhà nước tỉnh Ninh Bình” Đề tài này có mã số 66-15-KHKT-RD và đã được nghiệm thu vào ngày 26/11/2015.

Ngày đăng: 20/11/2023, 08:12

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w