You are on page 1of 9

Mã hoá đối xứng và bất đối xứng

Mã hoá đối xứng gồm 2 phần: +mã hoá khối hiện đại (gồm 5 chế đội) và mã hoá dòng

I. Các chế độ hoạt động được thiết kế

1. Sách mật mã điện tử (Electronic Code Book - ECB)

- Mẫu tin được chia thành các khối độc lập, sau đó mã hoá từng khối.
- Mỗi khối là giá trị cần thay thế như dùng sách mã, do đó có tên như vậy.
- Mỗi khối được mã hoá độc lập với các mã khác.
- Khi dùng:
+ Truyền an toàn từng giá trị riêng lẻ
+ Các PlaintText sẽ được mã hoá để tạo thành các CipherText với đúng nbits ban đầu của bản rõ.
+ Khi giải mã: các CipherText sẽ được giải mã qua K để trở thành các PlaintText.
- Thường được sử dụng phương pháp toán học XOR để mã hoá và giải mã: Pi ⊕ K = Ci, Ci ⊕ K = Pi
- Với cùng một khoá K, mỗi Pi sẽ tương ứng với mỗi Ci
- Ưu điểm:
+ Có thể mã hóa / giải mã các khối dữ liệu hoặc ký tự song song vì không có sự phụ thuộc giữa các khối của bản rõ
+ Trong trường hợp mã hóa /giải mã không thành công, lỗi chỉ xảy ra trong một khối và không ảnh hưởng đến
những khối khác.
- Nhược điểm:
+ Dễ bị phân tích mật mã vì có mối quan hệ trực tiếp giữa văn bản đơn giản và mật mã.
+ Được sử dụng chủ yếu khi gửi dữ liệu có kích thước nhỏ

2. Dây chuyền mã khối (Cipher Block Chaining - CBC)

- Các mẫu tin được chia thành các khối, nhưng để giải mã thì chúng được liên kết với nhau trong quá trình mã hoá (mỗi
khối phụ thuộc vào khối trước nó) và cần có 1 vector (IV) khởi tạo ban đầu.
- Mã hoá: E: Pi ⊕ C(i-1) => E (K) =>Ci
(Các PlainText là các văn bản nguyên thuỷ sẽ được XOR với các CipherText của quá trình trước sau đó đem đi mã hoá
để tạo thành CipherText của quá trình hiện tại)
Với khối dữ liệu đầu tiên, ta tổ hợp nó với vector khởi tạo ban đầu IV.
- Giải mã: D: Ci => D(K) ⊕ C(i-1)=>Pi
(Các CipherText sẽ được giải mã theo Key, sau đó đem đi XOR với CipherText của quá trình trước để tạo được
PlainText Pi)
- Dùng khi: mã dữ liệu lớn và cho mục đích xác thực C0

Ưu điểm:
+Mỗi khối mã phụ thuộc vào tất cả các khối bản rõ, nên các khối bản mã giống nhau nói chung sẽ có các bản mã khác nhau.
+ Sự thay đổi của bản tin ở đâu đó sẽ kéo theo sự thay đổi của mọi khối mã, nên có thể dùng khối cuối làm đặc trưng của
cả thông điệp.
Nhược điểm :
+ Cần giá trị vectơ ban đầu IV được biết trước bởi người gửi và người nhận. Tuy nhiên nếu IV được gửi công khai, kẻ tấn
công có thể thay đổi bit đầu tiên và thay đổi cả IV để bù trừ. Vậy IV cần phải có giá trị cố định trước hoặc mã hoá trong chế
độ ECB và gửi trước phần còn lại của mẩu tin.
+ Chế độ mã CBC thực hiện chậm, vì khối sau phải chờ các khối trước thực hiện xong.
+ Lỗi ở các khối trước lan truyền sang các khối kế tiếp.

3. Mã phản hồi ngược (Cipher Feed Back - CFB)

