KHOA HC - CÔNG NGH
22 TP CHÍ KHOA HC & CÔNG NGH . S 26 - 2021
ĐỀ XUT H MẬT ĐƯỜNG CONG ELLIPTIC VỚI KHÓA ĐỐI XNG
PROPOSE ELLIPTIC CURVE CRYPTOSYSTEMS WITH THE SYMMETRIC KEY
Mai Mnh Trng, Lê Th Thu Hin, Trần Minh Đức
Khoa Công ngh thông tin, Trường Đại hc Kinh tế - K thut Công nghip
Đến Tòa son ngày 10/03/2020, chp nhn đăng ngày 05/06/2020
Tóm tt:
Bài báo mô tả ý ởng bản vmật mã đường cong Elliptic (ECC). Số học đường cong
Elliptic có thể được sử dụng để phát triển một loạt các sơ đồ mã hóa đường cong Elliptic bao
gồm trao đổi khóa, mã hóa và chữ ký số. Điểm thu hút chính của mật mã đường cong Elliptic
so với RSA là nó cung cấp bảo mật tương đương cho kích thước khóa nhỏ hơn, do đó giảm
chi pxử lý. Chúng i đề xuất một thuật toán mã hóa bằng cách sử dụng đường cong Elliptic
trên các trường hữu hạn với khóa đối xứng.
T khóa:
Đường cong Elliptic, mã hóa, giải mã, khóa đối xứng.
Abstract:
The article describes the basic idea of Elliptic curve cryptography (ECC). Elliptic curve
arithmetic can be used to develop a variety of Elliptic curve cryptographic schemes including
key exchange, encryption, and digital signature. The principal attraction of Elliptic curve
cryptography compared to RSA is that it offers equal security for a smaller key-size, thereby
reducing the processing overhead. We propose a new encryption algorithm using the Elliptic
curve over finite fields with the symmetric key.
Keywords:
Elliptic curve, encryption, decryption, symmetric key.
1. GIỚI THIỆU
Các h thng mật đưng cong Elliptic
(ECC) được phát minh bi Neal Koblitz [1]
Victor Miller [2] vào năm 1985. Chúng th
được xem như các đường cong Elliptic ca các
h thng mt logarit ri rạc. Trong đó
nhóm
*
p
Z
được thay thế bng nhóm các điểm
trên một đường cong Elliptic trên một trường
hu hạn. Cơ s toán hc cho tính bo mt ca
các h thng mật đường cong Elliptic
tính hp dn nh toán ca bài toán logarit ri
rạc đường cong Elliptic (ECDLP).
H mật đường cong Elliptic được ng dng
trong phát hiện đường dn liên kết định tuyến
an toàn động [3], trong công ngh nhn dng
đối ng bng sóng tuyến hiu qu an
toàn [4], trong các mng cm biến không dây
s dng phép biến đổi thuyết s [5]. Trong
bài báo [6], các tác gi đã trình bày việc trin
khai ECC bằng cách trưc tiên chuyển đổi
thông điệp thành một điểm affine trên đường
cong Elliptic, sau đó áp dng thuật toán đọc
chui trên bn rõ. Vi chúng tôi, trong công
vic hóa và giải mã, đầu vào bản văn
bn, mi t được xác đnh một điểm trên
đường cong Elliptic. S dng khóa đối xng là
mt giá tr ngẫu nhiên để hóa. Đầu ra
mt bn gm dãy s của các điểm trên
đường cong Elliptic. Chúng tôi cũng minh họa
vic trin khai h thng mt da trên mt
đường cong Elliptic vi khóa đối xng vi
phương trình đường cong Elliptic nhóm la
chn là:
y2 = x3 3x + 7 (mod 31) (*)
2. ĐƯỜNG CONG ELLIPTIC
Đưng cong Elliptic E trên trường hu hn
KHOA HC CÔNG NGH
TP CHÍ KHOA HC & CÔNG NGH . S 26 - 2021 23
GF(p) trong đó p s nguyên t, tp hp
các điểm (x, y) thỏa mãn phương trình sau:
E: y2 = x3 + ax + b (1)
Trong đó a, b là s nguyên modul p, tha mãn:
4a3 + 27b2 0
bao gm một điểm O gọi điểm cc.
Với phương trình (*) thì
a = 3, b = 7
ta có
4*(3)3 + 27*(7)2 = 1215 0.
Do vậy, phương trình (*) phương trình
đường cong Elliptic. Chúng tôi chọn phương
trình này bi l tìm được tng s điểm ca
đường cong 37 điểm. Do vy, tng s điểm
s nguyên t thì tt c các điểm trên đường
cong đều đim sinh. Ngoài ra, vi s điểm
này đủ để cha các t trên bng ch cái
tiếng Anh.
Hình 1. Tổng hai điểm của đường cong Elliptic
2.1. Phép cộng
Gi s P= (x1, y1) Q(x2, y2) hai đim ca
E. Nếu x1 = x2 y1 = y2 thì ta định nghĩa P +
Q = O. Ngược li thì P + Q = (x3, y3) E,
trong đó x3 =
2 x1 x2 , y3 =
(x1 x3 ) y1,
vi:
2 1 2 1
2
11
( ) / , khi
(3 ) / 2 , khi
y y x x P Q
x a y P Q

