Professional Documents
Culture Documents
CONG ELLIPTIC
Nhóm 07
1
Bảng phân công
Làm Làm
MSV Làm BT Code Ghi chú
doc slide
01 02 03
Hệ mật khóa Đường cong Elliptic Mật mã trên
công khai đường cong
Elliptic
04 05
Nhúng số điểm Bài tập
trên đường cong
Elliptic
3
01
Hệ mật khóa công khai
4
Hệ mật khóa bí mật
C = E(K, m) m = D(K, c)
Plaintext Ciphertext Plaintext
Khóa bí mật
5
Hệ mật khóa công khai
C = E(Kp, m) m = D(Ks, c)
Plaintext Ciphertext Plaintext
7
Khái niệm
8
Khái niệm
● cong
nếu chúng thỏa mãn (*).
● Ngoài ra có «điểm ở vô cùng» ký
hiệu là O, (∞)
9
Các phép toán trên đường cong Elliptic
Phép cộng
10
Các phép toán trên đường cong Elliptic
Phép cộng
11
Các phép toán trên đường cong Elliptic
Phép nhân vô hướng
12
Nhóm cộng của các điểm
●
1. Nếu , thì
2. Nếu trong đó: 𝑦2 − 𝑦1
𝜆=
¿{
¿
𝑥2 − 𝑥1
2
3 𝑥 1+ 𝑎
2 𝑦1
, 𝑃1 ≠ 𝑃 2
, 𝑃1 =𝑃2
3. Phép lấy nghịch đảo được tính toán khá dễ dàng, nghịch đảo của (x, y) là
–(x, y) và = (x, -y)
13
Nhóm cộng của các điểm
● Để các điểm trên đường cong Elliptic tạo thành nhóm (+), “điểm vô
cùng” (∞) sẽ được thêm vào đường cong, kí hiệu là O, điểm này sẽ
nằm ở trên cùng và dưới cùng của trục y. Một trong những thuộc
tính quan trọng nhất của đường cong Elliptic là tồn tại nhóm các
điểm với phép cộng nằm trên đường cong.
14
Tính chất phép cộng điểm
( 𝑃1 + 𝑃2 ) + 𝑃3=𝑃 1+ ( 𝑃 2+
𝑃1 +𝑃2=𝑃2 +𝑃1 ∀ 𝑷 𝟏 ,
′ ′
∃ 𝑷 ∈ 𝑬 : 𝑃 + 𝑃= 𝑃+
Tính đóng
15
Phần tử đối
𝑃=∞ ⇒−𝑃=∞
Ghi chú
𝑃 ( 𝑥 , 𝑦 ) ∈ 𝐸 ⇒ 𝑃′ ( 𝑥 , − 𝑦 ) ∈ 𝐸
Ví dụ
𝑃=(2,3)⇒−𝑃=(2,−3)=(2,4)
16
Bậc của điểm P Nhóm con cyclic sinh bởi P
17
03
Mật mã trên đường cong
Elliptic
18
Bài toán logarit rời rạc
Định nghĩa : Giả sử G là một nhóm cyclic hữu hạn có cấp n. Gọi a là
phần tử sinh của G và b là một phần tử cũng thuộc G. Khi đó Lô-ga-
rít rời rạc của b theo cơ sở a trên G, được ký hiệu là logab, là một số
nguyên duy nhất x với 0 £ x £ n - 1 sao cho b = ax.
Trên mọi cấu trúc nhóm cyclic nếu biết trước a và x mà cần tính b = ax thì
đây là một việc dễ và thực hiện được. Ngược lại biết a, b mà tính x thì
đây là một việc nói chung là khó và được thực hiện trong thời gian hàm
mũ. Độ khó của bài toán Lô-ga-rít cũng phụ thuộc vào cấu trúc đại số
mà trên đó nó được xác định.
19
Bài toán lô-ga-rít rời rạc trên đường cong
Elliptic (ECDLP)
Cho trước một đường cong Elliptic E xác định trên trường
hữu hạn GF(q). Giả sử P là một điểm có bậc n và Q là một
điểm của E. Hãy xác định số nguyên k, 0 £ k £ n - 1 sao
cho Q = kP nếu số nguyên k như vậy tồn tại.
20
Bài toán logarit rời rạc
Z*p E(Fp)
Cho p, a Cho p, PE(Fp)
21
Trao đổi khóa
ECDH ECMQV
22
Trao đổi khóa Diffie - Hellman ECDH
Alice Bob
dA d AP dAP
dBP dBP dB
KA = dAdBP KB = dBdAP
23
Mã hóa - Giải mã
Massey-
ElGamal ECIES
Omura
24
Sinh cặp khóa
Tính M = C2 – dC1
Trích xuất m từ M
Kết quả là m
Elgamal
ECDSA
Elliptic
28
04
Nhúng số điểm trên đường
cong Elliptic
29
Không dùng Sử dụng
hệ số nhúng hệ số nhúng
30
Không dùng hệ số nhúng
1 Cho đường cong E(Fp): y2 = f(x) = x3 + ax + b
2
Cho m là số nguyên. Muốn mã hóa m bằng ECC thì cần
chuyển m thành điểm M=(x, y) nào đó
3 Ý tưởng nhúng
o Coi m là hoành độ của M, tức M = (m, y)
o Thay x = m vào phương trình của E và giải phương trình
y2 = f(m) đối với y, tìm được nghiệm u
o Điểm cần tìm là M = (m, u)
2 Tính hệ số nhúng
Đối với mỗi số m cần nhúng, ánh xạ 𝑚 thành 𝑚'∈ [𝑙𝑚, 𝑙𝑚+𝑙−1]
3
sao cho f(𝑚') là thặng dư bậc 2. Xác suất thất bại là 2−𝑙
5 Từ ' tìm lại 𝑚 bằng công thức
32
Ví dụ:
m f(m)
0 2 không tồn tại
1 6 26, 41
2 16 4, 63
3 38 không tồn tại
4 11 không tồn tại
5 8 không tồn tại
33
Ví dụ:
Khi dùng hệ số nhúng ( = 11)
0 0 10 1 6 26 (1, 26) 0
1 11 21 11 26 19 (11, 19) 1
2 22 32 24 29 37 (24, 37) 2
3 33 43 33 59 40 (33, 40) 3
4 44 54 47 49 60 (47, 60) 4
5 55 65 55 47 39 (55, 39) 5 34
Ứng Dụng
Blockchain
35
Độ an toàn của hệ mật ECC
ECC Key Size RSA Key Size Key Size AES Key
Ratio
163 1024 1:6
36
05
Bài tập
37
Bài 1: Sử dụng thuật toán Euclide mở rộng để tìm ước chung lớn nhấ
t của hai số a = 1573, b = 308
Thuật toán:
Cho b mod m
1. (A1, A2, A3) = (1, 0, m) (B1, B2, B3) = (0, 1, b)
2. Q = A div B B = A mod B
Tính chất (3): 3 3 3 3 3
() = () . () 3. B1 = A1 – Q*B1 B2 = A2 – Q*B2
hoặc m =4. ()(A1 A2 A3) = (B1, B2, B3)
5. If B3 = 0: gcd (b, m) = A1
b-1 mod m = B2
38
Bài 1: Sử dụng thuật toán Euclide mở rộng để tìm ước chung lớn nhất
của hai số a = 1573, b = 308
Giải
Q A 1 A 2 A3 B 1 B2 B 3
- 1 0 1573
39
Bài 1: Sử dụng thuật toán Euclide mở rộng để tìm ước chung lớn nhất
của hai số a = 1573, b = 308
Giải
40
Bài 1: Sử dụng thuật toán Euclide mở rộng để tìm ước chung lớn nhất
của hai số a = 1573, b = 308
Giải
Q = A3 div B3
Q A 1 A 2 A3 B 1 B2 B 3
- 1 0 1573 0 1 308
5
41
Bài 1: Sử dụng thuật toán Euclide mở rộng để tìm ước chung lớn nhất
của hai số a = 1573, b = 308
Giải
B3 = A3 mod B3
Q A 1 A 2 A3 B 1 B2 B 3
- 1 0 1573 0 1 308
5 33
42
Bài 1: Sử dụng thuật toán Euclide mở rộng để tìm ước chung lớn nhất
của hai số a = 1573, b = 308
Giải
B1 = A1 – Q*B1
Q A 1 A 2 A3 B 1 B2 B 3
- 1 0 1573 0 1 308
5 1 33
43
Bài 1: Sử dụng thuật toán Euclide mở rộng để tìm ước chung lớn nhất
của hai số a = 1573, b = 308
Giải
B2 = A2 – Q*B2
Q A 1 A 2 A3 B 1 B2 B 3
- 1 0 1573 0 1 308
5 1 -5 33
44
Bài 1: Sử dụng thuật toán Euclide mở rộng để tìm ước chung lớn nhất
của hai số a = 1573, b = 308
Giải
Q A 1 A 2 A3 B 1 B2 B 3
- 1 0 1573 0 1 308
45
Bài 1: Sử dụng thuật toán Euclide mở rộng để tìm ước chung lớn nhất
của hai số a = 1573, b = 308
Giải
Bảng 7:
Q A 1 A 2 A3 B 1 B2 B 3
- 1 0 1573 0 1 308
46
Bảng 3:
Q r t
- 1573 1
- 308 0
5 33 -5
9 11 45
3 0
47
Bài 2: Tìm số nghịch đảo (nếu có) của 30 theo môđun 101
2. Q = A3 div B3 B3 = A3 mod B3
3. B1 = A1 – Q*B1 B2 = A2 – Q*B2
Tính chất
4. (A(3):A A ) = (B , B , B )
1 2 3 1 2 3
() = () . ()
5. If B = 0: gcd (b, m) = A1
hoặc m 3= ()
Else B3 =1: gcd (b, m) = 1
b-1 mod m = B2
Định nghĩa: Nếu số nguyên dương x < b thỏa mãn x*b mod m = 1 thì x là
nghịch đảo của b mod m, kí hiệu b-1 mod m.
48
Bài 2: Tìm số nghịch đảo (nếu có) của 30 theo môđun 101
Giải
Cách 1: Sử dụng thuật toán Euclide mở rộng: Tìm 30-1mod 101
Q A1 A2 A3 B1 B2 B3
- 1 0 101 0 1 30
3 0 1 30 1 -3 11
2 1 -3 11 -2 7 8
1 -2 7 8 3 -10 3
2 3 -10 3 -8 27 2
1 -8 27 2 11 -37 1
50
Bài 3: Tìm phần tử nghịch đảo của 3 trong Z*31
Giả sử b là nghịch đảo của 3 trong Z *31
3.b ≡ 1 mod 31
3.b mod 31 ≡ 1
b = 3-1 mod 31
Áp dụng thuật toán Euclide mở rộng tính: b = 3 -1 mod 31
i ri qi xi yi
-1 31 1 0
0 3 0 1
1 1 10 1 -10
2 0 3
52
Q A1 A2 A3 B1 B2 B3
- 1 0 1680 0 1 19
88 0 1 19 1 -88 8
2 1 -88 8 -2 177 3
2 -2 177 3 5 -422 2
1 5 -422 2 -7 619 1
53
2. Mã hóa bản tin với m = 37
Trong hệ mật RSA, ta có bản mã: c = m e mod n = 3719 mod 1769
Áp dụng thuật toán nhân bình phương có lặp ta tính:
c = 3719 mod 1769
19 = 10011 = 20 + 21 + 24
t=4
i 0 1 2 3 4
ki 1 1 0 0 1
54
3. Giải mã
Để giải mã, ta tìm: m = cd mod n
m = 582619 mod 1769
619 = 1001101011 = 20 + 21 + 23 + 25 + 26 + 29
t=9
i 0 1 2 3 4 5 6 7 8 9
ki 1 1 0 1 0 1 1 0 0 1
A 582 845 1118 1010 1156 741 691 1620 973 314
Tính
Tínhchất (3):() = () . () hoặc m =
chất (3): ()
() = () . ()
Tínhhoặc
chất (4):
m =(mn) () =
Giải
= . = .= = = = 1
56
Bài 6: Hãy tính các căn bậc hai của 12 mod 37
57
Bài 6: Hãy tính các căn bậc hai của 12 mod 37
Giải
- Ta có 37 là số nguyên tố và 37 ≡ 5 mod 8
- Tính d = a(p-1)/4 mod p = 129 mod 37
- Áp dụng thuật toán bình phương có lặp ta có:
121 = 12
122 = 33
124 = 16
128 = 34
129 = 121. 128 = 12 . 34 = 408
⇨ d = 408 mod 37 = 1
⇨ Vì d = 1 => r = (a)(p+3)/8 mod p = mod 37
⇨ r=7
Vậy có 2 căn bậc hai (7, 30)
58
Bài 7: Tìm r với r2 ≡ 5 (mod 41)
Giải
p là số nguyên tố Ф(p) = p - 1
Φ(p) = 41 –1 = 40
Áp dụng định lý nếu α € Z*41 là phần tử sinh khi đó β = αi mod n là
phần tử sinh khi và chỉ khi gcd(i, Φ(p)) = 1
Z*41 = {1, 3, 7, 9, 11, 13, 17, 21, 23, 27, 29, 31, 33, 37, 39}
59
Bài 8: Cho đường cong E={(x,y) :y2=x3+x+ 6 mod 11}
Xác định tất cả các điểm của đường cong.
Tính tất cả các giá trị của kα với 1< k <14, trong đó α= (2,7) ECC
ElGamal encryption:
+ Tính khóa công khai biết khóa bí mật là 6
+ Tính khóa công khai biết khóa bí mật là 2
+ Tính khóa công khai biết khóa bí mật là 7
Với khóa bí mật của người nhận là 7. Tham số ngẫu nhiên là 3.
+ Mã hóa thông điệp 10
+ Giải mã và kiểm chứng
60
Xác định tất cả các điểm của đường cong
x y là căn bậc
hai của
0 6 N
1 8 N
2 5 Y 4, 7
3 3 Y 5, 6
4 8 N
5 4 Y 2, 9
6 8 N
7 4 Y 2, 9
8 9 Y 3,8
9 7 N
10 4 Y 2,9
EC: y2 = x3 + x + 6 mod 11
Tìm tất cả điểm của đường cong, ta có:
x = 6 → y = = (loại)
x = 0 → y = = (loại) x=7
x = 1 → y = = (loại) y = = 2 mod 11
x=2 vậy P7 (7, 2) → P8(7, -2) → P8(7, 9)
y = = 4 mod 11 x=8
vậy P1 (2, 4) → P2(2, -4) → P2(2, 7) y = = 3 mod 11
x=3 vậy P9 (8, 3) → P8(8, -3) → P10(8, 8)
y = = 6 mod 11 x = 9 → y = = (loại)
vậy P3 (3, 6) → P4(3, -6) → P4(3, 7) x = 10
x = 4 → y = = (loại)
x=5 y = = 2 mod 11
vậy P11 (10, 2) → P8(10, -2) → P12(10, 9)
y = = 2 mod 11 Và P13 là điểm vô cùng ()
vậy P5 (5, 2) → P5(5, -2) → P6(5, 9)
62
Mã hóa và giải mã
Y2 = x3 + x +6 mod 11
Chọn 1 điểm trên đường cong : P = (2,7), k = 3
Sinh cặp khóa :
- Khóa bí mật : d =7
- Khóa công khai : Q = d*P = 7(2,7)= (7,2)
Nhúng m=10 vào đường cong ta được :
- Y2 = 103 + 10 +6 mod11 = 4 ⇒ y= 2
M(10,2)
Mã hóa :
- C1 =kP= 3(2,7)= (8,3);
- C2= M + kQ = (10,2) + 3(7,2) = (2,4)
C = [(8,3),(2,4)]
Giải mã :
M = C2 -dC1= (2,4) – 7(8,3) = (2,4) – (3,5) = (2,4)+ (3,6) = (10,2) 63