- Bản tin coi như dòng các bit, bổ sung vào đầu ra của mã khối.
- Kết quả phản hồi trở lại cho giai đoạn tiếp theo, vì vậy có tên như vậy.
- Thường hiệu quả sử dụng cả 64 bit

● S bits (phần bên trái) : dữ liệu mã hoá tạm sẽ lấy 1 phần số lượng bits đúng bằng Pi được làm trung gian để thực hiện
XOR với Pi

● B-s bits (phần bên phải): phần bit còn lại sẽ trở S bits (phần bên trái) ở bước mã hoá kế tiếp
Ở chế độ này, mật mã được cung cấp dưới dạng phản hồi cho khối mã hóa tiếp theo với một số thông số kỹ thuật mới:

- Đầu tiên, một vectơ IV ban đầu được sử dụng cho mã hóa đầu tiên và các bit đầu ra được chia thành tập hợp các bit s
và b-s.
- Các bit s được chọn cùng XOR các bit bản rõ.
- Kết quả trở thành dạng đầu vào cho một thanh ghi dịch chuyển, trong đó bit b-s thành s trái, bit s thành s bên phải và
quá trình tiếp tục.
- Quá trình mã hóa và giải mã giống nhau được hiển thị bên dưới, cả hai đều sử dụng thuật toán mã hóa

 Ưu điểm:
- Phức tạp hơn => tính bảo mật hơn CBC

- Được dùng khi dữ liệu đến theo byte/bit, chế độ dòng thường gặp nhất
- Lặp trên bản rõ không tạo lặp trên bản mã.
 Nhược điểm

- Hạn chế là cần ngăn chuồng mã khối sau mỗi n bit để chỉ cho phép lỗi lan ra một vài block sau đó

- Mã/giải mã chậm, do các khối sau phải chờ các khối trước thực hiện xong.

- Khả năng xảy ra lỗi tương tự như CBC (rủi ro sai lệch dữ liệu toàn bộ nếu 1 bit lỗi)

Giải mã: Các bước tương tự được thực hiện đối với mật mã giải mã. IV được quyết định trước được tải vào ban đầu khi bắt
đầu giải mã trong mật mã.

4. OFB (Output Feedback)


- OFB có quy trình gần giống như Mã phản hồi ngược. Trong chế độ này, mỗi bit trong bản mã độc lập với bit hoặc các bit
trước đó. Điều này tránh sự lan truyền lỗi.

- OFB là chế độ mã hóa mà nó gửi phản hồi là đầu ra được mã hóa (ban đầu là vector khởi tạo IV được mã hoá với khoá K),
thay vì mật mã là kết quả của phép XOR của Ci và Pi

- Thuật toán mã hóa không áp dụng trực tiếp trên plaintext mà dùng để biển đổi một khối dữ liệu sinh ra từ  IV và khối
ngõ ra của lần mã hóa trước đó. Điểm này tương tự với CFB.
- OFB khác với CFB là nó xử lý trên một khối dữ liệu với độ dài bit đầy đủ như thuật toán mã hóa quy định chứ không
xử lý trên một phần hay một vài bit của khối dữ liệu.

Ưu điểm:
 Khả năng bảo mật cao hơn ECB. Ciphertext của một khối dữ liệu plaintext có thể khác nhau cho mỗi lần mã
hóa vì nó phụ thuộc vào IV hoặc khối ngõ ra của lần mã hóa trước đó.
 Lỗi bit không bị lan truyền. Khi một lỗi bit xuất hiện trên một ciphertext, nó chỉ ảnh hưởng đến kết quả giải
mã của khối dữ liệu hiện tại
Ví dụ: nếu lỗi bit xảy ra trong C1 dưới dạng bản mã, thì chỉ có giá trị của P1 khi giải mã dưới dạng bản rõ bị
ảnh hưởng; các đơn vị văn bản rõ tiếp theo không bị hỏng. Nếu so với CFB, C1 dưới dạng bản mã cũng đóng
vai trò là đầu vào cho thanh ghi dịch chuyển, do đó gây ra hỏng những phần dữ liệu phía sau nó.
 Thiết kế phần cứng đơn giản hơn CFB.