Vy nếu P ≠ Q, tc là x1 x2, ta có:
2
21
3 1 2
21
21
3 1 3 1
21
yy
x x x
xx
yy
y x x y
xx






(2)
Nếu P = Q, tc là x1 = x2, ta có:
2
2
1
31
1
2
1
3 1 3 1
1
32
2
3
2
xa
xx
y
xa
y x x y
y







(3)
Chú ý rằng các điểm (x3, y3), (x3, y3) cũng
nằm trên đường cong E và xét v mt hình hc,
thì các điểm (x1, y1), (x2, y2), (x3, y3) cũng
nm trên một đường thẳng. Ngoài ra, định
nghĩa một điểm cng vô cc bng chính nó.
P + O = O + P = P.
2.2. Phép nhân
Phép nhân mt s nguyên k vi một điểm P
thuộc đường cong Elliptic E điểm Q được
xác định bng cách cng k lần điểm P
nhiên Q E: k P = P + P + P…+ P (k
phép cộng điểm P). vy nếu G một đim
thuộc đường cong Elliptic E thì vi mi s
nguyên dương k luôn d dàng xác định được
điểm Q = kG.
Khi tổng các điểm P Q trên đường cong
Elliptic E được ch ra trong hình 1. Kết qu
được xác định điểm S thu được bng cách
đảo ngược du ca tọa đ y của điểm R, trong
đó R là giao điểm của E và đưng thẳng đi qua
P Q. Nếu P và Q cùng mt v trí, đường
thng tiếp tuyến ca E ti P. Ngoài ra, tng
điểm ti cực điểm P được xác định
chính điểm P.
3. THUẬT TOÁN ĐỀ XUẤT
Thành phn mt mã: (P, C, E, D, K), trong đó:
P: là bn rõ;
C: là bn mã;
KHOA HC - CÔNG NGH
24 TP CHÍ KHOA HC & CÔNG NGH . S 26 - 2021
E: là hàm mã hóa;
D: là hàm gii mã;
K: là khóa.
ớc 1: Xác định tng s điểm của đường
cong Elliptic, tìm điểm sinh của đường cong
Elliptic.
c 2: Chuyển đổi tng s điểm (n) sang h
đếm số 2. Tìm được m s ch s ca
chui s vừa đi. d n = 86 ta được dãy s
1010110. Ta có m = 7.
c 3: Lp ma trn M với kích thước
(n + 1)*m. Trong đó n + 1 là s hàng, n là tng
s điểm của đường cong E, m s ct (m s
ch ca mt hàng). Ta có ma trn
0,0 0,1 0,
1,0 1,1 1,
,0 ,1 ,
m
m
n n n m
a a a
a a a
M
a a a
Vi n = 86 ta kích thước ca ma trn M
87 × 7.
0000000
0000001
0000010
0000011
1010110
M









