Tải bản đầy đủ (.pdf) (17 trang)

Đề cương cơ sở lý thuyết mật mã có đáp án

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.05 MB, 17 trang )

Contents
Câu 1 : Các chỉ tiêu cơ bản của hệ thống thông tin số ? .................................................................. 2
Câu 7: Các chế độ hoạt động của DES (gồm ECB,CBC,CFB,OFB) và tính chất của chúng: ........ 3
Câu 8: Sơ đồ cấu trúc của thuật toán AES, nếu ý nghĩa của tầng phi tuyến, trộn tuyến tính, cộng
khóa ................................................................................................................................................. 7
Câu 9: Phân tích độ an toàn của hệ mật KCK: RSA, Merkle-Hellman, Elgamal, ECC .................. 7
Câu 12: Sơ đồ phân loại các hàm băm mật mã và ứng dụng, tính chất của các hàm băm khơng
khóa. Các khía cạnh liên quan tới việc xác thực nguồn tin khi truyền tin trên mạng. ..................... 9
Câu 13: Vẽ sơ đồ và mơ tả các thuật tốn băm Matyas-Mayer-Oseas; Davies-Mayer, MiyaguchiPreneel ........................................................................................................................................... 10
Câu 14: Trình bày tóm lược các bước trong hệ phân phối khóa dựa trên định danh OkamotoTanaka: .......................................................................................................................................... 12
Câu 15: Vẽ và mô tả sơ đồ ký RSA ............................................................................................... 13
Câu 16 : Thuật toán Eclude mở rộng ............................................................................................. 14
Câu 17 : Mô tả DES (thuật tốn) (DES: Chuẩn mã hóa dữ liệu)................................................... 15
Câu 17 : Các tính chất của DES .................................................................................................... 16
Câu 18: Mã hóa và giải mã RSA ................................................................................................... 16
Câu 19: Hệ mật ELGAMAL ......................................................................................................... 16


Câu 1 : Các chỉ tiêu cơ bản của hệ thống thơng tin số ?
- Tính hữu hiệu:
+ tốc độ truyền tin cao
+ truyền được đồng thời nhiều tin khác nhau
+ chi phí cho một bit thấp
- Độ tin cậy:
 Đảm bảo độ chính xác của việc thu nhận tin cao, xác suất thu
sai (BER) thấp.
 Hai chỉ tiêu trên mâu thuẫn nhau. Giải quyết mâu thuẫn trên là
nhiệm vụ của lý thuyết thơng tin
- An tồn:
+ bí mật:
 Khơng thể khai thác thơng tin trái phép


 Chỉ có người nhận hợp lệ mới hiểu đươc thông tin
+ xác thực : gắn trách nhiệm của bên gửi – bên nhận với bản tin ( chữ
ký số )
+ tồn vẹn:
 Thơng tin khơng bị bóp méo ( cắt xén, xun tạc , sửa đổi )
 Thông tin được nhận phải nguyên vẹn cả về nội dung và hình
thức
+ Khả dụng : mọi tài nguyên và dihcj vụ của hệ thống phải được cung
cấp đầy đủ cho người dùng hợp pháp
- Đảm bảo chất lượng dịch vụ (QoS) : Đây là một chỉ tiêu rất quan
trọng đặc biệt là đối với các dịch vụ thời gian thực , nhạy cảm với độ
trễ ( truyền tiếng nói, hình ảnh … )

Câu 2: Khi A có khóa cơng khai của B thì A có giải mã được
thông điệp của B gửi cho C không? (tấn cơng RSA trong hệ
thống)
Có các bộ (n, e1), (n, e2) và bản mã c1, c2 (chặn thu)
Dùng thuật toán Euclide mở rộng tính u, v sao cho
𝑒1 𝑢 + 𝑒2 𝑣 = 1
Tính m:


𝑚 = 𝑚1 = 𝑚𝑒1 𝑢+𝑒2𝑣 = (𝑚𝑒1 )𝑢 ∗ (𝑚𝑒2 )𝑣 = 𝑐1 𝑢 ∗ 𝑐2 𝑣

Câu 7: Các chế độ hoạt động của DES (gồm ECB,CBC,CFB,OFB)
và tính chất của chúng:
1.Chế độ quyển mã điện tử (ECB)
- Mẫu tin được chia thành các khối độc lập, sau đó mã 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ã độc lập với các mã khác Ci = DESK1(Pi)