Nhược điểm:
 Không thể thực hiện mã hóa/giải mã song song nhiều khối dữ liệu vì lần mã hóa/giải mã sau phụ thuộc vào
khối ngõ ra của lần mã hóa/giải mã liền trước nó.
 Dễ bị tấn công sửa đổi luồng thông điệp hơn là CFB trong các phương thức hoạt động.

5. CTR (Counter)

CTR là chế độ mã hóa sử dụng một tập các khối ngõ vào, gọi là tập các counter, để sinh ra một tập các giá trị ngõ ra thông
qua một thuật toán mã hóa. Sau đó, giá trị ngõ ra sẽ được XOR với plaintext để tạo ra ciphertext trong quá trình mã hóa,
hoặc XOR với ciphertext để tạo ra plaintext trong quá trình giải mã.

Các bước:

- Gán giá trị counter ban đầu vào thanh ghi. (Giá trị này giống nhau cho cả người gửi và người nhận). Nó đóng vai
trò tương tự như IV ở chế độ CFB (và CBC)
- Mã hóa nội dung của bộ đếm bằng khóa K và đặt kết quả vào thanh ghi dưới
- Lấy Plaintext P1 XOR nội dung thanh ghi phía trên trên => C1 (Ciphertext)
- Gửi C1 dưới dạng bản mã đến máy nhận và cập nhật bộ đếm
- Tiếp tục theo cách này cho đến khi khối văn bản rõ cuối cùng được mã hóa.
- Làm ngược lại ta sẽ có quá trình giải mã
● Tương tự như chế độ CFB, chế độ CTR không liên quan đến quá trình giải mã của mật mã khối theo cách đó. Điều này
là do chế độ CTR đang sử dụng mật mã khối để tạo luồng khóa, được mã hóa bằng hàm XOR trong mật mã. Nói cách
khác, chế độ CTR cũng chuyển đổi mật mã khối thành mật mã dòng trong mật mã.

- Thuật toán mã hóa không áp dụng trực tiếp trên plaintext mà dùng để biển đổi một khối dữ liệu sinh ra từ các bộ
đếm (counter).
- Quá trình mã hóa/giải mã của mỗi khối dữ liệu là độc lập.
- Nó không có sự phụ thuộc vào thông điệp,do đó một khối bản mã không phụ thuộc vào các khối văn bản gốc
trước đó.

Ưu điểm:

Khả năng bảo mật cao hơn ECB.

Có thể mã hóa/giải mã song song nhiều khối dữ liệu.
Nhược điểm:
 Phần cứng cần thiết kế thêm các bộ đếm counter hoặc giải thuật tạo các giá trị counter không lặp lại. 
 Tuy quá trình mã hóa/giải mã của mỗi khối dữ liệu là độc lập nhưng mỗi plaintext có thể ảnh xạ đến nhiều
ciphertext tùy vào giá trị bộ đếm của các lần mã hóa. 

Chế độ hoạt động Mô tả Loại kết quả Đơn vị kích thước dữ liệu
ECB Mỗi khối n-bit được mã hóa độc lập với cùng một khóa mật mã mã khối n
CBC Tương tự như ECB, nhưng mỗi khối được xác nhận độc quyền đầu tiên mã khối n
với bản mã trước đó
CFB Mỗi khối r-bit được thiết kế độc quyền với một khóa r-bit là một phần mật mã dòng r<=n
của văn bản mật mã trước đó
OFB Tương tự như CFB, nhưng thanh ghi dịch chuyển được cập nhật bởi mật mã dòng r<=n
khóa r-bit trước đó.
CTR Tương tự như OFB, nhưng một bộ đếm được sử dụng thay vì một mật mã dòng n
thanh ghi dịch chuyển.

II.Mã hoá dòng:

- Mặc đù năm chế độ hoạt động cho phép sử dụng mã khối để giải mã tin nhắn hoặc tệp theo đơn vị lớn và đơn vị nhỏ,
nhưng đôi khi dòng thuần lại cần thiết để giải mã các đơn vị dữ liệu nhỏ như ký tự hoặc bit.
- Mã hóa khối và mật mã dòng khác nhau theo cách mà văn bản đơn giản được mã hóa và giải mã. Ý tưởng đằng sau
mật mã khối là chia văn bản đơn giản thành các khối mã hóa thêm các khối đó. Trong khi mật mã luồng chuyển đổi
văn bản đơn giản từng bit tương tự như luồng

1. RC4

- RC4 là một thuật toán mật mã dòng và khóa có độ dài thay đổi. Thuật toán này mã hóa từng byte một .

- RC4 viết tắt của Rivest Cipher 4, Được phát minh bởi Ron Rivest năm 1987

- Kích thước khoá: 64 bit hoặc 128-bit.

- Đầu vào khóa là trình tạo bit giả ngẫu nhiên tạo ra số 8 bit luồng không thể đoán trước được mà không cần biết khóa đầu
vào, đầu ra của trình tạo khóa được gọi là luồng khóa, được kết hợp từng byte một với mật mã luồng văn bản rõ bằng cách
sử dụng phép XOR.

- RC4 được dùng trong giao thức lớp cổng bảo mật (SSL), Bảo mật lớp truyền tải (TLS) và mạng LAN không dây IEEE 802.11,
WEP từ năm 1997 của mạng Wireless Lan và SSL từ năm 1995 để bảo mật dữ liệu trong quá trình truyền dữ liệu giữa Web
Server và trình duyệt Web.

- Đa dụng vì: đơn giản, tốc độ và đơn giản hóa thực hiện trong cả phần mềm và phần cứng.

2. A5/1

- A5/1 được dùng trong mạng điện thoại GSM , để bảo mật dữ liệu trong quá trình liên lạc giữa máy điện thoại và trạm thu
phát sóng vô tuyến.

- Phát triển năm 1987, khi GSM chưa được xem xét sử dụng bên ngoài châu Âu

- Đơn vị mã hóa của A5/1 là 1 bít

- Bộ sinh số mỗi lần sẽ sinh ra hoặc bít 0 hoặc bít 1 để sử dụng trong phép XOR.
- Kích thước thanh ghi X,Y,Z lần lượt là 19,22 và 23 bít.

- Thiết kế bị rò rỉ năm 1994, thuật toán hoàn toàn bị thiết kế ngược năm 1999 bởi Marc Briceno từ một chiếc điện thoại
GSM

III. Khoá không đối xứng

● Mã hóa đối xứng (symmetric key encryption)

Ở phương pháp mã hóa đối xứng, chìa khóa để mã hóa và giải mã là như nhau nên người ta mới gọi là đối xứng, tiếng
Anh là symmetric. Ngày nay người ta thường xài password như là khóa, và bằng cách này bạn có thể nhanh chóng nhắn cho
người nhận cùng đoạn password đó để xài làm khóa giải mã. Các thuật toán mã hóa thường thấy bây giờ là DES và AES.
Trong đó, AES phổ biến trong thế giới hiện đại hơn và nó dùng để thay thế cho DES vốn đã xuất hiện từ năm 1977. Hiện nay
nhiều cơ quan chính phủ trên thế giới quy định tài liệu khi được gửi qua mạng phải bằng thuật toán AES. Thuật toán AES có
thể dùng nhiều kích thước ô nhớ khác nhau để mã hóa dữ liệu, thường thấy là 128-bit và 256-bit, có một số lên tới 512-bit
và 1024-bit. Kích thước ô nhớ càng lớn thì càng khó phá mã hơn, bù lại việc giải mã và mã hóa cũng cần nhiều năng lực xử
lý hơn.

● Mã hóa bất đối xứng (public key encryption)

Nếu như ở trên, khóa mã hóa và khóa giải mã đều giống nhau thì với phương pháp bất đối xứng, hai khóa này
hoàn toàn khác nhau. Để phân biệt giữa hai khóa thì người ta gọi khóa mã hóa là public key, còn khóa giải mã là private
key.