Mã hóa:
c 4: Chn giá tr khóa K ngu nhiên.
c 5: Hàm mã hóa
C = E( P) = C = E( P) = [(Pi + K) mod (n)]P (4)
ớc 6: Đọc chui s nh phân ca tọa độ
điểm mã hóa theo bước 3.
Gii mã:
c 7: Xét đoạn gm m ch s ca chui s
mã hóa, chuyển đổi dãy s nh phân nhận được
sang thập phân tìm được tọa độ điểm.
c 8: Hàm gii mã
P= D(C) = [(C i K) mod (n)]P (5)
Trong đó tham số (4), (5), trong đó:
Pi : là v trí ca ký t bn rõ;
Ci: là v trí ca ký t bn mã ;
E: là hàm mã hóa;
D: là hàm gii mã;
K: là khóa;
n: là tng s điểm trên đường cong Elliptic;
P: là điểm sinh của đường cong Elliptic.
4. ÁP DỤNG THUẬT TOÁN
Bên A gi cho bên B mt bản (văn bản đầu
vào): COMPUTER. Đ đảm bo mt trên
quá trình truyn. Bên A s hóa bn trên
trước khi gi trên kênh truyn. Quá trình
hóa được th hiện như sau:
c 1: Xác định tng s điểm của đường
cong Elliptic, tìm điểm sinh của đường cong
Elliptic.
Với đường cong E (*) ta 37 điểm trên
đường cong tính c điểm cực. Ta tìm được
điểm sinh P = (18; 9). S dng công thc (2)
công thc (3) điểm tính các điểm trên
đường cong.
Bng 1. Tp hp tt c các điểm trên ECC
(4; 11)
(28; 19)
(17; 23)
(7; 22)
(22; 7)
(30; 28)
(16; 5)
(1; 25)
(19; 12)
(12; 5)
(29; 25)
(2; 3)
(10; 27)
(10; 4)
(0; 10)
(29; 6)
(12; 26)
(3; 26)
(1; 6)
(16; 26)
(15; 12)
(22; 24)
(7; 9)
(6; 22)
(28; 12)
(4; 20)
(18; 22)
c 2: Chuyển đổi tng s điểm (n) sang h
đếm số 2. Tìm được m s ch s ca
KHOA HC CÔNG NGH
TP CHÍ KHOA HC & CÔNG NGH . S 26 - 2021 25
chui s va chuyển đổi.
Xác định đươc tổng s của đường cong 37
điểm, tc n = 37. Chuyn sang nh phân ta
được dãy s 100101. Ta có m = 6.
c 3: Lp ma trn m có kích thước 38 × 6
000000
000001
000010
000011
100101
M