- Khi dùng: truyền an toàn từng giá trị riêng lẻ
-Sơ đồ:

-Tính chất:
+Các khối như nhau (dưới cùng 1 khóa) sẽ cho các khối mã giống nhau
+ Sự phụ thuộc và móc xích: các khối được mã độc lập với các khối khác,
việc sx lại thứ tự các khối mã cũng sẽ tương ứng với việc phải sx lại các
khối rõ.


+ Tính lan sai: 1 hoặc nhều bít sai trong 1 khối đơn lẻ chỉ ảnh hướng tới
chính việc giải mã khối đó.
-Ưu và nhược của ECB:
+Lặp trên bản mã được chỉ rõ lặp trên bản tin nếu dóng đúng khối, đặc biệt
với hình ảnh, hoặc với bản tin mà thay đổi rất ít sẽ trở thành đối tượng để
thám mã
+Được sử dụng chủ yếu khi gửi một ít dữ liệu
2. Chế độ phản hồi mã (CFB)
+ Bản tin coi như dịng các bít
+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.
+ Nói chung cho phép số bít phản hồi là 1, 8, 64, hoặc tuỳ ý: ký hiệu
tương ứng là CFB1, CFB8, CFB64,…
+Thường hiệu quả sử dụng cả 64 bít Ci = Pi XOR DESK1(Ci-1 ); C1 = IV
+Được dùng cho mã dữ liệu dịng, xác thực
-Tính chất:
+Các bản rõ giống nhau: cũng giống như chế đô CBC, sự thay đổi IV(vecto
khởi tạo) làm cho cùng 1 bản rõ đầu vào như nhau sẽ được mã hóa thành các
bản mã khác nhau. Vecto IV này khơng cần phải giữ bí mật.

+Sự phụ thuộc móc xích: cũng tương tự như chế độ CBC, cơ chế móc xích
làm cho khối mã yj phụ thuộc vào bảng xj và khối rõ trước đó( X j-1 trở về
trước), hệ quả là việc thay đổi thứ tự của các khối mã sẽ ảnh hưởng đến việc
giải mã.
+Tính lan sai: 1 hoặc nhiều hơn bít sai trong 1 khối mã đơn lẻ sẽ ảnh hưởng
đến điểm giải mã ngay tại đó và ảnh hưởng tới việc giải mã các khối tiếp
theo. Thám mã đối phương cũng có thể dự đốn thay đổi bít trong xj bằng
cách thay đổi các bước tương ứng của yj


+Tính khắc phục sai: chế độ CFB là tự đồng bộ tương tự như CBC nhưng
địi hỏi phải có các khối mã để khắc phục.
-Ưu và nhược điểm của CFB
+Được dùng khi dữ liệu đến theo byte/bit. Đây là chế độ dòng thường gặp
nhất
+Lỗi sẽ lan ra một vài block sau lỗi
3. Chế độ liên kết khối mã (CBC)
+ Các mẫu tin được chia thành các khối
+ Nhưng chúng được liên kết với nhau trong q trình mã hố
+ Các block được sắp thành dãy, vì vậy có tên như vậy
+Sử dụng véctơ ban đầu IV để bắt đầu quá trình Ci = DESK1(Pi XOR
Ci-1); C-1 = IV
+ Dùng khi: mã dữ liệu lớn, xác thực
-Tính chất:
+Các bản rõ giống nhau: kết quả của khối mã sẽ như nhau khi cung bản rõ
được mã hóa dưới cùng 1 khóa và vecto khởi tạo IV. Thay đổi vecto khởi
tạo, khóa hoặc khối rõ đầu tiên thì kết quả bản mã sẽ khác nhau.
+Sự phụ thuộc mắt xích: cơ chế mắt xích làm cho bản mã yj phụ thuộc vào
xj và toàn bộ các khối rõ trước đó. Hệ quả là việc sắp xếp lại các khối mã sẽ
ảnh hưởng đến việc giải mã. Việc giải mã đúng 1 khối mã đòi hỏi phải giải