- Bên nhận sẽ tạo ra một cặp public + private key. Người này giữ lại private key cho riêng mình và cất cẩn thận, còn public
key thì chuyển cho bên gửi (dưới hình thức email, copy qua USB, v.v) hoặc post đâu đó lên mạng.

- Bên gửi sử dụng public key để mã hóa dữ liệu, sau đó gửi file đã mã hóa lại cho bên nhận.

- Bên nhận lúc này sẽ xài private key đã lưu khi nãy để giải mã dữ liệu và sử dụng.

So sánh

Cả hai loại mã hóa đều có những ưu điểm và nhược điểm

*Mã hóa đối xứng

- Do có tốc độ nhanh hơn, đòi hỏi sức mạnh tính toán thấp hơn nên mã hóa đối xứng được sử dụng rộng rãi để bảo vệ
thông tin trong các hệ thống máy tính hiện đại.

- Nhưng nhược điểm khi sử dụng loại mã hóa này là cần gửi khóa. Vì phương thức này sử dụng cùng một khóa để mã hóa
và giải mã thông tin, nên khóa đó phải được gửi cho bất kỳ ai cần truy cập dữ liệu, và điều này sẽ tự nhiên mở ra các nguy
cơ về bảo mật

- 1 số ví dụ như: RC4, AES, DES, 3DES


*Mã hóa bất đối xứng

- Giải quyết vấn đề gửi khóa (khóa công khai để mã hóa và khóa cá nhân để giải mã)

- Có thể sử dụng mã hóa bất đối xứng cho các hệ thống mà trong đó nhiều người dùng có thể cần mã hóa và giải mã tệp
hoặc bộ dữ liệu, đặc biệt trong trường hợp không có giới hạn về tốc độ và sức mạnh tính toán.

- Nhưng nhược điểm là tốc độ chậm hơn, nhiều so với hệ thống đối xứng và đòi hỏi nhiều khả năng tính toán hơn vì khóa
của chúng có độ dài lớn hơn nhiều

- Khoảng thời gian lâu hơn là bao nhiêu thì còn tùy vào thuật toán, cách thức mã hóa và key

- 1 số ví dụ như: Diffie-Hellman và RSA.

- Mã hóa đối xứng và bất đối xứng được sử dụng kết hợp trong nhiều hệ thống. Ví dụ, một số hệ thống kết hợp điển hình là
các giao thức mã hóa Security Sockets Layer (SSL) và Transport Layer Security (TLS), được thiết kế cho giao tiếp bảo mật
trong mạng Internet. Các giao thức SSL hiện được coi là không an toàn và nên được ngừng sử dụng. Ngược lại, các giao
thức TLS được coi là an toàn và đã được sử dụng rộng rãi bởi tất cả các trình duyệt web chính.

 Sự ra đời của khóa bất đối xứng mật mã không phủ định sự cần thiết của mật mã khóa đối xứng

Cửa sập một chiều:

- Là ý tưởng đằng sau mật mã khóa bất đối xứng.


- Là một hàm dễ dàng tính toán theo một hướng, nhưng khó theo hướng ngược lại (tìm ra nghịch đảo của nó) nếu
không có thông tin đặc biệt
- Tính đến năm 2004, chức năng cửa sập được biết đến nhiều nhất là RSA và Rabin áp dụng (dạng môđun lũy thừa của
một số tổng hợp, vấn đề thừa số nguyên tố)

IV. Một số thuật toán công khai: RSA, Rabin,Elagamal và mật mã đường cong elliptic

1. Hệ mật mã RSA:

- RSA là một hệ mã hóa bất đối xứng được phát triển bởi Ron Rivest, Adi Shamir và Leonard Adleman (tên của nó cũng
chính là tên viết tắt của 3 tác giả này)

- Trong hệ mã hóa này, gồm khoá công khai và khoá bí mật , khoá công khai có thể chia sẻ công khai cho tất cả mọi người.

