1. Trang chủ
  2. » Tất cả

Nghiên cứu giao thức trao đổi khóa an toàn

85 573 1
Tài liệu đã được kiểm tra trùng lặp

Đ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

Định dạng
Số trang 85
Dung lượng 2,67 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

2 Các giao thức thỏa thuận khóa Key Agreement Protocols, trong đó các đối tượng trao đổi các thông tin để xác lập một khóa bí mật được chia sẻ.. Mục đích của đề tài Nghiên cứu tổng quan

Trang 1

M C L C

Quyết định giao đề tài

2 4 Vai trò của khoá trong các phương pháp b o m t 12

2.4.2 Vấn đề an toàn khoá trong các giải pháp bảo mật 15

Trang 2

2.6.2 Cơ bản về đại số trừu tượng 20

2.7.3 Chữ ký số 34

Chương 3 XÂY D NG GIAO TH C TRAO Đ I KHịA AN TOÀN 46

3.1 Phân tích một số giao thức trao đổi khóa có tích hợp ch ký số 46 3.1.1 Các yêu cầu đối với giao thức trao đổi khóa hiện nay 46

3.1.5 Giao thức trao đổi khóa Jie Liu và Jianhua Li 54

Trang 3

DANH SÁCH CH VIẾT T T

1 ASSRDH-DSA Against session state reveal Diffie-Hellman - DSA: Giao thức cải tiến

2 AKA Auxiliary Key Agreement: Bổ trợ thỏa thuận khóa

3 CA Certificate authority: Trung tâm phân phối khóa

4 CKĐT Chữ ký điện tử

5 CKS Chữ ký số

6 CSDL Cơ sở dữ liệu

7 DH Trao đổi khóa Diffie – Hellman

8 DSA Digital signature algorithm: Giải thuật chữ ký số

9 ECC Elliptic curve cryptography: Hệ mật trên đường cong

elliptic

10 NIST National Institute of Standards and Technology: Viện tiêu chuẩn và công nghệ quốc gia Hoa Kỳ

11 SHA Secure hash algorithm: Thuật toán băm bí mật

12 TĐK Trao đổi khóa

Trang 4

DANH SÁCH CÁC HÌNH

Hình 2.1: Mô hình chung của hệ thống mật mã khóa đối xứng 9 Hình 2.2 a) Chức năng bảo mật của hệ mật với khóa công khai 11 Hình 2.2 b) Chức năng xác thực của hệ mật với khóa công khai 11

Trang 5

DANH SÁCH CÁC B NG

Bảng 2.1: Các tính chất của các thuật toán băm an toàn 34

Bảng 3.2 Đặc tính của giao thức DH kết hợp với DSA 63

Trang 6

Ch ương 1

T NG QUAN 1.1 Tổng quan chung về lĩnh vực nghiên cứu

Ngày nay, công nghệ thông tin và thương mại điện tử đã xâm nhập vào mọi khía cạnh của hoạt động xã hội Việc trao đổi và đảm bảo an toàn cho các thông tin nhạy cảm trên các mạng truyền dẫn là vấn đề mang tính thời sự và vô cùng phức tạp Trên thực tế, các kỹ thuật mật mã là phương pháp an toàn và hiệu quả nhất để bảo đảm truyền tin an toàn trên mạng Trong đó, bài toán trao đổi khóa luôn được đặt ra để có thể đáp ứng được những ứng dụng của các thuật toán mật mã trên Xác lập khóa (Key Establishment) là tiến trình trong đó hai (hoặc nhiều) đối tượng xác lập một khóa bí mật được chia sẻ Trong thực tế có hai kiểu giao thức xác lập khóa [3]:

1) Các giao thức truyền khóa (Key Transport Protocols), trong đó một khóa được phát sinh bởi một đối tượng và truyền an toàn đến đối tượng khác

2) Các giao thức thỏa thuận khóa (Key Agreement Protocols), trong đó các đối tượng trao đổi các thông tin để xác lập một khóa bí mật được chia sẻ Trong khuôn khổ luận văn, người viết chỉ quan tâm đến các giao thức thỏa thuận (trao đổi) khóa Các khóa dùng trong các quá trình mã hóa và giải mã phải được giữ bí mật và cần được trao đổi bằng một phương pháp an toàn như gặp nhau trực tiếp hay thông qua một người đưa thư tin cậy Vì vậy quá trình phân phối khóa trong thực tế gặp rất nhiều khó khăn, đặc biệt là khi số lượng người sử dụng rất lớn Mật mã hóa khóa công khai đã giải quyết được vấn đề này vì nó cho phép người dùng gửi thông tin mật trên đường truyền không an toàn mà không cần thỏa thuận khóa từ trước Thuật toán mật mã hóa khóa công khai được thiết kế đầu tiên bởi James H Ellis, Clifford Cocks, và Malcolm Williamson vào đầu thập kỷ 1970 Năm 1976, Whitfield Diffie và Martin Hellman công bố một hệ thống mật mã hóa khóa bất đối xứng trong đó nêu ra phương pháp trao đổi khóa công khai Trao đổi

Trang 7

khóa Diffie-Hellman (DH) là phương pháp có thể áp dụng trên thực tế đầu tiên để phân phối khóa bí mật thông qua một kênh thông tin không an toàn Giao thức DH được thiết kế để có khả năng chống lại các tấn công thụ động, tuy nhiên nó không cung cấp sự xác thực giữa các đối tượng tham gia truyền thông Giải pháp xác thực cần được sử dụng khi áp dụng giao thức này trong thực tế là: sử dụng kết hợp với trung tâm phân phối khóa (CA) hoặc chữ ký số (CKS) Tuy nhiên, khi sử dụng kết hợp với CA, việc thay đổi khóa công khai là ít vì vậy khóa bí mật chia sẻ thường chỉ được sử dụng làm khóa chủ để mã hóa các khóa phiên trong các phiên liên lạc Khi kết hợp với CKS, việc thay đổi khóa công khai sẽ dễ dàng hơn

Arazi là người đầu tiên kết hợp giao thức DH và CKS DSA để cung cấp tính năng xác thực khóa Tuy nhiên, Nyberg and Rueppel [7] đã chỉ ra một điểm yếu trong lược đồ của Arazi là tấn công khóa biết Một kiểu tấn công khác như là tấn công khoá chia sẻ không biết hay tấn công lặp lại khóa Vì vậy, năm 2004 Lein Harn đã mở rộng cách tiếp cận của Arazi để tích hợp một cách tin cậy giao thức

DH trong DSA

Giao thức TĐK do Lein Harn đề xuất đã cung cấp được các đặc tính như: an

toàn khóa biết, ngăn cản tấn công khóa chia sẻ không biết (unknown key–share resilience) và ngăn cản tấn công khóa lặp lại Ba tính năng an toàn này là các yêu cầu chuẩn cho giao thức TĐK bất kỳ Tuy nhiên, giao thức này không cung cấp hai tính năng chuẩn an toàn khác, như là: an toàn phía trước và khả năng làm mới khóa Do đó năm 2005 R.C.W Phan đã sắp xếp giao thức để đảm bảo cả hai đặc tính an toàn phía trước và khả năng làm mới khóa mà vẫn duy trì được các đặc tính

cơ bản của giao thức gốc

Năm 2010 Jie Liu và Jianhua Li đưa ra sự cải tiến nhằm làm cho giao thức an toàn hơn nhưng vẫn giữ được các yêu cầu cơ bản trong lược đồ của Phan Tuy nhiên giao thức cải tiến của Liu và li vẫn chưa khắc phục được tính năng bảo mật chống lại lộ trạng thái khóa phiên

Trang 8

Trong vòng 50 năm qua, rất nhiều thuật toán được xây dựng và triển khai Các nghiên cứu đưa ra nhằm cải thiện sự an toàn của các giao thức Các giao thức

mới có tính bảo mật ngày càng tốt hơn

1.2 Mục đích của đề tài

Nghiên cứu tổng quan một số vấn đề về trao đổi khóa, những thuật toán mật

mã liên quan, nghiên cứu giao thức trao đổi khóa bí mật Diffie – Hellman và các phát triển của giao thức này được giới thiệu bởi Arazi, Lein Harn, Phan, và Liu và

Li từ đó đưa ra cải tiến giao thức trao đổi khóa an toàn trên cơ sở sử dụng giao thức trao đổi khóa Diffe – Hellman kết hợp với chữ ký số làm tăng độ bảo mật của giao thức

1.3 Nhiệm vụ và giới h n của đề tài

1.3.1 Nhiệm vụ đề tài

Trước hết đây là vấn đề khó, đòi hỏi phải có tập trung nghiên cứu trong thời

gian dài Do đó người viết chỉ tập trung vào một số vấn đề sau:

+ Tìm hiểu tổng quan về vấn đề trao đổi khóa, các thuật toán mật mã liên quan như hàm băm, chữ ký điện tử, giải thuật ký số…

+ Phân tích các thuật toán đã được đưa ra để tim ra vấn đề tồn tại về bảo mật trong trao đổi khóa Từ đó đưa ra các cải tiến để khắc phục vấn đề còn tồn tại + Tìm hiểu về ngôn ngữ lập trình Visual studio 2010 để viết chương trình mô phỏng cách thức hoạt động của giao thức cải tiến

1.3.2 Giới h n đề tài

