You are on page 1of 11

Lesson 3.

Mã (khóa) công khai


(Assymmetric/Public Key Cryptosystems)
Public Key Cryptosystems
• m = 0, 1,
2, 3, 4, 5,
6, 7, 8, 9
• c = 0, 1,
8, 5, 9, 4,
7,2, 6, 3
Ý tưởng:
- Tính tới thì dễ
- Tính lui thì khó
Phép tính trên Zn
• Zn={0, 1, …., n-1}, phép nhân modulo = *n

x, y  Z n
z  x * y  xy mod n  Z n
x  Zn khả nghịch
Ví dụ:
Z7 :  y  Z n : x * y  1
3*5  15 mod 7  1
2*6  5
Tạo khóa

Mã khóa

Giải mã
Khóa
riêng

Khóa
chung
thay kB= g^y => K = g ^xy mod p thay kA= g^x => K = g ^xy mod p
Phần tử sinh (của snt p hay Zp)
• VD: Xét Z7={1, 2, 3, 4, 5, 6}

Chọn g=2, ta có: Chọn g=3, ta có:

2 %7=1
0 30 % 7 = 1
21 % 7 = 2 31 % 7 = 3
22 % 7 = 4 32 % 7 = 2
{1, 2, 3, 4, 5, 6} = <3>
23 % 7 = 1 33 % 7 = 6
3 là phần tử sinh vì kết quả là tập
…. 33 % 7 = 4 hợp của Z7
33 % 7 = 5
33 % 7 = 1
Tạo khóa

Mã hóa

u   c1    g   g 
y d
d d y
 ey
Cho bản mã c=(c1, c2) = (gy, ey.m),
e y .m e y tìm m
c2 div u   y mm
u e
c1 = g^y mod p
c2= e^y . m mod p
m = (1/c1^d)c2 mod p
e = g^d mod p
Đặt u = c1^d = g^(yd) = (g^d)^y = e^y
Þ m = 1/u x c2 mod p = 1/e^y x c2 mod p
Þ m = c2/e^y mod p = (e^y . m)/e^y mod p = m mod p
Bài tập
Tìm: Crypto tool

You might also like