Michael O. Rabin là người đầu tiên tìm ra và đề xuất một hệ thống mật mã có thể được chứng minh bằng cách tính toán tương đương đối với các bài toán khó (như bài toán tìm thừa số thực) vào năm 1979. Nhược điểm chính của hệ thống mật mã bất đối xứng Rabin là khi tiến hành giải mã thì cần dùng khóa bí mật và bản mã thu được để tìm ra bốn căn bậc hai cần thiết, rồi phải quyết định chọn căn bậc hai nào để biểu diễn đúng bản tin bản rõ. Hạn chế này có thể được khắc phục bằng cách thêm một số dư thừa đối với bản tin bản rõ ban đầu trong quá trình mã hóa. Sau đó với xác suất cao của một trong bốn căn bậc hai với dư thừa này, thì người thu có thể dễ dàng lựa chọn giá trị biểu diễn đúng bản tin bản rõ [10)].
Rabin đã phát triển hệ mật mã hóa bất đối xứng dựa vào độ phức tạp của việc tính toán modul bình phương của một số nguyên. Lý thuyết hệ mật Rabin có ý nghĩa quan trọng trong việc đưa ra chứng minh độ an toàn cho hệ thống mật mã mã hóa bất đối xứng. Thuật toán mã hóa trong hệ mật Rabin đặc biệt hiệu quả và vì vậy nó thích hợp với các ứng dụng cố định như mật mã được thực hiện bởi thiết bị cầm tay [8].
Một điều thú vị đối với hệ mật Rabin là được an toàn trước sự tấn công vào lựa chọn bản rõ. Tuy nhiên hệ thống Rabin lại mất hoàn toàn độ an toàn trước sự tấn công vào lựa chọn bản mã cũng giống như mã RSA có khả năng tấn công vảo bản mã nhưng thuật toán giải mã khó hơn. [11].
Mã hóa bảo mật trong Wimax Chương II : Các phương pháp mã hóa bảo mật
2.2.3.3. Hệ mật El Gamal
Năm 1976 Diffie và Hellman giới thiệu hệ thống mật mã khóa công cộng với mục đích trao đổi khóa bí mật giữa 2 thực thể qua một kênh công cộng. Ban đầu giao thức trao đổi khóa Diffie-Hellman có thể được sử dụng cả mã hóa và giải mã dữ liệu hoặc bản tin kí số và kiểm tra chữ kí số. Đến năm 1985 Taher El Gamal đã tìm ra một cách chuyển đổi giao thức trao đổi khóa Diffie-Hellman thành hệ thống khóa công cộng chính thức (được dùng để mật mã và giải mã các bản tin như bản tin chữ kí số và kiểm tra chữ kí số) [10].
Hệ mật El Gamal được công bố lần đầu tiên vào năm 1985 [9].
Hệ mật El Gamal phát triển hệ thống mã hóa công khai dựa vào tính khó giải của bài toán logarit rời rạc trên các trường hữu hạn [11]. Năm 1991 chính phủ Mỹ đã chọn tiêu chuẩn chữ kí số dựa vào lược đồ khóa công cộng El Gamal [34].
El Gamal là một thuật toán mã hóa bất đối xứng là dạng cơ bản của chuẩn chữ kí số DSS-Digital Signature Standard. Kích thước của khóa El Gamal xấp xĩ như RSA, nhưng tính bảo mật được tin tưởng hơn dựa vào độ khó của bài toán logarit rời rạc. [12].
2.2.3.4. Hệ mật Mekle-Hellman.
Hệ mật Mekle-Hellman được mô tả lần đầu tiên bởi Mekle và Hellman vào năm 1978. Tính bảo mật của hệ mật Mekle-Hellman dựa vào tính khó giải của bài toán tổng hợp các bài toán con. Mặc dù hệ mật này, và một vài ứng dụng khác của nó đã bị phá vỡ rất sớm vào năm 1980. Đầu những năm 1980, hệ mật xếp ba lô (knapsack) Mekle-Hellman đã bị phá vỡ bởi Shamir, Shamir có thể sử dụng một thuật toán lập trình số nguyên của Lenstra để phá vỡ hệ thống [12]
2.2.3.5. Hệ mật Mc Elice
Hệ mật Mc Elice sử dụng nguyên lý thiết kế giống như hệ mật Mekle- Hellman. Lược đồ Mc Eliece dựa vào mã sửa lỗi. Ý tưởng của lược đồ này là đầu tiên lựa chọn một loại mã đặc biệt với thuật toán giải mã đã biết, sau đó nguỵ trang mã này như một mã tuyến tính nói chung [34]. Trong hệ thống này,
Mã hóa bảo mật trong Wimax Chương II : Các phương pháp mã hóa bảo mật
bài toán NP được dùng để giải mã một mã sửa lỗi tuyến tính nói chung. Mã sửa lỗi là mã có thể sửa được một số lỗi xuất hiện trong quá trình truyền dẫn dữ liệu qua một kênh nhiễu. Tuy nhiên, đối với nhiều lớp đặc biệt của một số mã, thuật toán đa thức thời gian được thực hiện, một loại trong các loại mã đó là mã Goppa được sử dụng như chuẩn của hệ mật Mc Elice [11]. Hệ mật MC Elice dựa vào lý thuyết đại số và dựa trên bài toán giải mã cho các mã tuyến tính.
2.2.3.6. Mật mã đường cong Ellip.
Năm 1985, Neal Koblitz và Victor Miller đã độc lập đưa ra khái niệm về
mật mã đường cong Ellip. Nó dựa trên bài toán logarit rời rạc [33].
Hầu hết các chuẩn hóa và sản phẩm sử dụng mật mã bất đối xứng cho mã hóa và chữ kí số sử dụng RSA .Như chúng ta đã biết những năm gần đây,độ dài khóa bảo mật RSA được tăng lên, điều này cũng đồng thời làm cho việc xử lý chậm chạp hơn với các ứng dụng sử dụng RSA . Gánh nặng này được chia ra, đặc biệt là đối với lĩnh vực thương mại điện tử nơi mà quản lý số lượng các phiên giao dịch rất lớn. Nguyên lý hấp dẫn của ECC so với RSA đó là nó cung cấp độ bảo mật ngang nhau cho một kích thước khóa nhỏ hơn rất nhiều, do đó làm giảm được mào đầu sử lý [7]. So sánh kích thước khóa trong điều kiện của kết quả tính toán cho việc giải mã:
Bảng 2.3: Bảng so sánh kích thước khóa một số loại mã.
Symmetric Scheme (key size in bits)
ECC-Based Scheme (size of n in bits)
RSA/DSA (modulus size in bits)
56 112 512 80 160 1024 112 224 2048 128 256 3072 92 384 7680 55
Mã hóa bảo mật trong Wimax Chương II : Các phương pháp mã hóa bảo mật
Symmetric Scheme (key size in bits)
ECC-Based Scheme (size of n in bits)
RSA/DSA (modulus size in bits)
256 512 15360
DSA: Digital signature Algorith.
2.2.3.7. Các hàm băm và tính toàn vẹn dữ liệu.
Định nghĩa hàm băm: Hàm băm là một hàm H 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 tùy ý tới một đầu ra H(x) có độ dài bít 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).
Một giá trị băm hệ mật được tạo ra bởi một hàm H có dạng:
( )
h H M=
M là một bản tin có độ dài thay đổi và H M( )là giá trị băm có độ dài cố
định. Giá trị băm được kết nối đến bản tin của nguồn tại một thời điểm. Khi bản tin được giả định là đúng. Phía thu tiến hành nhận thực bản tin này bằng cách tiến hành tính toán lại giá trị băm. Bởi vì bản thân hàm băm cũng không đảm bảo tính bí mật, nên một vài phương pháp yêu cầu bảo vệ giá trị băm.
Các hàm băm đóng vai trò cơ bản trong mật mã hiện đại. Hàm băm sẽ tạo ra một đầu ra từ các bản tin đầu vào. Đầu ra này được định nghĩa là mã hàm băm (kết quả băm, giá trị băm ) hay chính xác hơn hàm băm h sẽ tạo ra ánh xạ các xâu bit có độ dài n cố định.
Ý tưởng cơ bản của việc sử dụng các hàm băm trong mật mã là sử dụng chúng như một ảnh biểu diễn rút gọn (đôi khi còn gọi là vết, dấu tay số hay tóm lược thông báo) của xâu vào.
Các hàm băm được dùng cho các sơ đồ chữ kí số kết hợp với việc đảm bảo tính toàn vẹn của dữ liệu, khi đó bản tin trước hết được băm và rồi giá trị băm (được xem như đại diện cho bản tin cho bản) sẽ được thay cho vị trí bản tin gốc.
Mã hóa bảo mật trong Wimax Chương II : Các phương pháp mã hóa bảo mật
Một lớp các hàm băm được gọi là các mã xác thực thông báo (MAC: Message Authentication Codes ) sẽ cho phép xác thực thông báo bằng kĩ thuật đối xứng (mật mã cổ điển).
Các thuật toán MAC sử dụng 2 đầu vào (bao gồm bản tin và một khóa bí mật) để tạo ra một đầu ra có kích cỡ cố định (n bit) với ý đồ đảm bảo rằng nếu không biết khóa thì việc tạo ra cùng một đầu ra là không khả thi. MAC có thể được dùng để đảm bảo tính toàn vẹn của dữ liệu, xác thực tính nguyên bản của số liệu.
Một ứng dụng điển hình của hàm băm (không dùng khóa ) để đảm bảo tính toàn vẹn của dữ liệu được mô tả như sau:
Giá trị băm của một bản tin riêng x sẽ được tính ở thời điểm T1 (tính toàn
vẹn của giá trị hàm băm này (chứ không phải bản tin) sẽ được bảo vệ. Thời điểm
T2 phép kiểm tra sau sẽ tiến hành kiểm tra xem liệu thông báo có bị sửa đổi hay
không, tức là xem số liệu bản tin x’ có giống bản tin gốc hay không. Giá trị băm
của x’ sẽ được tính toán và so sánh với giá trị băm đã được bảo vệ, nếu chúng
bằng nhau thì bên thu sẽ chấp nhận rằng x=x’ nghĩa là bản tin không bị sửa đổi.
Ứng dụng này thường được gọi là mã phát hiện sự sửa đổi MDC-Manipulation
Detection Codes) [17].
Những yêu cầu đối với một hàm băm.
Mục đích của một hàm băm là để tạo ra “ fingerprint-dấu tay” của một file, một bản tin hoặc khối dữ liệu khác. Để hữu ích đối với nhận thực bản tin, một hàm Hash phải có những đặc điểm sau [7].
1. H có thể được đặt tới khối dữ liệu có kích thước bất kì.
2. H tạo đầu ra có độ dài cố định.
3. H x( )được tính dễ dàng với bất kì x nào bởi cả phần cứng và phần mềm.
4. Với bất kì giá trị h thì rất khó khăn để tìm ra x dựa vào H x( )=h, đôi khi
người ta còn gọi tính chất này là thuộc tính một chiều.
5. Với khối x bất kì, rất khó tính toán để tìm ra một giá trị y x≠ sao cho
( ) ( )
H y =H x , đôi khi gọi tính chất này là tính khó tìm nghịch ảnh thứ hai
hay tính khó va chạm yếu (weak collision resistance).
Mã hóa bảo mật trong Wimax Chương II : Các phương pháp mã hóa bảo mật
6. Hàm băm khó có khả năng tính toán để tìm ra một cặp bất kì (x,y) với x≠y
thoả mãn H x( )=H y( )đặc điểm này gọi là tính khó va chạm hay khó va
chạm mạnh (strong collision resistance).
Ba đặc điểm đầu tiên đầu tiên đáp ứng những ứng dụng thực tiễn của hàm băm đối với nhận thực bản tin .
Đặc tính thứ tư, thuộc tính một chiều dễ dàng tạo ra một mã cho một bản tin nhưng hầu như không thể tạo được một bản tin bởi một mã. Đặc điểm này rất quan trọng, vì kĩ thuật nhận thực sử bao gồm việc sử dụng những giá trị bí mật. Giá trị bí mật này không được gửi đi , tuy nhiên, nếu hàm băm không phải là hàm một chiều, kẻ tấn công có thể dễ dàng tìm ra giá trị bí mật, nếu kẻ tấn công có thể quan sát được hoặc chặn được sự truyền giao.
Đặc tính thứ năm bảo đảm rằng một bản tin thay đổi băm với giá trị như nhau tạo ra một bản tin không thể tìm được. Điều này ngăn chặn sự giả mạo khi mã hóa hàm băm được sử dụng.
Đặc tính thứ sáu xem xét chống lại các loại tấn công của hàm băm như tấn công ngày sinh.
Tất cả các hàm băm đều sử dụng một nguyên lý chung. Đầu vào (bản tin, file,…) được quan sát bởi một chuỗi tuần tự các khối n bit. Đầu vào xử lý từng khối một tại một thời điểm trong một khuôn dạng lập đi lập lại để tạo ra một hàm băm n bit [7]
2.2.3.8. MD4 và MD5
MD4 và MD5 là các thuật toán phân loại bản tin (message digest) được phát triển bởi Ron Rivest được sử dụng cho các ứng dụng chữ kí số, nơi mà một bản tin được nén lại thành một loại (digest) và sau đó được mã hóa bởi một khóa riêng. MD4 và MD5 được thiết kế cho các hệ thống máy tính 32 bit. MD4 được phát triển vào năm 1990, và hiện nay được đánh giá là không còn tính an toàn. MD5 được mô tả bởi phòng thí nghiệm RSA được đưa ra năm 1991 như “MD4 với dây an toàn” và mặc dù chậm hơn MD4 nhưng nó được xem là vẫn an toàn. Với MD4, một bản tin bản rõ được chèn thêm để đảm bảo độ dài của nó cộng
Mã hóa bảo mật trong Wimax Chương II : Các phương pháp mã hóa bảo mật
thêm 448 bit có thể chia được cho 512. Một số nhị phân 64 bit biểu diễn độ dài bản tin ban đầu, sau đó được cộng thêm thành khối 512 bit sử dụng chức năng nén lặp, mỗi khối được xử lý trong bốn vòng khác nhau trong khi MD4 sử dụng 3 vòng lặp [25].
2.2.3.9. SHA và SHA-1
Thuật toán băm bảo mật SHA (Secure Hash Algorith) được phát triển Viện quốc gia tiêu chuẩn và công nghệ. Tuy nhiên thuật toán này đã trở nên kém bảo mật và thuật toán ban đầu được sửa lại và công bố vào năm 1994 với tên SHA-1. Trái ngược với MD5, SHA-1 tạo ra một tệp bản tin 160 bit và được xem là an toàn hơn, mặc dù chậm hơn trong thực hiện.Nó thực hiện với độ dài bản bản rõ
lên đến 264 bit.[25].
2.3. So sánh - Ứng dụng - Xu hướng phát triển mã hóa bảo mật.
2.3.1. So sánh mã hóa khóa bí mật và mã hóa khóa công khai.
Bảng 2.4: Bảng so sánh kích thước khóa một số loại mã.
STT Tiêu chí so sánh Mã hóa bất đối xứng. Mã hóa đối xứng
1 Bảo mật
security
Chỉ cần giữ bí mật một khóa riêng ở một bên, mã hóa bất đối xứng được phân phối rộng rãi
Phải chia sẻ và đảm bảo an toàn cho khóa bí mật giữa hai bên tham gia.
2
Độ bền khóa longevity
Cặp khóa có thể được sử dụng trong nhiều lần với chu kì thời gian dài.
Phải được thay đổi khóa trong mỗi phiên.
3 Quản lý khóa
Key management
Nếu nhiều người sử dụng trên mạng lớn thì ít khóa riêng hơn được yêu cầu sử dụng so với mã hóa khóa đối xứng. Nếu có n user trên một mạng thì chỉ cần n khóa cho
Nếu có n người sử dụng trên mạng sử dụng DES để trao đổi với nhau. Số lượng khóa cần thiết để cho một phiên giao dịch bất kì là n(n-1)/2 khóa
Mã hóa bảo mật trong Wimax Chương II : Các phương pháp mã hóa bảo mật
bất kì trao đổi nào giữa hai bên với nhau
và mỗi user phải chứa n-1 khóa. Điều này gọi là phân phối khóa trước. Vì vậy khóa đối xứng không thể thực hiện được.
4 Trao đổi khóa
Key exchange
Không cần thiết phải trao đổi khóa giữa các bên truyền thông (chú ý: Ta nói Giao thức trao đổi khóa Diffie- Hellman chứ không phải là hệ thống mật mã mã hóa bất đối xứng, nhưng nó dựa trên những ý tưởng cơ bản ban đầu của mã hóa bất đối xứng).
Mã hóa khóa đối xứng xứng rất khó khăn và nguy hiểm để trao đổi khóa. Trên thực tế, một trong các nguyên lý trao đổi khóa là sử dung Mã hóa bất đối xứng để trao đổi khóa bí mật đối xứng. 5 Chữ kí số và nhận thực nói chung Digital signatures and General Authentication
Mã hóa mã hóa bất đối xứng cung cấp chữ kí số, vì hầu như chúng chỉ mang ý nghĩa bảo mật.
Mã hóa khóa đối xứng dùng để mã hóa khối dữ liệu lớn.
6 Hiệu suất
Efficiency
Chậm hơn khóa đối xứng. Vídụ: Hệ thống RSA chậm hơn DES hàng nghìn lần.
Nhanh hơn khóa bất đối xứng.
7 Kích thước khóa
Key sizes
Kích thước khóa lớn hơn so với kích thước khóa đối xứng. Ví dụ khóa riêng hệ thống RSA cần 1024 bit, thông thường khóa riêng lớn hơn khóa
Kích thước nhỏ hơn. Thông thường khóa có độ dai 128 là đủ
Mã hóa bảo mật trong Wimax Chương II : Các phương pháp mã hóa bảo mật
bí mật 10 lần
8 Thừa nhận
Nonrepudiations
Có nghĩa là bản tin của người gửi không thể phủ nhận được gửi đi. Khóa bất đối xứng đảm bảo thừa nhận với chữ kí số.
Cần uỷ thác cho một bên thứ ba.