Do đặc thù ngành và điều kiện vật chất nên các nghiên cứu về mật mã và an ninh mạng hiện nay thường ít được triển khai trong thực tê Do đó người thực hiện chỉ giới hạn nghiên cứu về mặt lý thuyết và toán học

1.4 Phương pháp nghiên cứu

Trang 9

Phương pháp phân tích: nghiên cứu, tìm hiểu, phân tích về vấn đề trao đổi khóa, cơ sở toán học, các đặc tính phải có của một giao thức trao đổi khoá, các giao thức trao đổi khóa đã được triển khai tìm ra những ưu điểm và hạn chế

Phương pháp mô phỏng: Tìm hiểu về ngôn ngữ lập trình từ đó xây dựng chương trình mô phỏng hoạt động của giao thức

Trang 10

Chương 2

C S LÝ THUYẾT

2.1 An toàn và bảo mật thông tin

Khi nhu cầu trao đổi thông tin dữ liệu ngày càng lớn và đa dạng, các tiến bộ về điện tử viễn thông và công nghệ thông tin không ngừng được phát triển ng dụng

để nâng cao ch t lượng và lưu lượng truyền tin thì các quan niệm ý tưởng và biện pháp b o vệ thông tin dữ liệu cũng được đổi mới B o vệ an toàn thông tin dữ liệu

là một ch đề rộng, có liên quan đến nhiều lĩnh vực và trong thực tế có thể có r t nhiều phương pháp được thực hiện để b o vệ an toàn thông tin dữ liệu Các phương pháp b o vệ an toàn thông tin dữ liệu có thể được quy tụ vào ba nhóm sau:

 B o vệ an toàn thông tin bằng các biện pháp hành chính

 B o vệ an toàn thông tin bằng các biện pháp kỹ thuật (phần c ng)

 B o vệ an toàn thông tin bằng các biện pháp thuật toán (phần mềm)

Ba nhóm trên có thể được ng dụng riêng rẽ hoặc phối kết hợp Môi trường khó

b o vệ an toàn thông tin nh t và cũng là môi trường đối phương dễ xâm nhập nh t

đó là môi trường mạng và truyền tin Biện pháp hiệu qu nh t và kinh tế nh t hiện nay trên mạng truyền dẫn và mạng máy tính là biện pháp thuật toán Để đ m b o an toàn thông tin dữ liệu trên đường truyền này hiệu qu thì đầu tiên, ta ph i lường trước hoặc dự đoán trước các kh năng không an toàn, kh năng xâm phạm, các sự

cố r i ro có thể x y ra đối với thông tin dữ liệu được lưu trữ và trao đổi trên đường truyền tin cũng như trên mạng Xác định càng chính xác các nguy cơ nói trên thì càng quyết định được tốt các gi i pháp để gi m thiểu các thiệt hại Có hai loại hành

vi xâm phạm thông tin dữ liệu đó là: t n công ch động và t n công thụ động

- T n công thụ động chỉ nhằm mục đích cuối cùng là nắm bắt được thông tin (đánh cắp thông tin) Việc làm đó có khi không biết được nội dung cụ thể nhưng có thể dò ra được người gửi, người nhận nhờ thông tin điều khiển giao th c ch a trong

Trang 11

phần đầu các gói tin Kẻ xâm nhập có thể kiểm tra được số lượng, độ dài và tần số trao đổi Vì vậy t n công thụ động không làm sai lệch hoặc h y hoại nội dung thông tin dữ liệu được trao đổi T n công thụ động thường khó phát hiện nhưng có thể có những biện pháp ngăn chặn hiệu qu

- T n công ch động là dạng t n công có thể làm thay đổi nội dung, xóa bỏ, làm trễ, sắp xếp lại th tự hoặc làm lặp lại gói tin tại thời điểm đó hoặc sau đó một thời gian T n công ch động có thể thêm vào một số thông tin ngoại lai để làm sai lệch nội dung thông tin trao đổi T n công ch động dễ phát hiện nhưng để ngăn chặn hiệu qu thì khó khăn hơn nhiều

Một thực tế là không có một biện pháp b o vệ an toàn thông tin dữ liệu nào là

an toàn tuyệt đối Một hệ thống dù được b o vệ chắc chắn đến đâu cũng không thể

đ m b o là an toàn tuyệt đối

2.2 Mật mã học

Mật mã học là ngành khoa học ng dụng toán học vào việc biến đổi thông tin thành một dạng khác với mục đích che d u nội dung, ý nghĩa thông tin cần mã hóa Đây là một ngành quan trọng và có nhiều ng dụng trong đời sống xã hội Ngày nay, các ng dụng mã hóa và b o mật thông tin đang được sử dụng ngày càng phổ biến hơn trong các lĩnh vực khác nhau trên thế giới, từ các lĩnh vực an ninh, quân

sự, quốc phòng…, cho đến các lĩnh vực dân sự như thương mại điện tử, ngân hàng…

Cùng với sự phát triển c a khoa học máy tính và Internet, các nghiên c u và

ng dụng c a khoa học mật mã ngày càng trở nên đa dạng hơn, mở ra nhiều hướng nghiên c u chuyên sâu vào từng lĩnh vực ng dụng đặc thù với những đặc trưng riêng ng dụng c a khoa học mật mã không chỉ đơn thuần là mã hóa và gi i mã thông tin mà còn bao gồm nhiều v n đề khác nhau cần được nghiên c u và gi i quyết: ch ng thực nguồn gốc nội dung thông tin (kỹ thuật chữ ký điện tử), ch ng nhận tính xác thực về người sở hữu mã khóa (ch ng nhận khóa công cộng), các quy trình giúp trao đổi thông tin và thực hiện giao dịch điện tử an toàn trên mạng Những kết qu nghiên c u về mật mã cũng đã được đưa vào trong các hệ thống

Trang 12

ph c tạp hơn, kết hợp với những kỹ thuật khác để đáp ng yêu cầu đa dạng c a các

hệ thống ng dụng khác nhau trong thực tế, ví dụ như hệ thống bỏ phiếu bầu cử qua mạng, hệ thống đào tạo từ xa, hệ thống qu n lý an ninh c a các đơn vị với hướng tiếp cận sinh trắc học, hệ thống cung c p dịch vụ đa phương tiện trên mạng với yêu cầu cung c p dịch vụ và b o vệ b n quyền sở hữu trí tuệ đối với thông tin số Như vậy các v n đề nghiên c u và ng dụng c a mật mã học ngày nay r t đa dạng Ta có thể khái quát một số ch c năng cơ b n c a mật mã học hiện đại:

1) Đ m b o tính bí mật (confidentiality) – gi i quyết v n đề b o vệ thông tin

chống lại sự tìm hiểu nội dung thông tin từ các đối tượng không có quyền truy nhập chúng

2) Đ m b o tính toàn vẹn dữ liệu (data integrity) – đ m b o kh năng phát

hiện sửa đổi trái phép thông tin Để đ m b o toàn vẹn dữ liệu, cần có các phương pháp đơn gi n và tin cậy phát hiện b t kỳ sự can thiệp không mong muốn vào dữ liệu (các can thiệp như chèn, xóa và thay thế trong b n tin)

3) Đ m b o tính xác thực (authentication) – ch c năng này có liên hệ với sự định danh (identification) Vì thế nó được thực hiện xác thực trên c thực thể (hai

đối tượng trong một phiên liên lạc sẽ định danh lẫn nhau) và b n thân thông tin (thông tin được truyền trên kênh truyền sẽ được xác thực về nguồn gốc, nội dung, thời gian gửi, .) Vì thế v n đề xác thực trong mật mã được chia thành hai lớp chính – xác thực thực thể (identity authentication) và xác thực nguồn gốc dữ liệu (data origin authentication)

4) Đ m b o chống sự từ chối (non-repudiation) – ch c năng ngăn ngừa một

thực thể từ chối (ph nhận) một cam kết hoặc hành động trước đó Khi xu t hiện tranh ch p vì một thực thể từ chối một hành động chắc chắn đã x y ra, một biện pháp gi i quyết là cần thiết

Trong số các ch c năng trên, ch c năng đầu tiên đã được biết đến từ hàng ngàn năm trước, còn các ch c năng sau liên quan đến các dịch vụ thông tin mới Tuy nhiên, ch c năng b o vệ bí mật thông tin vẫn luôn mang tính thời sự

Trang 13

4) E và D lần lượt là tập luật mã hóa và gi i mã Với mỗi khóa k K, tồn tại

luật mã hóa e k E và luật gi i mã dk D tương ng Luật mã hóa ek : P

→ C và luật gi i mã d k: C → P là hai ánh xạ thỏa mãn

Phân loại các phương pháp mã hóa

Hệ mật mã có nhiều cách để phân loại Nếu dựa vào thời gian đưa ra hệ mật mã ta có thể phân làm hai loại: Mật mã cổ điển (là hệ mật mã ra đời trước năm 1970) và mật mã hiện đại (ra đời sau năm 1970) Còn nếu dựa vào cách

th c tiến hành mã thì hệ mật mã còn được chia làm hai loại là mã dòng (tiến hành mã từng khối dữ liệu, mỗi khối lại dựa vào các khóa khác nhau, các khóa này được sinh ra từ hàm sinh khóa, được gọi là dòng khóa) và mã khối (tiến hành mã từng khối dữ liệu với khóa như nhau) Trong phần này, chúng ta sẽ trình bày rõ phân loại dựa vào cách sử dụng khóa, có thể phân các hệ mật mã thành hai loại: hệ mật mã khóa đối x ng (mật mã khóa bí mật) và hệ mật mã khóa b t đối x ng (mật mã khóa công khai)