- Độ an toàn dựa trên tính khó của việc phân tích số nguyên rất lớn, với độ lớn cở hàng trăm chữ số phập phân

- Được sử dụng rộng rãi trong công tác mã hoá và công nghệ chữ ký điện tử.

- Hoạt động của RSA dựa trên 4 bước chính: sinh khóa, chia sẻ key, mã hóa và giải mã.

- Hiện nay các khoá RSA có kích thước nhỏ hơn 1024 bits được coi là không an toàn do tốc độ các hệ thông máy tính tăng
nhanh. Để đảm bảo an toàn, khuyến nghị sử dụng khoá 2048 bits giai đoạn 2010-2020. Trong tương lai, cần sử dụng khoá
RSA có kích thuóc lớn hơn, chẳng hạn 3072 bits
* Sơ đồ dưới đây minh họa các bước trong thuật toán RSA:

● Sinh khóa

RSA cung cấp một thủ tục sinh cặp khóa (khóa công khai và khóa riêng) tương đối đơn giản. Cụ thể, thủ tục sinh khóa gồm
các bước sau:

- Tạo 2 số nguyên tố p và q:

- Tính modulo n = p x q

- Tính ɸ(n) = (p-1) x (q-1)

- Chọn số e sao cho 0 < e < ɸ(n) và gcd(e, ɸ(n)) = 1, trong đó hàm gcd() Tính ước số chung lớn nhất của 2 số nguyên. Nếu
gcd(e, ɸ(n)) = 1 thi e và ɸ(n) la 2 số nguyên tố cùng nhau.

- Chọn số d sao cho d(e-1) mod ɸ(n). Hoặc (d x e) mod ɸ(n) = 1 hay d là modulo nghịch đảo của e.

- Ta co (n, e) la khóa công khai, (n, d) la khóa riêng và còn được gọi là ɸmodulo

● Ví dụ:

- Chọn 2 số nguyên tố(p!=q) p=7 và q=11

- Tính n =p*q= 7*11=77

- Tính Φ(n) = (p -1)(q -1) = 6*10=60

- Chọn số e, 0<e<60, e và Φ(n) là số nguyên tố cùng nhau. Φ(n) không chia hết cho e =>chọn e = 13

- Tính (d*e) mod Φ(n) ->(d*13) mod 60 = 1

- [(37*13) mod 60 = 1] => d = 37

- Khoá công khai (e,n) = (13,33) và khoá riêng (d,n) = (33,3)

Kết quả:

Mã hoá của m = 5, là c = me mod n = 5^13 mod 77 = 26

Giải mã của c = 26, là m = cd mod n = 26^37 mod 77 = 5

● Thuật toán mã hóa RSA thỏa mãn 5 yêu cầu của một hệ mã hóa hiện đại:
a. Độ bảo mật cao

b. Thao tác nhanh

c. Dùng chung được

d. Có ứng dụng rộng rãi

e. Có thể dùng để xác định chủ nhận

* Ứng dụng của RSA vào chữ ký điện tử

- Các văn bản truyền trên mạng cần phải có chữ ký của người gửi để xác nhận trách nhiệm của người gửi

- Chữ ký dùng ở đây là một dãy bit và được gọi là“chữ ký điện tử“.

- Mỗi người cần 1 cặp khóa gồm khóa công khai và khóa bí mật

- Khóa bí mật dùng để tạo chữ ký số (CKS).

- Khóa công khai dùng để thẩm định CKS -> xác thực

2. Hệ mã Rabin

- Là khóa công khai được ra phát minh vào năm 1979 bởi ông Michael O. Rabin. Nó sử dụng mã hóa khóa bất đối xứng để
giao tiếp giữa hai bên và mã hóa tin nhắn.

- Tính bảo mật của hệ thống mật mã Rabin có liên quan đến độ khó của quá trình phân tích nhân tử

● Quy trình:

- Khởi tạo khoá:


+ Chọn 2 số nguyên tố lớn p,q (cả 2 đồng dư 3 mod 4)
+ Gán n <- p*q
+ Ta gán khoá công khai = n và khoá riêng tư = q,n
- Mã hoá
+ Mã hoá bằng công thức C = P2 mod n
- Giải mã
+ Ta dễ dàng tính được 4 giá trị a1,a2,b1,b2 với a1,a2 lần lượt là giá trị dương và âm của phép tính: (C(p+1)/4) mod p và
b1,b2 lần lượt là giá trị dương và âm của (C(p+1)/4) mod q
+ Áp dụng định lý phần dư Trung Quốc ta có được 4 giá trị P1, P2, P3, P4 từ (a1,b1), (a1,b2 ), (a2,b1) và (a2,b2 ). Tuy
nhiên chỉ có 1 trong 4 giá trị là khớp với PlainText (văn bản rõ).

● Ví dụ:

- Chọn 2 số nguyên tố (đồng dư 3 mod 4) ,p=23 và q=7


- Tính n =p*q= 23*7=161
- Khoá công khai n = 161, khoá bí mật: p=23 và q=7
- Văn bản gốc: P = 24
C = P^2 mod n = 24^2 = 93 mod 161
- Gửi đi C = 93
- a1 = +(93 (23+1)/4) mod 23 = 1 mod 23
a2 = −(93 (23+1)/4) mod 23 = 22 mod 23
b1 = +(93 (7+1)/4) mod 7 = 4 mod 7
b2 = −(93 (7+1)/4) mod 7 = 3 mod 7

- Áp dụng định lý phần dư Trung Quốc ta có được 4 giá trị P1, P2, P3, P4 lần lượt là 116, 24, 137, và 45 từ (a1,b1 ), (a1,b2 ),
(a2,b1), và (a2,b2 ). Tuy nhiên chỉ có 1 trong 4 giá trị P = 24 là khớp với PlainText (văn bản rõ).

● Độ an toàn

- Một người tấn công bị động cần phục hồi bản rõ m từ bản mã c. Đây chính là giải bài toán căn bậc 2. Vấn đề phân tích ra
thừa số số n và tính căn bậc 2 theo module n là tương đương về mặt tính toán. Vì vậy giả sử việc phân tích ra thừa số số n
là khó về mặt tính toán thì lược đồ mã hoá công khai Rabin được chứng minh là an toàn đối với một người tấn công bị
động.

- Trong khi được chứng minh là an toàn đối với một người tấn công bị động, lược đồ mã hoá công khai Rabin lại không
chống nổi một cuộc tấn công bản mã lựa chọn (chosen-ciphertext).
III. HỆ THỐNG MẬT MÃ ELGAMAL

1.Hệ mật mã Elgamal

- Teher Elgamal đề xuất vào năm 1985


- Biến thể sơ đồ phân phối Diffie-Hellmal
- Sử dụng 2 bảng mã C1 và C2 để truyền đi
- Tính an toàn phụ thuộc vào độ phức tạp của bài toán logarithm (cao)
- Với 1 số p đủ lớn, Elgamal không có phương pháp thám mã hiệu quả
- Tốc độ chậm, tốn bộ nhớ lưu trữ khoá

● Ưu điểm, nhược điểm của hệ mã:

-Ưu điểm :

+ Độ phức tạp của bài toán logarith lớn nên độ an toàn cao.

+ Bản mã phụ thuộc vào bản rõ x và giá trị ngẫu nhiên nên từ một bản rõ ta có thể có nhiều bản mã khác nhau.

-Nhược điểm:

+ Tốc độ chậm (do phải xử lý số nguyên lớn)


+ Dung lượng bộ nhớ dành cho việc lưu trữ khoá yêu cầu phải lớn.
2. MẬT MÃ ĐƯỜNG CONG ELLIPTIT (Elliptic Curve Cryptography (ECC)).

