Mục đích chính của bài báo này là mô tả cấu trúc môđun của tập hợp những điểm P nằm trên đường cong elliptic thỏa mãn điều kiện nP=O. Trong đó, P là điểm có bậc hữu hạn trên đường cong elliptic E không kỳ dị, phương trình của đường cong elliptic E được cho bởi dạng Weierstrass trên trường Zp (là số nguyên tố lớn hơn 3), O là điểm tại vô cùng.
Trang 1CẤU TRÚC MÔĐUN CỦA TẬP ĐIỂM CÓ BẬC HỮU HẠN TRÊN ĐƯỜNG CONG ELLIPTIC VÀ ỨNG DỤNG TRONG MẬT MÃ
Võ Anh Tuấn 1
1 ThS Trường Đại học An Giang
Thông tin chung:
Ngày nhận bài: 30/12/14
Ngày nhận kết quả bình duyệt:
15/02/15
Ngày chấp nhận đăng: 12/15
Title:
Module structure of the set of
points having finite order on
elliptic curve and application in
cryptography
Từ khóa:
Đường cong elliptic không kỳ
dị, điểm có bậc hữu hạn, cấu
trúc module, mật mã
Keywords:
Nonsingular elliptic curve, the
point has finite order, the
module structure, cryptography
ABSTRACT
The main aim of this article is describing module structure of the set of the points
P on elliptic curve which satisfy nP=O In this set, P is the point having finite order on nonsingular elliptic curve E The elliptic’s equation is given by Weierstrass form over p field (p is a prime number greater than 3) and O is the point at infinity The set of the points which satisfy this condition is a subgroup and its structure is a n module Beside this new n module structure, this article also describes a new encryption method based on this structure by maple 13.0 software
TÓM TẮT
Mục đích chính của bài báo này là mô tả cấu trúc môđun của tập hợp những điểm
P nằm trên đường cong elliptic thỏa mãn điều kiện nP=O Trong đó, P là điểm
có bậc hữu hạn trên đường cong elliptic E không kỳ dị, phương trình của đường cong elliptic E được cho bởi dạng Weierstrass trên trường p (là số nguyên tố lớn hơn 3), O là điểm tại vô cùng Tập hợp những điểm mà nó thỏa mãn điều kiện này là một nhóm con và cấu trúc của nó là n môđun Bên cạnh cấu trúc môđun mới này, bài báo còn mô tả một phương pháp mã hóa dựa trên cấu trúc này bằng phần mềm maple 13.0
1 GIỚI THIỆU
Ta ký hiệu tập điểm của đường cong elliptic E trên
trường (p là số nguyên tố lớn hơn 3) là p
E p Để tập điểm này trở thành nhóm aben ta
bổ sung vào điểm tại vô cùng O và quy tắc cộng
điểm Một điểm P trên đường cong elliptic E được
gọi là có bậc n nếu nP O, mP O với mọi
số nguyên 1m n Nếu gọi E
p n
là tập hợp những điểm trên đường cong elliptic thỏa mãn
nP=O thì khi đó E
p n
là nhóm con của
E p và cấu trúc của nhóm con này là một
n
module Trong trường hợp n là một số
nguyên tố ta sẽ có được một phương pháp mã hóa dựa vào cấu trúc môđun của nhóm con này Trong suốt bài báo này phương trình của đường
cong elliptic E được cho bởi dạng Weierstrass:
y x ax b thỏa mãn điêu kiện
4a 27b 0
Trang 22 CẤU TRÚC MÔĐUN CỦA TẬP ĐIỂM CÓ BẬC HỮU HẠN TRÊN ĐƯỜNG CONG ELLPTIC
2.1 Định nghĩa
Điểm P trên đường cong elliptic được gọi là điểm có bậc n nếu nP = O, mP O,với mọi số nguyên
1m n vàký hiệu bậc của P là deg(P)
2.2 Mệnh đề
Cho P là điểm có bậc n trên đường cong elliptic E không kỳ dị Khi đó, với mọi số nguyên k thì điểm
kP mP Trong đó m là số dư trong phép chia k cho n Hay nói cách khác với mọi
,
k m P E thì kP mP
Chứng minh Với k m n thì tồn tại số nguyên a sao cho k man Khi đó với mọi
p n
P E ta có kP man P Bằng phương pháp quy nạp ta chứng minh kP mP Thật vậy, với a 0 kP mP hiển nhiên đúng
+ Với a 1 kP mn P mPnP do cấu trúc môđun và vì nP=O nên
kP mP
+ Với a 2 kP m2n P lý luận tương tự như trên ta được kP mP
+ Giử sử đúng a l 1 ta chứng minh đúng với a l. Nghĩa là kP m l 1n P mP
ta chứng minh kP mln P mP Thật vậy,
kP m l n P kP m l n n P m l n P nP
Do giả thuyết quy nạp m l 1n P mP
Vì nP O nên ta thu được kP mP
Dễ dàng chứng minh được điểm mP E p n □
2.3 Mệnh đề
Cho đường cong Elliptic E xác định trên trường p (p> 3) thỏa mãn điều kiện không kỳ dị Khi đó,
p n
E là một
n
Chứng minh
i Trước tiên ta chứng minh E p n là nhóm con của E p
n
E E điểm O E p n do đó E p n
Trang 3+ P Q, E p n ta chứng minh P Q E p n
Thật vậy, ta xét điểm n P( Q) nPnQ do tính chất của một môđun
p n
P Q E nên nP O, nQ O nP nQ O n P( Q)O
p n
+ Ta xét phần tử đối của P, giả sử Q là phần tử đối của P Khi đó, ta có:
P Q O n P( Q)O
Mặt khác, n P( Q) nP nQnP nQ O, mà nP O, do đó: nQ O Từ đây
ta có được Q E p n
Như vậy, E p n bảo toàn phép toán cộng do đó nó là nhóm con của E p
ii Tiếp theo ta xây dựng phép nhân ngoài
( , )
a Tính chất kết hợp: k l, n, P E p n Ta có: k lP( ) k lP( )
( ) ( )
k lP k lP
k lP( ) ( )kl P k lP( )( )kl P k lP( )( ) kl P
b Tính chất phân phối: k l, n,P Q, E p n Ta có:
+ (k l P) (k l P) (k l P) (k l P) (k l P) (k l P)
(k l P) kP lP
(k l P) kP lP
+ k P( Q)k P( Q)k P( Q)kP kQ k P( Q)kP kQ
c Tính chất Unita Ta có: 1P 1P P
Rõ ràng đây là một n môđun
3 ỨNG DỤNG
Ví dụ 1 Sử dụng giao thức trao đổi chìa khóa của Diffie-Hellman vào phương pháp mã hóa sử dụng điểm
có bậc hữu hạn Giả sử T cần gởi văn bản mật cho C là:
“Mathematics is my favorite subject”
Trang 4Giả sử khóa bí mật của T là k 1 2, khóa bí mật của B là k 2 3 và u là phần tử được chọn ngẫu nhiên
trong ví dụ u 7 Khi đó: Khóa công khai của T là KSCKT 7k1 49 Khóa công khai của
C là KSCKC 7k2 343
* Tiến trình mã hóa: T muốn gởi văn bản cho C tiến hành như sau: T đặt tương ứng văn bản rõ với một
điểm P có bậc là một số nguyên tố n thuộc đường cong E và tính khóa bí mật cho phiên làm việc này là
1
( )k 117649
K KSCKC T tiến hành mã hóa bằng cách tính điểm nhân K P Q và gởi cho
C điểm Q
* Tiến trình giải mã: C nhận được điểm Q tiến hành giải mã như sau:
C tính khóa của phiên làm việc này là M (KSCKT)k2 và tìm bậc của Q
C tìm m n, tính nghịch đảo
1
m và giải mã bằng cách tính điểm
1
m Q
Chứng minh
Vì n là một số nguyên tố Khi đó, n là một trường Với mọi mn, m 0 luôn tồn tại
1
n
m
sao cho
1
m m mà 1P 1P P
Như vậy, với một số nguyên k bất kỳ được chọn làm khóa thì luôn tồn tại m n sao cho
k mmnkPmP Q
Để khôi phục lại được dữ liệu, ta lấy
m Q m mP m m P P
Mà 1P 1P P Kết luận: Dữ liệu được khôi phục
4 MÔ TẢ PHƯƠNG PHÁP BẰNG PHẦN MỀM MAPLE 13.0
Bảng tương ứng số - ký tự - điểm
Tương ứng hệ
thập phân
Đồ hoạ (Hiển thị ra được)
Tương ứng với điểm trên đường cong E
Tương ứng hệ thập phân
Đồ hoạ (Hiển thị ra được)
Tương ứng với điểm trên đường cong E
0
Khoảng
Trang 5Tương ứng hệ
thập phân
Đồ hoạ (Hiển thị ra được)
Tương ứng với điểm trên đường cong E
Tương ứng hệ thập phân
Đồ hoạ (Hiển thị ra được)
Tương ứng với điểm trên đường cong E
Trang 6Tương ứng hệ
thập phân
Đồ hoạ (Hiển thị ra được)
Tương ứng với điểm trên đường cong E
Tương ứng hệ thập phân
Đồ hoạ (Hiển thị ra được)
Tương ứng với điểm trên đường cong E
* Ghi chú: Các điểm trong bảng tương ứng trên, đều là điểm có bậc là số nguyên tố 373, của đường cong elliptic E có
phương trình
y x x trên trường 401.
Các bảng tương ứng: Ký tự - số, số - ký tự, điểm - số, số - điểm cần thiết trong quá trình mã hóa
Ứng dụng mã hóa
[ BangKyTuSo : {" "=0,"A"=1,"B"=2,"C"=3,"D"=4,"E"=5,"F"=6,"G"=7,"H"=8,
"I"=9,"J"=10,"K"=11,"L"=12,"M"=13,"N"=14,"O"=15,"P"=16,"Q"=17,"R"=18,"S"=19,
"T"=20,"U"=21,"V"=22,"W"=23,"X"=24,"Y"=25,"Z"=26,"a"=27,"b"=28,"c"=29,
"d"=30,"e"=31,"f"=32,"g"=33,"h"=34,"i"=35,"j"=36,"k"=37,"l"=38,"m"=39,"n"=40,
"o"=41, "p"=42,"q"=43,"r"=44,"s"=45,"t"=46,"u"=47,"v"=48,"w"=49,"x"=50,"y"=51,
"z"=52,"!"=53,"#"=54,"$"=55,"%"=56,"&"=57,"'"=58,"("=59,")"=60,"*"=61,"+"=62,
","=63,"-"=64,"."=65,"/"=66,"0"=67,"1"=68,"2"=69,"3"=70,"4"=71,"5"=72,"6"=73,
"7"=74,"8"=75, " 9 " 76, " : " 77, "; " 78, " " 79, " " 80, " " 81,
"?" 82, "@" 83, "[ " 84, " ]" 85, " { " 86, " } " 87, "^ " 88, "_" 89,
"`" 90, " | " 91, " ~ " 92, "Ñ " 93, " "ä 94, " "ñ 95, " "æ 96 :
[ n :nop BangKyTuSo
[ BangSoKyTu : {0=" ",1="A",2="B",3="C",4="D",5="E",6="F",7="G",8="H", 9="I",10="J",11="K",12="L",13="M",14="N",15="O",16="P",17="Q",18="R",19="S",
20="T",21="U",22="V",23="W",24="X",25="Y",26="Z",27="a",28="b",29="c",
30="d",31="e",32="f",33="g",34="h",35="i",36="j",37="k",38="l",39="m",40="n", 41="o", 42 "p",43="q",44="r",45="s",46="t",47="u",48="v",49=" ",50="x",51="y",w
52="z",53="!",54="#",55="$",56="%",57="&",58="'",59="(",60=")",61="*",62="+", 63=",",64="-",65=".",66="/",67="0",68="1",69="2",70="3",71="4",72="5",73="6", 74="7",75="8", 76 " 9 ", 77 " : ", 78 "; ", 79 " ", 80 " ", 81 " ",
82 "?", 83 "@", 84 " [ ", 85 " ]", 86 " { ", 87 " } ", 88 "^ ", 89 "_",
90 "`", 91 " | ", 92 " ~ ", 93 "Ñ ", 94 " ", 95ä " ", 96ñ " " :æ
[ n :nop BangSoKyTu
[ BTUSoVoiD : {0=[19, 67],1=[22,91],2=[23,99],3=[26,100],4=[27,67],5=[28,94],
Trang 713=[41,85],14=[43,13],15=[45,42],16=[46,93],17=[47,170],18=[49,32],19=[50,147],
20=[35,101],21=[54,194],22=[55,189],23=[56,177],24=[57,178],25=[58,200],26=[61,36], 27=[62,68],28=[64,72],29=[65,35],30=[69,101],31=[70,141],32=[77,17],33=[80,45],
34=[86,145],35=[90,127],36=[92,117],37=[94,25],38=[95,175],39=[97,46],40=[98,42], 41=[99,49], 42 [101,148],43=[104,135],44=[106,13],45=[107,61],46=[112,34],
47=[113,71],48=[114,98],49=[116,106],50=[120,93],51=[124,190],52=[125,40],
53=[126,195],54=[135,60],55=[138,139],56=[140,142],57=[142,198],58=[143,26],
59=[144,48],60=[145,80],61=[146,124],62=[147,155],63=[148,59],64=[150,87],
65=[155,19],66=[157,4],67=[161,109],68=[164,88],69=[167,189],70=[168,115],
71=[173,51],72=[179,89],73=[181,140],74=[183,47],75=[189,84], 76[190,158],
77 [191,199], 78 [195,14], 79 [196,184], 80 [197,11], 81[198,7], 82 [202,83],
83 [205,74], 84 [206,84], 85 [212,14], 86 [213,23], 87 [215,116], 88 [219,89],
89 [220,22], 90 [222,53], 91 [224,6], 92 [234,53], 93 [238,82], 94 [240,103],
95 [247,82], 96 [250,89] :
[ n :nop BTUSoVoiD
[ BTUDVoiSo : {[19, 67]=0,[22,91]=1,[23,99]=2,[26,100]=3,[27,67]=4,[28,94]=5, [30,135]=6,[33,52]=7,[34,154]=8,[35,45]=9,[37,132]=10,[38,191]=11,[40,52]=12,
[41,85]=13,[43,13]=14,[45,42]=15,[46,93]=16,[47,170]=17,[49,32]=18,[50,147]=19,
[35,101]=20,[54,194]=21,[55,189]=22,[56,177]=23,[57,178]=24,[58,200]=25,[61,36]=26, [62,68]=27,[64,72]=28,[65,35]=29,[69,101]=30,[70,141]=31,[77,17]=32,[80,45]=33,
[86,145]=34,[90,127]=35,[92,117]=36,[94,25]=37,[95,175]=38,[97,46]=39,[98,42]=40, [99,49]=41,[101,148]=42,[104,135]=43,[106,13]=44,[107,61]=45,[112,34]=46,
[113,71]=47,[114,98]=48,[116,106]=49,[120,93]=50,[124,190]=51,[125,40]=52,
[126,195]=53,[135,60]=54,[138,139]=55,[140,142]=56,[142,198]=57,[143,26]=58,
[144,48]=59,[145,80]=60,[146,124]=61,[147,155]=62,[148,59]=63,[150,87]=64,
[155,19]=65,[157,4]=66,[161,109]=67,[164,88]=68,[167,189]=69,[168,115]=70,
[173,51]=71,[179,89]=72,[181,140]=73,[183,47]=74,[189,84]=75,[190,158]=76,
[191,199]=77,[195,14]=78,[196,184]=79,[197,11]=80,[198,7]=81,[202,83]=82,
[205,74]=83,[206,84]=84,[212,14]=85,[213,23]=86,[215,116]=87,[219,89]=88,
[220,22]=89,[222,53]=90,[224,6]=91,[234,53]=92,[238,82]=93,[240,103]=94,
[247,82]=95,[250,89]=96 :
[ n : nop BTUDVoiSo
[ > Restart : with numtheory :
Trang 8
p := nextprime 10*40 ;p := seq i i, 0 p1 :
:= 1 :a
:= 17 :b
2 3
f := x y, y x a x b mod p;*
TapDiem := seq msolve x i f x y p i , , 0 p 1 :
401
p :=
, 2 3
f := x y y x ax b mod p
Chương trình con tìm điểm nghịch đảo
[ DND : proc A ; local x y , ;
:if A infinity then return infinity end if; ;
:x A mod p[1] ;
:y 0 A 2 mod p;
return x y , ;
:
end proc
Chương trình con tìm điểm cộng
[ DC : proc A B ; local x y lamda, , , ;
if Ainfinity then return B end if ; ;
if B infinity then return A end if ; ;
if A DND B then return infinty end if; ;
if B 1 A 1 0 mod p then
: ;
1 1
:x lamda A 1B 1 mod p;
:y A 2 lamda * A 1x mod p;
elif B A 0mod p then
*
*
3 1
2 2
A
:x lamda 2 * A 1 mod p;
Trang 9
:y A 2 lamda * A 1x mod p;
end if ;
return x y , ;
:
end proc
Chương trình con tìm điểm nhân
[ DN : proc A k ; local i P Q, , , ;
if Ainfinity then return A end if ; ;
if k 0 then return infinity end if; ;
P : infinity;
Q : A;
for i from 1 1 by while i k do
P : DC P Q end do, ; ;
return P ;
:
end proc
Chương trình con tìm bậc của một điểm
[ Bac : proc A ; local i P , ;
for i from 2 1 7919 by to do
;
P : DN A i,
if P infinity then P : DN A i, 1
elif return i ;
;
end if
;
end do
return i ;
:
end proc
Chương trình con tìm phần tử nghịch đảo của trường p
[ PTND : proc n ; local x y i k , , , ;
:x n mod p;
if x 0 mod p then return infinity; end if;
for i from 1 by 1 to p 1 do
;
:y n i* mod p
if y 1 mod p then y :n * i1 mod p else return i; end if;
;
end do
return i ;
:
end proc
[VanBanRo : " Mathematics is my favorite subject " ;
Trang 10
1
L :length VanBanRo ;
DayVanBanRo : seq VanBanRo i i , 1 L ;
DaySoRo :sub BangKyTuSo DayVanBanRo,
L :nop DaySoRo
DayDiemRo :sub BTUSoVoiD DaySoRo ;
L :nop DayDiemRo
VanBanRo := "Mathematics is my favorite subject"
1 : 34
: [" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ",
" ", " ", " ", "i s m", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ",y f a v o r i t e
" ", " ", " ", " ", " ", " ", " "]s u b j e c t
: [13, 27, 46, 34, 31, 39, 27, 46, 35, 29, 45, 0, 35, 45, 0, 39, 51, 0, 32, 27, 48, 41, 44,
DaySoRo
35, 46, 31, 0, 45, 47, 28, 36, 31, 29, 46]
2 : 34
L
: [ 41, 85 , 62, 68 , 112, 34 , 86.145 , 70,141 , 41, 85 , 97, 46 ,
DayDiemRo
62, 68 , 112, 34 , 90,127 , 65, 35 , 107, 61 , 19, 67 , 90,127 , 107, 61 , 19, 67 ,
77,17 , 62, 68 , 114, 98 , 99, 49 , 106,13 , 90,127 , 112, 34 , 70,141 , 90,127 ,
19, 67 , 107, 61 , 90,127 , 113, 71 , 64, 72 , 92,117 , 70,141 , 65, 35 , 112, 34 ]
3 : 34
L
[k : 2; k : 3; := 7; u
1
KSCKT : u k ;KSCKC :u k ;K : KSCKC k ;
DayDiemMa : seq DN DayDiemRo i K i , , 1 L ;
1 : 2
k
2 : 3
k
:= 7
u
KSCKT : 49
: 343
KSCKC
: 117649
K