Hệ mật khóa đối xứng

Trong hệ thống mã hóa đối x ng, quá trình mã hóa và gi i mã một thông

điệp sử dụng cùng một mã khóa gọi là khóa bí mật (secret key) hay khóa đối

Trang 14

x ng (symmetric key) Do đó, v n đề b o mật thông tin đã mã hóa hoàn toàn

phụ thuộc vào việc giữ bí mật nội dung c a khóa đã được sử dụng

Trên hình 2.1, chỉ ra mô hình chung hệ thống mật mã khóa đối x ng và mối quan hệ giữa người gửi, người nhận và người t n công

 Người gửi là người sử dụng thực hiện mã hóa b n rõ và gửi b n mã cho người nhận đầu cuối

 Người nhận là người thu nhận b n mã và có khóa hợp lệ để khôi phục lại b n

 Người t n công (còn gọi là người thám mã, hay kẻ nghe lén) là người nào đó

cố gắng tiếp cận giữa người gửi và người nhận để thu nhận được khóa mã cũng như thông tin đã trao đổi

 Kênh an toàn được hiểu như là tổ hợp c a các biện pháp về mặt tổ ch c cũng như kỹ thuật để b n đ m truyền tin an toàn (ở đây để truyền khóa bí mật)

Kênh an toàn

K

Người nhậnNgười t n công

K ?

B n rõ ?

Hình 2.1 Mô hình chung c a hệ thống mật mã khóa đối x ng

Trái ngược với việc thiết kế và ng dụng mật mã, công việc t n công hệ mật để

tìm ra khóa k, cũng như các thông tin đã gửi được gọi là thám mã (cryptanalysis)

Thám mã cũng là công việc tìm cách phá vỡ các thuật toán mật mã nhằm thu được các thông tin bí mật khi không có khóa Xây dựng hệ mật an toàn và thám mã là hai công việc trái ngược nhau, nhưng trong suốt chiều dài lịch sử mật mã, chúng đã

Trang 15

cùng thúc đẩy nhau làm cho khoa học mật mã không ngừng phát triển Như vậy,

mật mã học (cryptology) bao gồm hai lĩnh vực là mật mã và thám mã

Chuẩn mã hóa đối x ng nổi tiếng và thường được sử dụng trước kia là chuẩn mã

hóa dữ liệu DES (Data Encryption Standard) Tuy nhiên, với tốc độ và kh năng xử lý

ngày càng được nâng cao c a các bộ vi xử lý hiện nay, phương pháp mã hóa DES không còn an toàn trong b o mật thông tin Do đó, Viện Tiêu chuẩn và Công nghệ

Quốc gia Hoa Kỳ (National Institute of Standards and Technology – NIST) đã quyết

định chọn một chuẩn mã hóa mới với độ an toàn cao nhằm phục vụ nhu cầu b o mật thông tin liên lạc c a chính ph Hoa Kỳ cũng như trong các ng dụng dân sự Thuật toán Rijndael do Vincent Rijmen và Joan Daeman đã được chính th c chọn trở thành

chuẩn mã hóa nâng cao (Advanced Encryption Standard – AES) từ 02 /10/ 2000

Hệ mật khóa bất đối xứng

Hệ mật mã khóa b t đối x ng là các hệ mật dùng một khoá để mã hoá sau đó dùng một khoá khác để gi i mã, nghĩa là khoá để mã hoá và gi i mã là khác nhau Các khoá này tạo nên từng cặp chuyển đổi ngược nhau và không có khoá nào có thể suy được từ khoá kia Khoá dùng để mã hoá có thể công khai nhưng khoá dùng để

gi i mã ph i giữ bí mật Nếu như v n đề khó khăn đặt ra đối với các phương pháp

mã hóa đối x ng chính là bài toán trao đổi mã khóa thì ngược lại, các phương pháp

mã hóa khóa công cộng giúp cho việc trao đổi mã khóa trở nên dễ dàng hơn Nội

dung c a khóa công cộng (public key) không cần ph i giữ bí mật như đối với khóa

bí mật trong các phương pháp mã hóa quy ước Sử dụng khóa công cộng, chúng ta

có thể thiết lập một quy trình an toàn để trao đổi khóa bí mật được sử dụng trong hệ thống mã hóa đối x ng Trong những năm gần đây, các phương pháp mã hóa khóa công cộng, đặc biệt là phương pháp RSA [9], được sử dụng ngày càng nhiều trong các ng dụng mã hóa trên thế giới và có thể xem như đây là phương pháp chuẩn được sử dụng phổ biến nh t trên Internet, ng dụng trong việc b o mật thông tin liên lạc cũng như trong lĩnh vực thương mại điện tử

Trang 16

Mã hóa Gi i mã

Kênh truyền

Nguồn sinh khóa

KR B ? Văn b n rõ ? Người t n công

KR B- Khóa riêng c a B

KU B- Khóa công khai c a B

Hình 2.2 a) Ch c năng b o mật c a hệ mật với khóa công khai

Nguồn sinh khóa

KR A ? Sửa đổi văn b n

đã xác thực ? Người t n công

KR A- Khóa riêng c a A

KU A- Khóa công khai c a A

Hình 2.2 b) Ch c năng xác thực c a hệ mật với khóa công khai

Khi làm việc với các hệ mật với khóa công khai yêu cầu mỗi người sử dụng ph i được phân phát tối thiểu hai khóa Một khóa, được gọi là khóa riêng

(private key), ký hiệu KR i (trong đó chỉ số i để chỉ người sử dụng), cũng còn gọi là khóa mật, còn khóa kia được gọi là khóa công khai, ký hiệu KU i, để cho các đối tác sử dụng Hai khóa này có mối liên hệ chặt chẽ với nhau, và mối

Trang 17

quan hệ c a chúng cũng thỏa mãn đặc tính “một chiều” Các hệ mật với khóa công khai có hai ch c năng chính: b o mật và xác thực, tùy thuộc vào việc sử dụng các khóa như thế nào, như được biểu diễn trên hình 1.2 a, b

2.4 Vai trò của khóa trong các phương pháp bảo mật

Mật mã hay các gi i pháp b o mật được sử dụng để b o vệ tính bí mật c a thông tin khi chúng được truyền trên các kênh truyền thông công cộng Gi sử nếu một người A muốn gửi cho người B một văn b n P, để b o mật A lập cho P một b n mật mã C bằng một phương pháp toán học nào đó, và thay vì gửi cho

B văn b n P, A gửi cho B văn b n C B nhận được C thực hiện gi i mã để thu được P Để A biến P thành C và B biến C thành P, A và B ph i thống nh t sử dụng chung một hệ mã khóa nào đó: hệ mã khóa đối x ng hoặc hệ mã khóa công khai

2.4.1 Vai trò của khoá

Trong hệ mật khóa đối xứng

Trong hệ mã khóa đối x ng, bước mã hóa và gi i mã đều sử dụng chung một khóa bí mật k, và với các giá trị c a k khác nhau ta thu được các b n mã khác nhau Tính an toàn c a hệ mã phụ thuộc vào hai yếu tố: thuật toán ph i

đ mạnh để không thể gi i mã được văn b n nếu đơn thuần chỉ dựa vào b n

mã, và tính an toàn c a khóa, ch không ph i là an toàn thuật toán, t c là nếu biết b n mã và thuật toán mã hóa nhưng không biết khóa vẫn không thể tìm được b n rõ Nói cách khác, ta không cần giữ bí mật thuật toán mà chỉ cần giữ

bí mật khóa Việc giữ bí mật khóa trở thành điểm m u chốt c a hệ mã khóa loại này, nếu vì lý do nào đó mà khóa bị lộ thì t t c những văn b n hai bên trao đổi với nhau cũng sẽ bị lộ

Trong hệ mã khóa công khai

Để sử dụng hệ mã khóa đối x ng, yêu cầu hai bên trước khi truyền tin ph i có chung một giá trị khóa, giá trị này cần ph i giữ bí mật và điều này không thuận tiện

trong môi trường truyền thông công cộng như hiện nay Vì thế người ta đã đưa ra cách mã hóa khác, cho phép các bên trong hệ thống có thể truyền tin cho nhau bằng

Trang 18

cách công bố công khai thông tin cần cho việc lập mã, khiến cho người gửi và người nhận không cần quy ước trước với nhau, và cũng không có những bí mật chung Bên nhận sử dụng khóa bí mật c a mình và gi i mã để thu được văn b n gốc

Mã hóa được thực hiện r t dễ dàng, b t kỳ người nào cũng có thể làm được, còn việc gi i mã r t khó khăn nếu như không có khóa riêng Nếu có, nó thì việc gi i

mã cũng dễ như việc mã hóa Việc giữ bí mật khóa trong hệ mã khóa công khai không còn là v n đề lớn nữa, vì mỗi người có một khóa riêng chỉ có chính anh ta biết mà thôi nên kh năng anh ta làm lộ gần như là không có Vì vậy, tính an toàn

c a những hệ mã loại này nằm trong kh năng không bị lộ c a chìa khóa bí mật từ những thông tin công khai t t c mọi người đều có, mà điều này thì lại phụ thuộc

vào độ khó c a bài toán nào đó ví như: việc tính tích hai số nguyên tố lớn n = pq