mã đúng khối mã trước đó
+Tính lan sai: sai 1 bít trong khối mã Cj sẽ ảnh hưởng đến việc giải mã các
khối yj và yj+1
+Khắc phục sai: chế độ CBC là kiểu tự đồng bộ theo nghĩa, nếu 1 sai số bao
gồm cả việc mất 1 hoặc nhiều hơn các phiếu đầu vào xuất hiện trong khối yj
nhưng k có trong y j+1 và y j+2 thì sẽ được giải mã chính xác tới khối x j+2
-Ưu và nhược của CBC
+Mỗi khối mã phụ thuộc vào tất cả các khối bản rõ


+ Sự thay đổi của bản tin ở đâu đó sẽ kéo theo sự thay đổi của mọi khối mã
+Cần giá trị véc tơ 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 bít đầ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 – Ở cuối bản tin, để kiểm sốt các block
ngắn cịn lại
• Có thể bổ sung các giá trị không phải dữ liệu như NULL
• Hoặc dùng bộ đệm cuối với số byte đếm kích thước của nó.
-Ví dụ: [ b1 b2 b3 0 0 0 0 5] <- 3 data bytes, vậy có 5 bytes dành cho đệm và
đếm
-Sơ đồ:

4.Chế độ phản hồi đầu ra (OFB)
+Mẩu tin xem như dòng bit
+Đầu ra của mã được bổ sung cho mẩu tin
+Đầu ra do đó là phản hồi, do đó có tên như vậy
+Phản hồi ngược là độc lập đối với bản tin



+Có thể được tính trước Ci = Pi XOR Oi ; Oi = DESK1(Oi-1); O-1 = IV
+Được dùng cho mã dòng trên các kênh âm thanh
-Ưu điểm và nhược điểm của OFB
+ Được dùng khi lỗi phản hồi ngược lại hoặc ở nơi cần mã trước khi mẩu tin
sẵn sang
+Rất giống CFB, nhưng phản hồi là từ đầu ra của mã và độc lập với mẩu tin
+Người gửi và người nhận phải đồng bộ, có phương pháp khơi phục nào đó
là cần thiết để đảm bảo việc đó.

Câu 8: Sơ đồ cấu trúc của thuật toán AES, nếu ý nghĩa của tầng phi
tuyến, trộn tuyến tính, cộng khóa
*Sơ đồ: tự vẽ
*Ý nghĩa:
-Tầng phi tuyến: sử dụng hàng subBytes được thiết kế như 1 phép thay thế
phi tuyến, tính chất phi tuyến là 1 tính chất quan trọng để ngăn chặn tấn
cơng thám mã.
-Tầng trộn tuyến tính: Tầng này được thực hiện thông qua 2 hàng là
ShiftRows và MixColums được thiết kế để trộn các byte trong khối bản rõ.
Tầng này đảm bảo khuếch tán cao qua nhiều vịng.
-Tầng cộng khóa: là phép so từng bít của RoundKey và trạng thái trung gian.
Add RoundKey cung cấp tính mật ngẫy nhiên cần thiết cho cơng bố của
thơng điệp.

Câu 9: Phân tích độ an toàn của hệ mật KCK: RSA, MerkleHellman, Elgamal, ECC
1.RSA
-Vét cạn khóa: cách tấn cơng này thử tất cả các khóa d có thể có để tìm ra
bản giải mã có ý nghĩa, tương tự như cách thử khóa K của mã hóa đối xứng.
Với N lớn, việc tấn cơng là bất khả thi.