Mặc dù RSA và ElGamal là các hệ thống mật mã khóa bất đối xứng an toàn, nhưng tính bảo mật của chúng đi kèm với
giá cả, khóa lớn. Các nhà nghiên cứu đã tìm kiếm các lựa chọn thay thế cung cấp cùng mức độ bảo mật với kích thước khóa
nhỏ hơn. Một trong những lựa chọn thay thế đầy hứa hẹn này là hệ thống mật mã đường cong elliptic (ECC).

Mật mã đường cong Elliptic (ECC) được đề xuất bởi Neal Koblitz and Victor S. Miller vào năm 1985 , ECC là một trong
những loại mật mã mạnh nhất hiện nay. Tại nhiều công ty tại Mỹ, như CloudFlare, đã sử dụng rộng rãi ECC để bảo mật mọi
thứ từ các kết nối HTTPS của khách hàng đến cách thức chuyển dữ liệu giữa các trung tâm dữ liệu của họ. Ngoài ra ECC còn
được ứng dụng trong giao thức thỏa thuận khóa, chữ ký số trình tạo giả ngẫu nhiên,…

Đối với các giao thức dựa trên đường cong elliptic này, giả thiết cơ bản là việc tìm ra logarit rời rạc của một phần tử
đường cong elliptic ngẫu nhiên đối với điểm cơ sở đã biết công khai là không khả thi: đây là "bài toán logarit rời rạc đường
cong elliptic"

Về cơ bản thì đường cong Elliptic có dạng tổng quát phương trình Weierstrass như sau:

● Tính bảo mật cao:

ECC thuộc loại mã hóa khóa công khai, tức là sẽ có 2 khóa khác nhau cho 2 quá trình giải mã - mã hóa. Bởi ai cũng có khả
năng tiếp cận được khoá công khai, nên hệ mật phải có độ khó tính toán cao để ngăn cản việc tìm ra khóa bí mật từ khóa
công khai. Tính bảo mật của ECC dựa trên độ phức tạp của bài toán Logarit rời rạc trên đường cong Elliptic. Hiện chưa
thuật toán nào có khả năng tính toán với thời gian nhỏ hơn cấp lũy thừa.

●Tiết kiệm chi phí:

- Khi nói đến mã hóa công khai thì mọi người thường nghĩ đến RSA đầu tiên. RSA là một thuật toán mã hóa khóa
công khai tốt, có thể ứng dụng trong xác thực chữ ký số,... Tuy nhiên độ an toàn của RSA dựa trên bài toán phân tích số
nguyên lớn ra các thừa số nguyên tố. Việc này đồng thời cũng tạo ra 1 vấn đề lớn: nếu muốn đảm bảo an toàn cho hệ mật
thì chúng ta sẽ cần chọn ra 2 số nguyên tố lớn, ít nhất khoảng 2048 bit hoặc theo chuẩn PCI thì độ dài khóa nên là 4096 bit.

- 4096 bit là một số rất lớn, ngay cả 2048 bit cũng là lớn rồi. Điều này khiến việc tính toán với các số nguyên lớn
này trở nên khó khăn và tốn nhiều tài nguyên phần cứng, thời gian tính toán,... Chưa kể nếu thuật toán không tốt thì có thể
dẫn đến tính toán sai số với dữ liệu có độ dài lớn quá. ECC đã giảm được chi phí tính toán xuống rất nhiều, trong khi vẫn
đảm bảo độ an toàn cho hệ mật.

Tính bảo mật của ECC dựa trên độ phức tạp của bài toán Logarit rời rạc trên đường cong Elliptic

Một trong những loại mật mã mạnh nhất hiện nay

Đề xuất bởi Neal Koblitz and Victor S. Miller vào năm 1985
Lợi ích: kích thước khóa nhỏ, giảm yêu cầu lưu trữ và truyền tải

Ứng dụng: giao thức thỏa thuận khóa, chữ ký số trình tạo giả ngẫu nhiên,…

Khả năng bảo mật của khoá elliptic 384 bit tương đương với khóa RSA 7680 bit

You might also like