Dễ dàng nhân hai số nguyên tố lớn p, q để thu được tích n c a chúng, nhưng bài toán sẽ là khó nếu cho giá trị tích n, xác định các nhân tử nguyên tố p, q c a nó Hay như bài toán nếu có số nguyên tố p, một phần tử nguyên th y α theo mod p, ta dễ dàng tính được = α x

mod pZ*p , với x là giá trị b t kỳ Nhưng nếu ngược lại biết , α, p khó tìm được số nguyên x ( 0 ≤ x ≤ p - 2) sao cho α x = mod p

Tuy nhiên, đến nay chưa có ch ng minh bằng toán học nào chỉ ra rằng đây thực sự là các bài toán khó, hoặc không thể gi i trong thời gian ch p nhận được

Trong sơ đồ định danh và xác nhận danh tính

Xưng danh và xác nhận danh tính là thuật ngữ ngày nay đang được nhắc đến

r t nhiều, nó đ m b o rằng bên nhận văn b n đúng là bên ta định hướng tới, hay chắc chắn rằng các thao tác trên văn b n là do bên được phép thực hiện Cho đến giữa những năm 1970 người ta vẫn còn cho rằng xưng danh và xác nhận danh tính với mã hóa thực ch t là cùng một mục tiêu an toàn thông tin Cùng với sự khám phá

ra hàm băm, chữ ký điện tử, người ta nhận ra rằng đó là hai mục tiêu an toàn thông

Trang 19

tin hoàn toàn độc lập Xưng danh và xác nhận danh tính r t cần thiết trong các hoạt động thông tin, đặc biệt là khi các hoạt động này thông qua mạng

Mục tiêu an toàn c a việc xưng danh là b o đ m sao cho khi “nghe” một ch thể A nào đó xưng danh với ch thể B, b t kỳ ai khác A cũng không thể mạo nhận mình là A, kể c chính B Nói cách khác, A muốn ch ng minh để bên kia B xác nhận danh tính c a mình mà không để lộ b t kỳ thông tin gì về mình Việc xưng danh thường ph i thông qua một giao th c hỏi - đáp nào đó, nhờ đó B có thể xác nhận danh tính c a A, B hỏi A, A tr lời để ch ng tỏ cho B biết là A có sở hữu một

bí mật riêng nào đó V n đề an toàn c a sơ đồ xưng danh là ph i đ m b o để sau khi

A xưng danh với B, thì b t kỳ người nào khác không thể mạo nhận mình là A kể c

B Nói cách khác, A không để lộ một thông tin gì về bí mật mà A có, ngoài thông tin duy nh t là A sở hữu bí mật đó

Sự an toàn c a sơ đồ xưng danh cũng nằm trong tính khó gi i c a các bài toán nào đó, hay dựa trên hàm một chiều nào đó

Trong hệ xác nhận và chữ ký điện tử

Bài toán b o mật được đáp ng bằng các gi i pháp mật mã Tuy nhiên, người nhận còn muốn kiểm thử tính xác thực nguồn gốc c a thông tin, cũng như chắc chắn là thông tin đã không bị thay đổi trong quá trình truyền đi, và nh t là cần ràng buộc danh tính c a bên đã gửi thông tin đi để sau đó anh ta không thể thoái thác là mình không gửi văn b n đó Những yêu cầu này được đáp ng bằng cách sử dụng chữ ký điện tử (CKĐT)

CKĐT có cùng mục đích như chữ ký viết tay, tuy nhiên nếu chữ ký viết tay dễ dàng gi mạo được thì CKĐT lại r t khó gi mạo, cộng thêm nó ch ng nhận nội dung c a thông tin cũng như là danh tính c a người gửi

Sơ đồ CKĐT cơ b n được mô t như dưới đây:

1) Người gửi (ch nhân c a văn b n) tạo chữ ký trên văn b n bằng khóa riêng

c a mình

2) Người gửi chuyển văn b n cùng chữ “ký” cho người nhận

Trang 20

3) Người nhận văn b n sử dụng chìa khóa công khai c a người gửi kiểm thử chữ ký trên văn b n nhận được

Chữ ký không thể làm gi được vì chỉ có duy nh t người gửi có chìa khóa bí mật để ký, và cũng không ai gi mạo được vì không có khóa bí mật Văn b n đã ký không thể thay đổi nội dung được nữa Người đã ký thì không thể thoái thác “chữ ký” c a mình

Bài toán xác nhận với CKĐT, theo nghĩa nào đó, có thể xem là “đối ngẫu” với bài toán mã hóa bằng hệ mã công khai Và vì thế nên sự an toàn c a các sơ đồ ký cũng giống như thuật toán mã khóa công khai phụ thuộc vào độ khó c a bài toán nào đó

2.4.2 Vấn đề an toàn khóa trong các gi i pháp b o m t

Trong hệ mã khóa công khai

Việc tính toán lập mã được công bố công khai (để mọi người trong mạng có thể thực hiện được) Việc gi i mã thì chỉ có người có chìa khóa riêng, bí mật mới có thể thực hiện được Quá trình để A gửi thông tin cho B sử dụng hệ mã với khóa công khai như sau:

1) A và B thống nh t với nhau về hệ mã công khai sẽ sử dụng

2) B gửi khóa công khai c a mình cho A (hoặc A l y được khóa công khai c a

B từ cơ sở dữ liệu công khai đặt ở một nơi nào đó)

3) A sử dụng khóa công khai c a B để mã hóa văn b n rồi gửi cho B

4) B dùng khóa bí mật c a mình để gi i mã văn b n nhận được từ A

Với những hệ mã khóa loại này ph i đ m b o dù kẻ t n công có biết thuật toán

và khóa công khai nhưng không biết khóa bí mật vẫn khó tìm được cách gi i mã Trong trường hợp, dữ liệu công khai được các bên l y từ một máy ch nào đó

ở xa, giao th c chỉ an toàn nếu gi i quyết được trường hợp tấn công người đứng giữa Nếu một kẻ W có kh năng tráo đổi chìa khóa trên cơ sở dữ liệu (CSDL) khóa

công khai thì người đó dễ dàng thu được toàn bộ thông tin mà A gửi cho B Muốn làm được việc này, anh ta chỉ việc l y khóa công khai c a mình tráo vào khóa công khai c a A; khi A l y chìa này để mã hóa thông tin gửi cho B, sẽ bị W thu được và

Trang 21

gi i mã; sau khi đọc xong thông tin anh ta sẽ mã hóa bằng khóa công khai c a B rồi gửi cho B; B vẫn nhận thông tin mà A gửi nhưng không biết là W đã nghe trộm toàn bộ thông tin này Bằng cách này, W cũng nghe được toàn bộ thông tin mà B gửi cho A

Điểm yếu c a hệ thống là khi A l y chìa công khai c a B để mã hóa thông tin

mà không biết chìa khóa đó có thực sự là c a B hay không Thêm nữa, nếu gi thiết rằng không một kẻ t n công nào có thể truy nhập được vào CSDL trên máy ch , thì

kh năng A nhận được một khóa “gi mạo” từ trung tâm vẫn có thể x y ra nếu như

W thu được các văn b n trên đường chuyển về cho A V n đề đặt ra là khắc phục tình trạng này như thế nào?

Trong hệ mã khóa đối xứng

Quá trình truyền tin c a hai bên A và B sử dụng hệ mã khóa đối x ng có thể được mô t như sau:

1) A và B thỏa thuận về hệ mã khóa

2) A và B thỏa thuận khóa dùng chung

3) A sử dụng thuật toán và khóa đã thỏa thuận mã hóa văn b n M muốn gửi cho B

4) A gửi cho B b n mã hóa đó

5) B gi i mã văn b n nhận được từ A bằng thuật toán và khóa đã thỏa thuận với A để thu được b n rõ M

W nào đó trên đường truyền muốn có được văn b n M, nếu anh ta nghe đường truyền ở bước (4), anh ta sẽ ph i cố gắng phân tích b n mã để thu được b n rõ Tuy nhiên, chúng ta có r t nhiều thuật toán để không cho phép W thực hiện mong muốn

c a mình Nhưng W không chịu lùi bước, anh ta cố gắng nghe đường truyền từ bước (2), và nếu như hai người không có một biện pháp b o vệ nào cho khóa thì những gì mà B có được thì W cũng có

Việc mã hóa thông tin bằng hệ mã đối x ng sử dụng chìa khóa chung cho c hai công việc lập mã và gi i mã, đặt ra yêu cầu là làm thế nào để hai bên có thể có chung một giá trị bí mật, không có bên nào khác có thể biết được Ta vừa nói rằng

Trang 22

với những hệ mã đối x ng thì giai đoạn A và B thống nh t với nhau về chìa khóa chung sẽ sử dụng là khâu yếu nh t Nếu chìa khóa này mà bị lộ không những kẻ gian biết được thông tin hai bên trao đổi với nhau mà còn có thể đóng gi “bên này”

để đánh lừa “bên kia” Gi i pháp đơn gi n nh t là sử dụng khóa phiên chỉ có hiệu lực trong kho ng thời gian nh t định Tuy nhiên đó không ph i là cách làm hay, và không khắc phục tận gốc v n đề Gi i quyết bài toán này càng khó khăn hơn khi ta biết rằng việc trao đổi khóa một cách tuyệt mật (có giá trị hơn dữ liệu) trong môi trường công cộng là vô cùng khó