-Phân tích N thành thừa số nguyên tố N = pq: Chúng ta đã nói rằng việc
phân tích phải là bất khả thi thì mới là hàm một chiều, là nguyên tắc hoạt
động của RSA. Tuy nhiên, nhiều thuật toán phân tích mới đã được đề xuất,
cùng với tốc độ xử lý của máy tính ngày càng nhanh, đã làm cho việc phân
tích N khơng cịn q khó khăn như trước đây. Năm 1977, các tác giả của
RSA đã treo giải thưởng cho ai phá được RSA có kích thước của N vào
khoảng 428 bít, tức 129 chữ số. Các tác giả này ước đốn phải mất 40 nghìn
triệu triệu năm mới có thể giải được. Tuy 71 nhiên vào năm 1994, câu đố
này đã được giải chỉ trong vòng 8 tháng
- Đo thời gian: Đây là một phương pháp phá mã khơng dựa vào mặt tốn
học của thuật tốn RSA, mà dựa vào một “hiệu ứng lề” sinh ra bởi q trình
giải mã RSA. Hiệu ứng lề đó là thời gian thực hiện giải mã. Giả sử người
phá mã có thể đo được thời giải mã dùng thuật tốn bình phương liên tiếp.
Trong thuật tốn bình phương liên tiếp, nếu một bít của d là 1 thì xảy ra hai
phép modulo, nếu bít đó là 0 thì chỉ có một phép modulo, do đó thời gian
thực hiện giải mã là khác nhau. Bằng một số phép thử chosen-plaintext,
người phá mã có thể biết được các bít của d là 0 hay 1 và từ đó biết được d.
Phương pháp phá mã này là một ví dụ cho thấy việc thiết kế một hệ mã an
toàn rất phức tạp. Người thiết kế phải lường trước được hết các tình huống
có thể xảy ra.
...................... Cái khác chưa tìm
Câu 11: Hệ mật RSA (Cho ví dụ minh họa về thơng báo khơng thể che giấu,
cơng thức tính số thơng báo khơng thể che giấu). CMR hệ mật RSA là
khơng an tồn nếu dùng chung số modulo n, hoặc bên A,B chọn
GCD(eA,eB) =1
*Ví dụ:
-Giả sử cặp khóa cơng khai là (e,n) =(17,35)
-Giả sử thơng báo có giá trị bằng 8
-Ta có: 8^17 đồng dư 8mod35



=> Mã hóa của thơng báo vẫn là thơng báo ban đầu hay với khóa mã là 17
thì thơng tin khơng được che giấu
*Cơng thức tính số thơng báo khơng thể che giấu:
-Nếu các thông báo được mã bằng hệ mật RSA với cặp KCK (e,n) với n=p.q
thì số các thông báo không thể che giấu được bằng:
N = (1+UCLN(e-1,p-1)).(1+UCLN(d-1,q-1))
*CM hệ mật RSA là khơng an tồn nếu dùng chung số modulo n, hoặc bên
A,B chọn GCD(eA,eB) =1
.......................