Mã hóa:
c 4: Chn khóa ngu nhiên là K = 3;
c 5, 6: Hàm mã hóa, đọc chui s.
Bng 2. Ký t ng vi điểm trên đường cong
xét t đim P
(18; 9)
A
(4; 11)
B
(28; 19)
C
(17; 23)
D
(6; 9)
E
(7; 22)
F
(22; 7)
G
(30; 28)
H
(15; 19)
I
(16; 5)
J
(1; 25)
K
(19; 12)
L
(3; 5)
M
(12; 5)
N
(29; 25)
O
(2; 3)
P
(0; 21)
Q
(10; 27)
R
(10; 4)
S
(0; 10)
T
(2, 28)
U
(29; 6)
V
(12; 26)
W
(3; 26)
X
(19; 19)
Y
(1; 6)
Z
(16; 26)
du cách
(15; 12)
.
(30; 3)
?
(22; 24)
!
(7; 9)
:
(6; 22)
[
(17; 8)
]
(28; 12)
(4; 20)
(18; 22)
,
O
điểm: Theo bảng 2 ta được các t
bản tương ng vi s điểm cho kết qu
bng 3.
Bng 3. Ký t ng vi điểm trên đường cong
C
O
M
P
U
T
E
R
(28,
19)
(29,
25)
(3, 5)
(2, 3)
(2, 28)
(0, 10)
(6, 9)
(10,
27)
Áp dng: C = E( P) = [(Pi + K) mod (n)]P
Xét t ‘C’: Ta được Pi của ‘C’ 3P ng
với điểm (28, 19)
Ta C = [(3+3) mod 37]P = 6P = 6(18; 9) =
(7; 22). Vi x = 7 y = 22 đọc chui s ma
trn M bước 3. Ta có: 000111, 010110.
Tương tự xét t ‘O’: Ta được Pi của ‘O’
15P ng với điểm (29, 25).
Ta C = [(15+3) mod 37]P =18P = 18(18; 9)
= (10, 27). Vi x = 10 và y = 27 đọc chui s
ma trn M bước 3. Ta có: 001010, 011011.
Tương tự các ký t còn li ta được:
Bng 4. Bng các ký t sau khi mã hóa
t
Rõ điểm
Mã điểm
Chui s
mã hóa
C
(28; 19)
(7; 22)
000111 010110
O
(29; 25)
(10; 27)
001010 011011
M
(3; 5)
(2; 3)
000010 000011
P
(2; 3)
(10; 4)
001010 000100
U
(2; 28)
(3; 26)
000011 011010
T
(0; 10)
(12; 26)
001100 011010
E
(6; 9)
(30; 28)
011110 011100
R
(10; 27)
(2; 28)
000010 011100
Vy bn mã sau khi hóa là: 000111 010110
001010 011011 000010 000011 001010
000100 000011 011010 001100 011010
011110 011100 000010 011100.
Bn này được gi trên kênh truyn cho
bên B.
Gii mã:
c 7: Chuyn sang thp phân
Vi m = 6, ta xét chui : 000111(2) = 0×25 + 0
×24 + 0×23 + 1×22 + 1×21 + 1×20 = 7
KHOA HC - CÔNG NGH
26 TP CHÍ KHOA HC & CÔNG NGH . S 26 - 2021
Tương tự, 010110(2) = 22 do vy, ta được đim
(7; 22).
Ta tính toán vi chui s còn li ta xác định
được (10 ; 27); (2 ; 3); (10 ; 4); (3 ; 26); (12 ;
26); (30, 28); (2 ; 28).
c 8: Hàm gii mã
Khóa để gii mã K = 3;
Áp dng P = D(C) = [(C i K) mod (n)]P.
Xét đim (7; 22) v trí 6P trên đưng cong,
ta có:
P = [(63) mod 37]P = 3P= 3(18, 9) = (28; 19)
ng vi ký t ‘C’
Tương tự xét điểm (10; 27) v t18P trên
đường cong, ta có
P = [(183) mod 37]P = 15P = 15(18, 9) = (29;
25) ng vi ký t ‘O’.
Tương tự với các điểm còn lại ta được:
Bng 5. Bng kết qu gii mã
Chui s
hóa
Mã điểm
Rõ điểm
Ký t
000111 010110
(7, 22)
(28, 19)
C
001010 011011
(10, 27)
(29, 25)
O
000010 000011
(2, 3)
(3, 5)
M
001010 000100
(10, 4)
(2, 3)
P
000011 011010
(3, 26)
(2, 28)
U
001100 011010
(12, 26)
(0, 10)
T
011110 011100
(30, 28)
(6, 9)
E
000010 011100
(2, 28)
(10, 27)
R
Vậy ta được bản rõ ban đầu là: COMPUTER.
5. CÀI ĐẶT CHƯƠNG TRÌNH
Phn cng: CPU Intel(R) Core(TM) i5, 2.5
GHZ; RAM: 4 GB; HDD: 500 GB; Phn
mm: H điều hành Windows 10, phn mm
lp trình Visual studio .NET 2017.
Hình 2. Giao diện chương trình
Chương trình được cài đặt vi ngôn ng lp
trình C# như giao din hình 2. Kết qu chy
đúng với thut toán trình bày trên.
6. KẾT LUẬN
Trong thuật toán mã hóa được đề xut đây,
các bên giao tiếp đồng ý s dụng đường cong
Elliptic điểm sinh P trên đường cong này.
Tính bo mt ca mật đường cong Elliptic
ph thuộc vào độ khó ca vic tìm giá tr ca k,
vi kP trong đó k mt s ln ngu nhiên
P một điểm sinh ngẫu nhiên trên đưng
cong Elliptic. Đây vấn đề logarit ri rc
đường cong Elliptic. Độ bo mt còn ph
thuc m, m s ch s ca mt nhóm s m
dài hay ngn ph thuc tng s điểm (n) trên
đường cong Elliptic n li ph thuc tham
s của đường cong. Các tham s đường cong
Elliptic cho các đồ hóa nên được la
chn cn thận để chng li tt c các cuc tn
công đã biết ca bài toán logarit ri rạc đường
cong Elliptic (ECDLP). Do đó, phương pháp
hóa được đề xut đây cung cấp bo mt
đầy đủ chng li vic phá chi phí tính toán
tương đối thp. Thuật toán được cài đặt th
nghim trên ngôn ng lp trình C# cho kết qu
đúng đắn theo thuật toán đề xut.