Trong môi trường truyền thông công cộng

Chúng ta đang tiến đến thế giới c a hàng tỷ máy tính kết nối với nhau, nhờ

đó chúng ta có thể mua hàng trên Internet, gửi số thẻ tín dụng, tham gia thị trường ch ng khoán, kiểm tra tài kho n trong ngân hàng, và thực hiện các giao dịch thông qua Internet, thậm chí có thể ký các hợp đồng kinh tế qua mạng Những công việc liên quan đến chính lợi ích kinh tế c a chúng ta Do đó, v n đề làm sao để b o vệ tính bí mật và an toàn c a thông tin ngày càng to lớn và phổ biến hơn bao giờ hết

Hãy hình dung như thế này, mong muốn trao đổi các văn b n với nhau một cách an toàn (tin cậy, toàn vẹn, xác thực và không thể thoái thác) được thỏa mãn bằng cách sử dụng thuật toán mã hóa và công nghệ chữ ký điện tử Nếu sử dụng thuật toán mã hóa khóa đối x ng (thông thường các thuật toán khóa đối x ng nhanh hơn kho ng từ 30 - 100 lần so với các thuật toán phi đối x ng tương đương) thì khóa đối x ng được thống nh t và trao đổi với nhau bằng cách nào đó chỉ có hai bên tham gia trao đổi mới biết mà thôi

2.5 Một số khái niệm liên quan

* Xác lập khóa: là tiến trình trong đó hai (hoặc nhiều) đối tượng xác lập một khóa

bí mật được chia sẻ Trong thực tế có hai kiểu giao th c xác lập khóa:

1) Các giao th c chuyển khóa, trong đó một khóa được phát sinh bởi một đối tượng và truyền bí mật đến đối tượng th hai

Trang 23

2) Các giao th c thỏa thuận khóa, trong đó c hai đối tượng trao đổi các thông

tin để xác lập một khóa bí mật được chia sẻ

Trong luận văn này, người viết chỉ quan tâm đến các giao th c thỏa thuận (trao

đổi) khóa giữa hai đối tượng

* Giao thức: là một thuật toán có sự tham gia c a nhiều bên, được xác định

chính xác bởi một chuỗi các bước hoạt động c a các bên tham gia nhằm đạt được mục tiêu xác định Ngoài nhiệm vụ thiết lập một giá trị khóa chung cho hai bên, đôi khi các bên còn đòi hỏi giao th c cung c p tính xác thực, các kh năng xác thực c a giao th c có thể là:

- Xác thực khóa (key authentication): là kh năng giao th c cho phép một bên

được b o đ m rằng ngoại trừ đúng bên đúng với thông tin danh tính đã xác định trước thì không một ai khác có thể tính được giá trị bí mật Điều này có nghĩa là nếu

A (B) muốn thiết lập, hoặc chuyển cho B (A) khóa bí mật bằng cách sử dụng một giao th c có kh năng xác thực khóa thì sau khi kết thúc giao th c A chắc chắn rằng chỉ có B mới có thể thu được giá trị đó Xác thực khóa đôi khi còn được gọi là xác

thực khóa ẩn (implicit key authentication)

- Xác nhận khóa (key confirmation): là kh năng giao th c cho phép một bên

chắc chắn rằng bên kia đã có giá trị bí mật Nghĩa là sau khi kết thúc giao th c A chắc chắn rằng B đã thu được giá trị bí mật K

- Xác thực khóa hiện (explicit key authentication): Giao th c có kh năng xác

thực khóa và xác nhận khóa thì được gọi là giao th c xác thực khóa hiện

- Xác thực thực thể (entity authentication): là quá trình cho phép một bên được

đ m b o về danh tính c a bên kia, và thực sự bên kia đã tham gia vào hoạt động c a giao th c

Các giao th c có thể chỉ cung c p xác thực thực thể đơn phương (t c là chỉ cho phép xác thực theo một chiều hoặc là A về B, hoặc là B về A)

* Các giao th c có thể bị t n công dưới dạng các hình th c sau:

Trang 24

- Tấn công thụ động (còn gọi là tấn công bị động – passive attack): quan sát,

nghe trộm quá trình thực hiện giao th c nhưng không làm nh hưởng tới giao th c

và không thay đổi được thông tin giao dịch

- Tấn công chủ động (active attack): tìm cách thay đổi giao th c (theo hướng

có lợi cho mình), thay đổi thông tin, xóa thông tin thực, tạo thông tin gi , tham gia vào giao dịch

An toàn khóa trong các giao thức trao đổi

Giao th c trao đổi khóa là quá trình thực hiện mà nhờ đó hai (hay nhiều) bên cùng nhau thiết lập khóa bí mật dùng chung thông qua quá trình truyền thông trên một kênh công cộng

Sau một số bước trao đổi gói tin cho nhau, A và B sẽ có chung một giá trị K Bài toán an toàn khóa đặt ra trong các giao th c này là:

1) M c th nh t là nếu W thu được các gói tin A, B gửi cho nhau vẫn không thể xác định được giá trị khóa chung K đó

2) M c th hai là ngoài việc giao th c đ m b o an toàn m c một thì giao th c ph i

có tính xác thực ẩn

3) M c th ba là m c th hai, ngoài ra c hai bên chắc chắn về bên sẽ dùng chung khóa với mình, và thực sự đã có các giá trị khóa đó T c là giao th c xác thực hiện và xác thực thực thể

Một số tính chất của phép chia modulo

Cho a, b và n là các số nguyên, phép modulo có các tính ch t sau:

* (a + b) mod n = [ ( a mod n) + (b mod n)] mod n

* (a - b) mod n = [ ( a mod n) - (b mod n)] mod n

* (a x b) mod n = [ ( a mod n) x (b mod n)] mod n

Trang 25

ớc số: Nếu a mod n = 0 (viêt cách khác a ≡ 0 mod n) thì có nghĩa là a chia hết

cho n, hay n là ước số c a a

Số nguyên tố: Một số p là số nguyên tố nếu p chỉ chia hết cho 1 và chính nó,

ngoài ra không chia hết cho số nào khác từ 2 đến p-1

Số nguyên tố cùng nhau: hai số a, b được gọi là nguyên tố cùng nhau nếu ước

số chung lớn nh t c a a và b là 1

Phần tử nghịch đảo của phép nhân modulo: Nếu hai số nguyên a và n là nguyên

tố cùng nhau thì tồn tại số nguyên w sao cho:

2.6 2 Cơ b n về đ i số trừu tượng

Các thuật toán mật mã thực hiện biến đổi tin t c dưới dạng các số hoặc các phần tử trong không gian hữu hạn Khi đó các phép mã và gi i mã, thực hiện biến

đổi tin t c từ một dạng này sang một dạng khác cần ph i có đặc tính đóng (closure property) trong không gian hữu hạn Tuy nhiên các toán tử số học thông thường trên các số – phép cộng, trừ, nhân, chia – không có các đặc tính này Vì vậy, các thuật toán mật mã hoạt động trong không gian hữu hạn để biến đổi tin t c, như đã biết, không chỉ dẫn tới các toán tử số học thông thường Mà chúng làm việc trong không gian có các c u trúc đại số riêng biệt, để b o đ m đặc tính đóng Đại số trừu tượng là một ngành toán học liên quan đến việc nghiên c u các c u trúc đại số như nhóm, vành, trường, hay các c u trúc tổng quát khác và nó có vai trò quan trọng trong mật mã hiện đại [12]

Nhóm (group)

Nhóm (G, °) là một tập hợp G cùng với một phép toán hai ngôi, ký hiệu ° (là một ánh xạ từ tập G × G → G) thỏa mãn các tiên đề sau:

G1 Tính đóng: Nếu a, b  G, thì a ° b  G

Trang 26

G2 Tính kết hợp: (a ° b) ° c = a ° (b ° c), với a, b, c  G

G3 Phần tử đơn vị (trung hòa): Trong G tồn tại một phần tử được gọi là phần

tử đơn vị e sao cho với a  G thì a ° e = e ° a = a

G4 Phần tử nghịch đ o: Với mỗi phần tử a  G tồn tại một phần tử a-1, gọi là phần tử nghịch đ o c a a, sao cho: a-1

° a = a ° a-1 = e

Chú ý: toán tử ° là ký hiệu chung và có thể đại diện cho toán tử cộng, nhân hoặc các toán tử toán học khác

* Nhóm vòng (nhóm cyclic)

Nói một cách không hình th c, nhóm có biểu diễn vòng, thì được gọi là nhóm

vòng (cyclic group) Các nhóm như thể có nhiều đặc tính r t h p dẫn và chúng được các ng dụng rộng rãi trong mật mã học

Đ nh nghĩa (Nhóm cyclic, phần t sinh của nhóm)

Nhóm G gọi là nhóm cyclic, nếu như tồn tại phần tửa G  , sao cho đối với

Z = 0, 1, 2, 3, 4, 5 =< 1>=< 5 >, bởi vì mọi phần tử c a Z6 đều có thể biểu

diễn dưới dạng tổng c a 1 hoặc 5 theo modulo 6

9

Z = 1, 2, 4, 5, 7, 8 = < 2 > = < 5 >, bởi vì mọi phần tử c a Z9đều có thể biểu

diễn dưới dạng tích c a các số 2 hoặc 5 theo modulo 9