Câu 12: Sơ đồ phân loại các hàm băm mật mã và ứng dụng, tính
chất của các hàm băm khơng khóa. Các khía cạnh liên quan tới
việc xác thực nguồn tin khi truyền tin trên mạng.
*Sơ đồ phân loại các hàm băm và ứng dụng:
Hàm băm gồm:
-Khơng có khóa:
+ MDC:
 OWHF(hàm băm 1 chiều yếu)
 CRHF(hàm băm 1 chiều mạnh
+ Các ứng dụng khác
-Có khóa:
+ MDC
+ Các ứng dụng khác
*Tính chất của các hàm băm khơng khóa:


- Hàm băm h là không va chạm yếu: Hàm băm h là không va chạm yếu nếu
khi cho trước một bức điện x, không thể tiến hành về mặt tính
tốn để tìm ra một bức điện x’  x mà h(x’) = h(x).

-Hàm băm h là không va chạm mạnh: Hàm băm h là không va chạm mạnh
nếu không có
khả năng tính tốn để tìm ra hai bức thơng điệp x và x’ mà x  x’
và h(x) = h(x’).
-Hàm băm h là hàm 1 chiều: Hàm băm h là một chiều nếu khi cho trước một
bản tóm lược thơng
báo z thì khơng thể thực hiện về mặt tính tốn để tìm ra thơng điệp
ban đầu x sao cho h(x) = z .
* Các khía cạnh liên quan tới việc xác thực nguồn tin khi truyền tin trên
mạng:
- Bảo vệ tính tồn vẹn của mẩu tin: bảo vệ mẩu tin khơng bị thay đổi hoặc có
các biện pháp phát hiện nếu mẩu tin bị thay đổi trên đường truyền
- Kiểm chứng danh tính và nguồn gốc: xem xét mẩu tin có đúng do người
xưng tên gửi khơng hay 1 kẻ mạo danh nào khác gửi mẩu tin chức các thơng
tin chứng tỏ chỉ có người xưng danh, khơng 1 ai khác có thể làm điều đó.
Như vậy người gửi không thể từ chối hoạt động gửi, thời gian gửi và nội
dung của mẩu tin. Ngồi ra có thể xem xét bổ sung thêm các yêu cầu bảo
mật như mã hóa có thể sử dụng các phương pháp sau: mã mẩu tin bằng mã
đối xứng hoặc bất đối xứng, hoặc sử dụng mã xác thực mẩu tin (MAC) hoặc
sử dụng hàm hash (hàm băm),...

Câu 13: Vẽ sơ đồ và mô tả các thuật toán băm Matyas-MayerOseas; Davies-Mayer, Miyaguchi-Preneel
*Sơ đồ thuật toán:


*Mơ tả:
- Thuật tốn băm Matyas - Meyer – Oseas +Vào: Xâu bit n
+ Ra: Mã băm n bit của x
(1) Đầu vào x được phân chia thành các khối n bit và được độn nếu cần thiết
nhằm tạo khối cuối cùng hoàn chỉnh. Ta được t khối n bit: x1 x2 … xt. Xác

định trước một giá trị ban đầu n bit (kí hiệu IV)
(2) Đầu ra là Ht được xác định như sau:
H0 = IV, Hi = Eg(xi)  xi, 1  i  t
- Thuật toán băm Davies - Meyer
+Vào: Xâu bit n
+ Ra: Mã băm n bit của x
(1) Đầu vào x được phân chia thành các khối n bit và được độn nếu cần thiết
nhằm tạo khối cuối cùng hoàn chỉnh. Ta được t khối n bit: x1 x2 … xt. Xác
định trước một giá trị ban đầu n bit (kí hiệu IV)
(2) Đầu ra là Ht được xác định như sau:
H0 = IV, Hi = Exi(Hi-1)  Hi-1, 1  i  t
- Thuật toán băm Miyaguchi - Preneel
+ Sơ đồ này tương tự như ở thuật toán M-M-O ngoại trừ Hi-1 (đầu ra ở giai
đoạn trước) được cộng mod 2 với tín hiệu ra ở giai đoạn hiện thời. Như vậy:
H0 = IV, Hi = Eg(Hi-1)(xi)  xi  Hi-1; 1  i  t


Câu 14: Trình bày tóm lược các bước trong hệ phân phối khóa dựa
trên định danh Okamoto-Tanaka:
* Sơ đồ trao đổi khoá Okamoto-Tanaka: gồm 3
pha:
- (1) Pha chuẩn bị: Trung tâm xác thực tin cậy chọn 2 số nguyên tố p và q
và đưa công khai các giá trị n, g và e,trong đó:
+n = p.q
+g là phần tử sinh của cả Zp* và Zq*
+e  Z*(n). Ở đây, hàm Carmichael của n được xác định như
sau: (n) = BCNN(p – 1, q – 1)
+ Tính khố bí mật của trung tâm d = e^-1mod (n) với d  Z*(n)
- (2) Pha tham gia của người dùng
+ Cho ID

i là thông tin định danh của người dùng
thứ i (i = A, B, C, …).
+ Cho si là khố bí mật của người dùng i thoả mãn: si  Idi^-d mod n.
+Sau đó trung tâm sẽ cơng bố (e, n, g, IDi) và phân phát si tới mỗi người
dùng i qua một kênh an toàn (hoặc bằng cách dùng thẻ)
- (3) Pha tạo khóa chung
+ Ta giả sử ở đây rằng hai người dùng Alice và Bob muốn chia sẻ một khoá
chung (chẳn hạn để dùng cho một hệ mật khoá bí mật).
+Trước tiên Alice tạo một số ngẫu nhiên rAvà tính: xA đồng dư SA.g^rA
mod n và gửi nó cho Bob.
+ Tương tự, Bob tạo một số ngẫu nhiên rB và tính: xB đồng dư SB.g^rB mod
n và gửi nó cho Alice
+Tiếp theo, Alice tính: WKAB=(IDB.XB^e)^rA mod n
+Tương tự, Bob tính: WKBA=(IDA.XA^e)^rB mod n


Câu 15: Vẽ và mô tả sơ đồ ký RSA

*Sơ đồ chữ kí RSA trong 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


-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ố: SA=sigDA(m) m^dA mod nA
-Sau đó A gửi cho B bộ đơi (m,SA). B nhận được (m,SA) và kiểm tra xem
điều kiện m đồng dư SA^eA mod nA có thỏa mãn khơng. Nếu thỏa mãn, thì
khi đó B khẳng định rằng verEA(m,SA) nhận giá trị đúng và chấp nhận chữ
ký của A trên m.
*Sơ đồ chữ kí RSA trong trường hợp bản tin rõ m cần giữ bí mật

A ký bản tin rõ m để được chữ ký SA.
Sau đó A dùng khố mã cơng khai EB của B để lập bản mã M = EB(m, SA)
rồi gửi đến B. Khi nhận được bản mã M,B dùng khóa bí mật DB của mình để
giải mã cho M và thu được m,SA. Tiếp đó dùng thuật toán kiểm tra verEA
để xác nhận chữ ký của A

Câu 16 : Thuật toán Eclude mở rộng
■ Thuật toán Euclid mở rộng (m, b):
1. (A1, A2, A3)=(1, 0, m); (B1, B2, B3)=(0, 1, b)
2. if B3 = 0 then return A3 = gcd(m, b); no inverse
3. if B3 = 1 then return B3 = gcd(m, b); B2 = b –1 mod m
4. Q = A3 div B3
5. (T1,T2,T3)=(A1 – Q*B1,A2 – Q*B2, A3 – Q*B3)
6. (A1, A2, A3)=(B1, B2, B3)
7. (B1, B2, B3)=(T1, T2, T3)


8. goto 2

Câu 17 : Mơ tả DES (thuật tốn) (DES: Chuẩn mã hóa dữ liệu)
Bước 1 :
-Với bản rõ cho trước x
-Tạo xâu x0 theo hoán vị cố định ban đầu IP.
-Ta có: x0 = IP(x) = L0R0
-Trong đó L0 gồm 32 bit đầu và R0 là 32 bit cuối.
Bước 2 :
Ta sẽ tính LiRi , 1 i  16 theo quy tắc sau: Li = Ri-1; Ri = Li-1  f(Ri-1,
ki )
Trong đó:
- là phép loại trừ của hai xâu bit

- f là hàm Fiestel
- k1 , k2 , …, k16 là các xâu bit có độ dài 48 được tính như 1 hàm của khóa
k
Một vịng của phép mã hóa được mơ tả như sau:

Bước 3 :


Áp dụng phép hoán vị ngược IP-1 cho xâu bit R16L16, ta thu được bản mã y.
Tức là y = IP-1(R16L16) . (Hãy chú ý thứ tự đã đảo của L16 và R16)

Câu 17 : Các tính chất của DES
– Tác dụng đồng loạt: Khi ta thay đổi 1 bit trong khoá sẽ gây ra tác động
đồng loạt làm thay đổi nhiều bit trên bản mã. Đây là tính chất mong muốn
của khoá trong thuật toán mã hoá. Nếu thay đổi 1 bít đầu vào hoặc khố sẽ
kéo theo thay đổi một nửa số bít đầu ra. Do đó khơng thể đốn khố được.
Co thể nói rằng DES thể hiện tác động đồng loạt mạnh
– Sức mạnh của DES – kích thước khố: Độ dài của khố trong DES là 56
bít có 256 = 7.2 x 1016 giá trị khác nhau. Đây là con số rất lớn nên tìm kiếm
duyệt rất khó khan

Câu 18: Mã hóa và giải mã RSA

Câu 19: Hệ mật ELGAMAL
- Thuật toán tạo khoá: Mỗi đầu liên lạc tạo một khố cơng khai và một khố
bí mật tương ứng:
+ Tạo 1 số nguyên tố p lớn và một phần tử sinh  của nhóm nhân Zp * của
các số nguyên mod p.
+ Chọn một số nguyên ngẫu nhiên a, 1  a  p – 2 và tính a mod p
+Khố cơng khai là bộ 3 số (p, , a ), khố bí mật là a.

- Thuật tốn mã hố: B mã hố một thơng tin báo m để gửi cho A bản mã
cần gửi. B phải thực hiện các bước sau:
+Nhận khố cơng khai (p, , a ) của A.


+Biểu thị bản tin dưới dạng một số nguyên m trong dải {0, 1, …, p – 1}
+ Chọn số nguyên ngẫu nhiên k, 1  k  p – 2
Tính  = k mod p và  = m(a ) k mod p .
Gửi bản mã c = (, ) cho A.
- Thuật tốn giải mã: để khơi phục bản rõ m từ c, A phải thực hiện các bước
sau:
+Sử dụng khóa riêng a để tính  p-1-a mod p (chú ý  p-1-a =  --a =  --ak)
+ Khơi phục bản rõ bằng cách tính ( -a) mod p.



×