1. Trang chủ
  2. » Công Nghệ Thông Tin

Cấ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ã

12 43 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 12
Dung lượng 323,67 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

CẤ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 nmodule Beside this new nmodule 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

 

Ep Để 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 nPO, mPO với mọi

số nguyên 1mn 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

 

Ep 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:

yxaxb thỏa mãn điêu kiện

4a 27b  0

Trang 2

2 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, mPO,với mọi số nguyên

1mnký 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

kPmP Trong đó m là số dư trong phép chia k cho n Hay nói cách khác với mọi

 

,

km  PE  thì kPmP

Chứng minh Với km n thì tồn tại số nguyên a   sao cho kman Khi đó với mọi

 p n

PE  ta có kP man P Bằng phương pháp quy nạp ta chứng minh kPmP Thật vậy, với a  0 kPmP 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

kPmP

+ Với a  2 kP m2n P lý luận tương tự như trên ta được kPmP

+ Giử sử đúng a  l 1 ta chứng minh đúng với al. Nghĩa là kP m l 1n P mP

ta chứng minh kP mln P mP Thật vậy,

kPm  l n PkPm l nn Pm l n PnP

Do giả thuyết quy nạp m l 1n P mP

nPO nên ta thu được kPmP

Dễ dàng chứng minh được điểm mPE 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 OE p n do đó E p n  

Trang 3

+ P Q,  E p n ta chứng minh PQE 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 QE  nên nPO, nQOnPnQOn 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ó:

PQOn P( Q)O

Mặt khác, n P( Q) nPnQnPnQO, mà nPO, do đó: nQO Từ đây

ta có được QE 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 Pk lP( )( )kl Pk lP( )( ) kl P

b Tính chất phân phối: k l,  n,P Q, E p n Ta có:

+ (kl P) (kl P) (kl P) (kl P) (kl P) (kl P)

(k l P) kP lP

    (kl P) kPlP

+ k P( Q)k P( Q)k P( Q)kPkQk P( Q)kPkQ

c Tính chất Unita Ta có: 1P 1PP

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 4

Giả 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

KKSCKC  T tiến hành mã hóa bằng cách tính điểm nhân K PQ 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 mn, m 0 luôn tồn tại

1

n

m  

sao cho

1

m m  mà 1P 1PP

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

kmmnkPmPQ

Để khôi phục lại được dữ liệu, ta lấy

m Q mmPm m P  P

Mà 1P 1PP 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 5

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

Trang 6

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

* 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

yx  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 7

13=[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  p1 :

:= 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 Ainfinity then return infinity end if; ;

:xA 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 Binfinity then return A end if ; ;

 

if ADND B then return infinty end if; ;

if B 1 A 1 0 mod p then

    

: ;

1 1

   

   

   

   

   

   

:xlamdaA   1B   1 mod p;

:y  A  2 lamda * A   1x 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   1x 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 ik 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 Pinfinity 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 , , , ;

:xn mod p;

if x  0 mod p then return infinity; end if;

for i from 1 by 1 to p 1 do

;

:yn i* mod p

 

if y1 mod p then y :n * i1 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 

Ngày đăng: 30/01/2020, 10:56

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w