ch t đặc biệt Một trong các tính ch t đó là “kho ng cách” đến phần tử đơn vị

Trang 27

* Nhóm nhân Z n

Đ nh nghĩa

Nhóm *

n

Z được gọi là nhóm nhân với toán tử nhân c a nhóm, bao gồm các

phần tử là số nguyên dương, nhỏ hơn n và nguyên tố cùng nhau với n Nhóm này

bao gồm (n) = (p – 1)(q – 1) phần tử

Nhóm này có nhiều ng dụng trong lý thuyết số và mật mã học Đặc biệt là

việc tìm bậc c a nhóm giúp kiểm tra số nguyên tố n Nếu như bậc c a nhóm là n –1 thì n là số nguyên tố

Vành (R, +, ) ch a tập R với hai phép toán hai ngôi (được ký hiệu là + (cộng)

và  (nhân)) thỏa mãn các tiên đề sau:

R1 (R, +) là một nhóm giao hoán đối với phép cộng Phần tử đơn vị đối với

phép cộng (không) được ký hiệu 0

R2 Phép  có tính phân phối đối với phép +, nghĩa là:

R4 Đối với phép  vành R phù hợp theo các tiên đề đóng kín, kết hợp Phần tử

đơn vị đối với phép nhân (đơn vị) được ký hiệu 1, với 1  0

Trường (Field)

Trang 28

Nếu các phần tử khác không c a vành tạo thành nhóm tương ng với phép nhân thì gọi vành đó là trường

2.6 3 Bài toán logarit r i r c

Phát biểu bài toán logarit rời rạc: Cho số nguyên tố p, gọi *

thuật toán có thời gian đa th c nào có thể gi i quyết được bài toán này Với p có tối thiểu 150 chữ số và p – 1 có thừa số nguyên tố đ lớn, phép toán lũy thừa modulo p

có thể xem như là hàm một chiều hay việc gi i bài toán logarit rời rạc trên Z p xem như không thể thực hiện được Lợi thế c a bài toán logarit rời rạc trong xây dựng hệ mật là khó tìm được logarit rời rạc, song bài toán l y luỹ thừa lại có thể tính toán hiệu qu theo thuật toán "bình phương và nhân liên tiếp" [12] Nói cách khác, lũy

thừa theo modulo p là hàm một chiều với các số nguyên tố p thích hợp

Các phương pháp tấn công bài toán logarit rời rạc

Hiện nay có khá nhiều phương pháp sử dụng để tính toán bài toán logarit rời

rạc [12] Mỗi phương pháp đều có những ưu điển trên từng mặt khác nhau Phần

tiếp theo người viết xin trình bày những phương pháp được đánh giá là tốt nh t và thông dụng nh t Trong từng phương pháp người viết cũng đưa ra thuật toán m c

độ khá chi tiết để có thể dễ dàng cài đặt

* Thuật toán Baby-Step Giant-Step

Một trong những thuật toán nổi tiếng dùng để gi i bài toán logarit rời rạc là thuật toán Baby-Step Gaint-Step do Shanks đề xu t Độ ph c tạp về thời gian tính

Trang 29

toán c a thuật toán đánh giá là O( n ) Thuật toán thực hiện như sau: tính m =

1/ 2

n

 

 ,    v g , x = loggv luôn nhỏ hơn n, vậy nó có thể được viết dưới dạng a +

bm với a và b nhỏ hơn m Từ biểu th c logv a bm

Độ ph c tạp thời gian c a thuật toán là số phép so sánh giữa hai dãy, mỗi dãy

có m phần tử Thực tế thì số phép so sánh trong nhóm nhân là O( n ), kéo theo đó

ta có độ ph c tạp không gian cũng là O( n )

*Thuật toán Pohlig-Hellman

Thuật toán Pohlig-Hellman sử dụng cho tính toán gi i bài toán logarit rời rạc trong nhóm nhân Cơ sở để thực hiện thuật toán dựa trên định lý phần dư Trung Hoa Thuật toán được phát hiện bởi Roland Silver, nhưng công bố đầu tiên bởi Stephen Pohlig và Martin Hellman (Nghiên c u độc lập với Silver)

Trang 30

Các bước thực hiện của thuật toán

Input : g là phần tử sinh của nhóm cyclic *

1) Tìm khai triển thừa số nguyên tố 1 2 t

Độ ph c tạp thời gian c a thuật toán Pohlig-Hellman là O( n ) cho một nhóm hạng

n , nhưng nó đặc biệt hiệu qu nếu n có thể phân tích thành các số nguyên tố nhỏ

*Thuật toán Pollard’s rho

Thuật toán Pollard’s rho là thuật toán thực hiện phân tích thừa số c a số nguyên Thuật toán được phát triển bởi John Pollard năm 1975 Nó đặc biệt hiệu

qu trong trường hợp phân tách hợp số có thừa số nhỏ Tư tưởng c a thuật toán dựa

trên thuật toán Floyd’s cycle-finding và theo dõi hai số x và y đồng dư modulo p Các bước thực hiện của thuật toán

Trang 31

b := b 2 + 1 (Thực hiện 2 lần tính b)

ii Tính d := GCD(a-b,n) iii If d = n return ‘không có’

Else return d

Độ phức tạp

Độ ph c tạp về thời gian và không gian c a thuật toán đều là O( n ).

2.7 Các thu t toán m t mã liên quan

2.7.1 Hệ m t Elgamal

Hệ mật mã Elgamal được T.Elgamal đề xu t năm 1985, dựa vào độ ph c tạp

c a bài toán tính logarit rời rạc, và sau đó đã nhanh chóng được sử dụng rộng rãi không những trong v n đề b o mật truyền tin mà còn trong các v n đề xác nhận và chữ ký điện tử

Hệ mật Elgamal là một hệ mật không xác định vì b n mã phụ thuộc vào c b n rõ

x lẫn giá trị ngẫu nhiên k do G chọn Bởi vậy sẽ có nhiều b n mã được mã từ cùng một

b n rõ, nghĩa la có rât nhiều gia tri ̣ chữ ky cho cùng mô ̣t bưc điê ̣n cho trươc Thuâ ̣t toan xác minh phải có khả năng nhâ ̣n bât ky gia tri ̣ chữ ky nao như la viê ̣c xac thực [4] Sơ

đô chữ ky Elgamal được miêu tả như sau:

Cho p là một số nguyên tố như là bài toán logarit rời rạc trong Z p

α Z p *là một phần tử nguyên tử

P = Z p * , A = (Z p *).Z p-1

- Định nghĩa: K = {(p, α, a, ): ≡ α a

(mod p)}

Trong đo giá trị p, α và là công khai, còn a là bi mật

Với K = (p, α, a, ) và chọn một số ngẫu nhiên k Z p-1 *

Trang 32

Ta th y rằng sơ đồ chữ ký được định nghĩa như trên là hợp th c Thực vậy,

nếu sig k (x,k) = ( , δ) thì ta có : δ ≡ α a

α kδ mod p ≡ α x

mod pk.δ + a ≡ x mod (p -1) Do đó, ver k (x,( , δ)) = TRUE

Bên nhận B sẽ tinh toan chữ ky bằng viê ̣c sử dụng cả gia tri ̣ bi mâ ̣t a (mô ̣t

phân của khoa) và số bí mật ngẫu nhiên k (giá trị để ký b c điện) Viê ̣c xac minh có

thể thực hiê ̣n được chỉ vơi cac thông tin được công khai

Theo các sơ đồ chữ ký ở trên thì chữ ký c a thông điệp cũng có độ dài bằng

độ dài c a thông điệp, đó là một điều b t tiện Ta mong muốn như trong trường hợp chữ ký viết tay, chữ ký có độ dài ngắn và hạn chế cho dù văn b n có độ dài bằng bao nhiêu Vì chữ ký số được ký cho từng bit c a thông điệp, nếu muốn chữ ký có

độ dài hạn chế trên thông điệp có độ dài tùy ý thì ta ph i tìm cách rút gọn độ dài thông điệp Nhưng b n thân thông điệp không thể rút ngắn được, nên chỉ còn cách

là tìm cho mỗi thông điệp một thông điệp thu gọn có độ dài hạn chế và thay việc ký

trên thông điệp , ta ký trên thông điệp thu gọn , t c la chia thông điệp lơn thanh

những đoa ̣n nhỏ 160 bit, và sau đó ký lên mỗi đoạn nhỏ đó , điều nay cũng tương tự

như mã hoa một chuỗi dai bản rõ bằng viê ̣c mã hoa tưng ky tự bản rõ sử dụng cùng

một khóa [9]

Để gi i quyết v n đề này, người ta sử dụng hàm băm (hash function) Các hàm

băm đóng vai trò cơ b n trong mã khóa công khai Hàm băm sẽ tạo ra một đầu ra từ

b n tin đầu vào Đầu ra này được định nghĩa là một mã băm

Trang 33

2.7.2.2 Khái niệm

Mô ̣t ham băm H sẽ lây ở đâu vao mô ̣t thông tin X có kich thươc biên thiên va

sinh kêt quả la một chuỗi có độ dai cô đi ̣nh , được gọi la b n tóm lược của thông

điệp (message digest)

Ví dụ: khi bên B muôn ky mô ̣t thông điệp x (đô ̣ dai bât ky ), đâu tiên anh ta

ph i có b n tóm lược của thông điệp z = h(x) (độ dai cô đi ̣nh) và sau đó ký y

= sig k (z) Anh ta phat că ̣p (x,y) lên kênh truyền , bây giơ viê ̣c kiểm tra có thể thực

hiê ̣n bằng viê ̣c tinh la ̣i b n tóm lược của thông điệp z = h(x), sau đó kiểm tra

ver k (z,y)có bằng TRUE hay không

Hình 2.3 Sơ đồ ký và kiểm thử sử dụng hàm băm

Hàm băm là một hàm tính toán có hiệu qu khi ánh xạ các dòng nhị phân có độ dài tuỳ ý thành các dòng nhị phân có độ dài cố định nào đó

chăn sẽ tôn ta ̣i đụng đô ̣ , nghĩa là có hai đoạn thông điệp con x ≠ x’ mà giá trị băm

c a chúng là giống nhau, tưc h(x) = h(x’)

Trang 34

Sau đây chúng ta sẽ xét cac da ̣ng tân công có thể có , tư đó rút ra cac tinh chât

c a hàm băm:

Dạng t n công th nh t là người C bắt đầu với một thông điệp được ký có giá trị

(x, y ), trong đó y = sig k (h(x)) (că ̣p (x, y) có thể la bât ky thông điệp trươc đó ma B đã ký) Sau đó, C tinh z = h(x) và cố gắng tìm x’≠ x để h(x’) = h(x) Nêu C lam được điều này thì cặp (x’, y) sẽ la mô ̣t bưc điê ̣n được ky có gia tri ̣ (mô ̣t bưc điê ̣n giả ma ̣o có gia

trị) Để ngăn cản viê ̣c nay, hàm băm h ph i thỏa mãn tính ch t sau:

Tính chất 1:

Một hàm băm h có tính không va chạm yếu khi với một bức điện x cho trước ,không tìm ra một bức điện x’≠ x sao cho h(x’) = h(x)

Mô ̣t da ̣ng tân công khac ma ngươi C có thể lam la : đâu tiên anh ta tìm hai

thông điệp x ≠ x’ sao cho h(x) = h(x’) Sau đó C đưa thông điệp x cho B va thuyêt phục B ký vào b n tóm lược th ông điệp h(x); và vì vậy, anh ta tìm được y Như vâ ̣y,

că ̣p (x’, y) là một cặp chữ ký gi có giá trị Điều nay la nguyên nhân ma viê ̣c thiêt

kê ham băm phải thoả mãn tinh chât 2 như sau:

Tính chất 2:

Một hàm băm h có tính không v a chạm mạnh khi không có khả năng tính toán

để tìm ra thông điệp x và x’ sao cho x’ ≠ x và h(x’) = h(x)

Nhận xét: Không va chạm mạnh bao hàm cả va chạm yếu

Dạng t n công th ba là chọn một giá trị b n tóm lược z ngẫu nhiên Ngươi C sẽ tinh

mô ̣t chữ ký vơi mô ̣t gia tri ̣ ngẫu nhiên z, sau đó anh ta tìm mô ̣t thông điệp x sao cho z =

h(x) Nêu anh ta lam được điều nay thì că ̣p (x, y) là cặp chữ ký gi có giá trị Như vâ ̣y mô ̣t tính ch t nữa mà h cân thoả mãn la tinh một chiều:

Tính chất 3:

Một hàm băm h có tính một chiều khi cho trước một bản tóm lược của thông điệp z, không thể thực hiện về mặt tính toán để tìm được một thông điệp x sao cho h(x) = z

Trang 35

2.7.2.4 Tìm hiểu một hàm băm đặc trưng

Có r t nhiều hàm băm được sử dụng trong việc mã hóa các thông điệp c a người gửi, các hàm băm được coi là an toàn là các hàm băm 128 bit (như MD5 ) vì

khi đó số phép thử cần tính sẽ là 2 64

Tuy nhiên hiện nay với sự phát triển c a các thuật toán thám mã hàm băm mới được phát hiện thì các hàm băm 128 bit cũng được khuyến nghị là không nên sử dụng trong các hệ thống b o mật mới mà thay vào đó các hàm băm được khuyến nghị nên sử dụng là là các hàm băm 164 bit như DSS, SHA-2

Dưới đây là những lý thuyết cơ b n về hàm băm SHA-1

SHA (Secure Hash Algorithm) có nguồn gốc từ NIST & cơ quan An ninh

Quốc gia Hoa Kỳ (National Security Agency – NSA) vào năm 1993, sau đó được

nâng c p vào 1995 theo chuẩn US và chuẩn là FIPS 180-1 1995 và Internet RFC3174, được nhắc đến như SHA-1 Nó được sử dụng với sơ đồ chữ ký điện tử

DSA (Digital Signature Algorithm) Thuật toán là SHA dựa trên thiết kế MD4 với một số khác biệt tạo nên giá trị băm 160 bit

* Mô tả

Đầu vào c a thuật toán là một thông điệp có chiều dài b t kỳ nhỏ hơn 2 64

bit, SHA-1 cho ra kết qu là một thông điệp rút gọn có độ dài là 160 bit

* Mở rộng thông điệp

f(t;B,C,D)được định nghĩa như sau:

f(t;B,C,D) = (B AND C) OR ((NOT B) AND D) (0 ≤ t ≤ 19)

f(t;B,C,D) = B XOR C XOR D (20 ≤ t ≤39)

f(t ;B,C,D) = (B AND C) OR (B AND D) OR (C AND D) (40 ≤ t ≤59)

f(t;B,C,D) = B XOR C XOR D (60 ≤ t ≤79)

Thông điệp M được mở rộng trước khi thực hiện băm Mục đích c a việc mở

rộng này là để đ m b o cho thông điệp mở rộng có độ dài là bội số c a 512

Gi sử độ dài c a thông điệp là l bit Thêm bit 1 vào cuối thông điệp, theo sau là k bit

0 (k là số dương không âm nhỏ nh t sao cho 1 + 1 + k = 448 (mod512)) Sau đó thêm

khối 64 bit là biểu diễn nhị phân c a l

Trang 36

- Phân tích thông điệp mở rộng:

Sau khi thông điệp đã được mở rộng, thông điệp mở rộng được phân tích

thành N khối 512 bit M(1), M(2), …, M(n) Trong đó 512 bit c a khối dữ liệu đầu

vào có thể được thể hiện bằng 16 từ 32 bit

* Khởi tạo giá trị băm

Giá trị băm là một chuỗi bit có kích thước bằng kích thước c a thông điệp băm

(trừ SHA-384) gồm các từ ghép lại Trong đó Hj(i)là từ j trong giá trị băm ở lần lặp i với 0 ≤ i ≤ N (số block có được sau khi chia văn b n được đệm) và 0 ≤ j ≤ (số từ trong giá trị băm -1) Trước khi thực hiện giá trị băm, với mỗi thuật toán băm an toàn, giá trị băm ban đầu H(0) ph i được thiết lập Kích thước và số lượng từ trong H(0)tuỳ thuộc vào kích thước thông điệp rút gọn

SHA-1 sử dụng dãy các hằng số K(0),…, K(79) có giá trị như sau:

K(t) = 5A827999 (0 ≤ t ≤ 19)

K(t) = 6ED9EBA1 (20 ≤ t ≤ 39)

K(t) = 8F1BBCDC (40 ≤ t ≤ 59)

K(t) = CA62C1D6 (60 ≤ t ≤ 79)

* Thuật toán của bước tính giá trị băm SHA-1

SHA-1 được sử dụng để băm thông điệp M có độ dài l bit tho mãn điều kiện 0 ≤ l ≤ 2 64

Thuật toán sử dụng: một b ng phân bố thông điệp gồm 80 từ - 32 bit, 5 biến -

32 bit, một giá trị băm gồm 5 từ - 32 bit Kết qu c a SHA-1 là một thông điệp rút

gọn có độ dài 160 bit Các từ c a b ng phân bố thông điệp được ký hiệu W(0), W(1),…, W(79) Năm biến được ký hiệu là a, b, c, d, e Các từ c a giá trị băm ký hiệu H 0

(i)

,H 1 (i) , H 2 (i) , H 3 (i) ,H 4 (i) H(0) giữ giá trị băm ban đầu và được thay thế bằng

các giá trị băm thành công H(i) sau mỗi khối thông điệp được xử lý và kết thúc bằng giá trị băm cuối cùng H(N)

Trang 37

* Tính toán thông điệp băm

X <<< n có nghĩa là loại bỏ từ trái sang ph i n bit và thêm vào kết qu n số

0 vào bên ph i (biểu diễn dịch trái n bit)

X >>> n có nghĩa là loại bỏ từ ph i qua trái n bit và thêm vào kết qu n số 0 vào bên trái (biểu diễn dịch ph i n bit)

Khởi tạo H: H(0) = 67452301; H(1) = EFCDAB89; H(2) = 98BADCFE ; H(3) = 10325476; H(4) = C3D2E1F0 Các khối bit H(i) được coi như các thanh ghi dịch và thường gọi là các chuỗi biến số (với Hàm băm MD5 chỉ có bốn khối)

Có thể mô t một vòng lặp c a SHA-1 như sau: chia thông điệp M thành các khối M(i) 512 bit, mỗi khối M(i) lại được chia thành 16 khối 32 bit W(0), W(1),…, W(15).

H(3) = H(3) + d

Trang 38

H(4) = H(4) + e

Sau khi tính toán được hết các chuỗi M(n) 512 bit, thông điệp rút gọn là một chuỗi 160 bit là biểu diễn c a 5 từ: H(0) H(1) H(2) H(3) H(4)

* Đánh giá thuật toán

- SHA-1 được xem là an toàn đối với hiện tượng đụng độ vì r t khó tìm được hai thông điệp khác nhau có giá trị băm giống nhau

- SHA-1 cộng thêm các bit gi để tạo thành các khối chia hết cho 512 bit, sử

dụng một hàm phi tuyến f cho c bốn vòng lặp

- SHA-1 sử dụng mỗi hằng s ố cho mỗi vòng biến đổi , hằng sô di ̣ch nay la

mô ̣t sô nguyên tô đôi vơi đô ̣ lơn của word (giông vơi MD4)

- SHA-1 được coi là chuẩn c a việc b o vệ các kênh liên lạc trực tuyến tồn tại trong chín năm qua

- SHA-1 được thiết kế cho bộ xử lý 32 bit, thế hệ sắp tới c a máy tính dùng các bộ xử lý 64 bit mà SHA-1 không hiệu qu trên bộ xử lý này

- Tháng 2 năm 2005 SHA-1 bị t n công bởi ba chuyên gia người Trung Quốc Thuật toán này đã bị gi i mã thông qua phương pháp tính phân bổ Tuy nhiên, nếu t n công bằng phương pháp vét cạn thì với độ dài hàm băm 160 bit thì SHA-1 r t khó bị phá vỡ

Năm 2002, NIST xu t b n, sửa chữa và đề nghị bổ sung thêm ba phiên b n SHA mới là: SHA-2 gồm có SHA-256, SHA-384 và SHA-512 Tháng 2 năm 2004, thuật toán hàm băm SHA-224 cũng được NIST công nhận thành chuẩn hàm băm an toàn Các phiên b n mới được thiết kế với việc tăng độ dài c a hàm băm và độ ph c tạp tính toán lên để tăng độ an toàn dựa trên chuẩn mã nâng cao AES C u trúc c a các phiên b n mới giống với SHA-1 nhưng có độ an toàn cao hơn nhiều

Năm 2012 xu t b n phiên b n SHA mới là SHA-3 (Keccak) để sẵn sàng sử dụng thay thế cho SHA-2 đ m b o tính an toàn c a hàm băm

Trang 39

B ng 2.1 Các tính ch t c a các thuật toán băm an toàn Thuật toán

Kích thước (Bit) Thông điệp Khối Từ Thông điệp rút gọn

2.7.3.1 Giới thiệu chung

Con người đã sử dụng các hợp đồng dưới dạng số từ hơn 100 năm nay với việc sử dụng mã Morse và điện tín Vào năm 1889, tòa án tối cao bang New Hampshire (Hoa kỳ) đã phê chuẩn tính hiệu lực c a CKS Tuy nhiên, chỉ với những phát triển c a khoa học kỹ thuật gần đây thì chữ ký số mới đi vào cuộc sống một cách rộng rãi Vào thập kỷ 1980, các công ty và một số cá nhân bắt đầu sử dụng máy fax để truyền đi các tài liệu quan trọng Mặc dù chữ ký trên các tài liệu này vẫn

Trang 40

thể hiện trên gi y nhưng quá trình truyền và nhận chúng hoàn toàn dựa trên tín hiệu

số

CKS là một chuỗi gắn kết một thông điệp với một (hoặc nhiều) thực thể nguồn nào đó Ta sẽ th o luận một vài khác biệt cơ b n giữa chữ ký thường (ký trên gi y, bằng bút) với CKS (mã hoá từng bít c a thông điệp) thông qua b ng so sánh 2.2 [4] Còn một điểm khác biệt cơ b n nữa giữa chữ ký thông thường và CKS đó là việc dùng lại B n sao c a thông điệp được ký bằng CKS thì đồng nh t với b n gốc, còn b n sao thông điệp được ký bằng chữ ký thông thường lại có thể khác với b n gốc Điều này có nghĩa là cần ph i ngăn chặn một b c thông điệp ký số không bị

dùng lại Ví dụ: A ký một b c thông điệp số xác nhận B rút 1000$ trong tài kho n

c a A, A chỉ muốn B làm điều đó một lần, do đó b n thân b c điện cần ch a thông

tin (Ví dụ ngày, tháng) để ngăn nó khỏi bị dùng lại Đối với các hoạt động trên môi trường mạng ngày càng phát triển như hiện nay, chữ ký điện tử là một hình th c để

b o đ m tính pháp lý c a các cam kết Nó ph i đáp ng được các yêu cầu:

 Người nhận có thể xác thực được đặc điểm nhận dạng c a người gửi

 Người gửi sau này không thể chối bỏ nội dung c a b n tin đã gửi

 Người gửi không thể bịa đặt thay đổi b n tin sau khi đã gửi

Tiếp theo, ta cần phân biệt rõ ràng hai khái niệm CKĐT và CKS Trên môi trường mạng, b t c dạng thông tin nào được sử dụng để nhận biết một con người đều được coi là chữ ký điện tử Ví dụ một đoạn âm thanh hoặc hình nh được chèn vào cuối e-mail, đó cũng là CKĐT Có thể hình dung CKĐT là cách chụp vân tay,

chữ ký, biểu tượng được chọn để quét vào văn b n Cách này hiện một số công ty

áp dụng, nhưng không thể sử dụng đ m b o an toàn trong những giao dịch tiền thật qua mạng o được

CKS là một dạng chữ ký điện tử, an toàn nh t và cũng được sử dụng rộng rãi

nh t Chữ ký này hình thành dựa trên kỹ thuật mã khoá công khai (public key infrastructure - PKI), theo đó mỗi người sử dụng cần có một cặp khóa bao gồm khóa bí mật và công khai Người ch chữ ký sử dụng khoá bí mật để tạo CKS (trên

cơ sở kết hợp với nội dung thông điệp dữ liệu), ghép nó với thông điệp dữ liệu và

Ngày đăng: 18/11/2020, 14:00

HÌNH ẢNH LIÊN QUAN

Hình 2.1. Mô hình chung c a h ệ  th ố ng m ật mã khóa đố i x ng - Nghiên cứu giao thức trao đổi khóa an toàn
Hình 2.1. Mô hình chung c a h ệ th ố ng m ật mã khóa đố i x ng (Trang 14)
Hình 2.2. a) Ch c năng b o mật c a hệ mật với khóa công khai - Nghiên cứu giao thức trao đổi khóa an toàn
Hình 2.2. a) Ch c năng b o mật c a hệ mật với khóa công khai (Trang 16)
Hình 2.2. b) Ch c năng xác thự c c a h ệ  m ậ t v ớ i khóa công khai - Nghiên cứu giao thức trao đổi khóa an toàn
Hình 2.2. b) Ch c năng xác thự c c a h ệ m ậ t v ớ i khóa công khai (Trang 16)
Hình 2.3 . Sơ đồ  ký và ki ể m th ử  s ử  d ụng hàm băm - Nghiên cứu giao thức trao đổi khóa an toàn
Hình 2.3 Sơ đồ ký và ki ể m th ử s ử d ụng hàm băm (Trang 33)
Hình 3.1. Giao th ức TĐK củ a Arazi - Nghiên cứu giao thức trao đổi khóa an toàn
Hình 3.1. Giao th ức TĐK củ a Arazi (Trang 53)
Hình 3.2. Giao thức TĐK ba vòng của Lein Harn - Nghiên cứu giao thức trao đổi khóa an toàn
Hình 3.2. Giao thức TĐK ba vòng của Lein Harn (Trang 55)
Hình 3.4. Giao th ức TĐK Li u và Li c ả i ti ế n - Nghiên cứu giao thức trao đổi khóa an toàn
Hình 3.4. Giao th ức TĐK Li u và Li c ả i ti ế n (Trang 60)
Hình 3.5. Giao th ức TĐK ARRSDH -DSA - Nghiên cứu giao thức trao đổi khóa an toàn
Hình 3.5. Giao th ức TĐK ARRSDH -DSA (Trang 67)
Hình 3.6. Giao di ệ n nh ậ p khóa bí m ậ t - Nghiên cứu giao thức trao đổi khóa an toàn
Hình 3.6. Giao di ệ n nh ậ p khóa bí m ậ t (Trang 72)
Hình 3.7. Mô ph ỏng bướ c m ộ t c ủ a giao th ứ c - Nghiên cứu giao thức trao đổi khóa an toàn
Hình 3.7. Mô ph ỏng bướ c m ộ t c ủ a giao th ứ c (Trang 73)
Hình 3.10. Mô ph ỏng bướ c b ố n c ủ a giao th ứ c - Nghiên cứu giao thức trao đổi khóa an toàn
Hình 3.10. Mô ph ỏng bướ c b ố n c ủ a giao th ứ c (Trang 74)
Hình 3.9. Mô ph ỏng bướ c ba c ủ a giao th ứ c - Nghiên cứu giao thức trao đổi khóa an toàn
Hình 3.9. Mô ph ỏng bướ c ba c ủ a giao th ứ c (Trang 74)
Hình 3.11. Mô ph ỏng bướ c b ố n c ủ a giao th ứ c - Nghiên cứu giao thức trao đổi khóa an toàn
Hình 3.11. Mô ph ỏng bướ c b ố n c ủ a giao th ứ c (Trang 75)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w