1. Trang chủ
  2. » Tài Chính - Ngân Hàng

Chuong5doc

23 27 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

Nội dung

C¸c thuËt to¸n Shanks vµ Pohlig - Hellman cã thÓ ¸p dông cho bµi to¸n rêi r¹c trªn ®êng cong Elliptic song tíi nay vÉn cha cã mét thuËt to¸n thÝch hîp cho ph¬ng ph¸p tÝnh chØ sè ®èi ví[r]

(1)

Chơng 5

Các hệ mật khoá công khai khác

Trong chng ny ta s xem xét số hệ mật khố cơng khai khác Hệ mật Elgamal dựa toán logarithm rời rạc toán đợc dùng nhiều nhiều thủ tục mật mã Bởi ta dành nhiều thời gian để thảo luận toán quan trọng phần sau xem xét sơ lợc số hệ mật khố cơng khai quan trọng khác bao gồm hệ thoóng loại Elgamal dựa trờng hữu hạn đờng cong elliptic, hệ mật xếp ba lô Merkle-Helman hệ mật McElice

5.1 Hệ mật Elgamal logarithm rời rạc.

Hệ mật Elgamal đợc xây dựng toán logảithm rời rạc Chúng ta bắt đầu băng việc mơ tả tốn thiết lập môi trờng hữu hạn Zp, p số nguyên tố ( hình 5.1) ( Nhớ lại nhóm nhân Zp* nhóm cyclic và phần tử sinh Zp* đợc gọi phần tử nguyên thuỷ).

Bài toán logarithm rời rạc Zp đối tợng nhiều cơng trình nghiên cứu đợc xem tốn khó p đợc chọn cẩn thận Cụ thể khơng có thuật tốn thời gian đa thức cho tốn logarithm rời rạc Để gây khó khăn cho phơng pháp công biết p phải có 150 chữ số (p-1) phải có thừa số ngun tố lớn Lợi toán logarithm rời rạc xây dợng hệ mật khó tìm đợc logarithm rời rạc ,song tốn ngợc lấy luỹ thừa lại tính tốn hiệu theo thuật tốn "bình phơng nhân" Nói cách khác , luỹ thừa theo modulo p hàm chiều với số nguyên tố p thích hợp

Elgamal phát triển hệ mật khố cơng khai dựa tốn logarithm rời rạc Hệ thống đợc trình bày hình 5.2

Hệ mật hệ không tất định mã phụ thuộc vào rõ x lẫn giá trị ngẫu nhiên k Alice chọn Bởi vậy, có nhiều mã đợc mã từ bn rừ

Hình 2.6 Bài toán logarithm rời rạc Zp

Đặc trơng toán: I = (p,,) p số nguyên tố,

 Zp phần tử nguyên thuỷ , Zp*

Mục tiêu:HÃy tìm số nguyên a,  a  p-2 cho:

a   (mod p)

(2)

Hình 2.7 Hệ mật khoá công khai Elgamal Zp*

Sau nmô tả sơ lợc cách làm việc hệ mật Elgamal Bản rõ x đợc "che dấu" cách nhân với k để tạo y2 Giá trị k đợc gửi

nh phần mã Bob -ngời biết số mũ bí mật a tính đợc k từ

k Sau "tháo mặt nạ" cách chia y2 cho k để thu đợc x

VÝ dô 5.1

Cho p = 2579,  = 2, a = 765 Khi  = 2765 mod 2579 = 949

Bây ta giả sử Alice muốn gửi thông báo x = 1299 tới Bob Giả sử số ngẫu nhiên k mà cô chọn k = 853 Sau ta tính

y1 = 2853 mod 2579 = 435

y2 = 1299  949853 mod 2579 = 2396

Khi Bob thu đợc mã y = (435,2396), tính x = 2396  (435765)-1 mod 2579

= 1299 Đó rõ mà Alice mã hố

Cho p lµ số nguyên tố cho toán logarithm rời rạc Zp khó giải Cho Zp* phần tử nguyên thuỷ.Giả sử P = Zp* ,

C = Zp* Zp* Ta định nghĩa:

K = {(p, ,a,): a (mod p)} Các giá trị p, , đợc cơng khai, cịn a giữ kín

Với K = (p, ,a,) số ngẫu nhiên bí mật k  Zp-1, ta xác định:

ek (x,k) = (y1 ,y2 )

trong

y1 = k mod p

(3)

5.1.1 C¸c thuËt toán cho toán logarithm rời rạc.

Trong phn ta xem p số nguyên tố,  phần tử nguyên thuỷ theo modulo p Ta thấy p  số cố định Khi tốn logarithm rời rạc đợc phát biểu dới dạng sau: tìm số mũ a nhất,  a  p-2 cho a (mod p), với  Zp* cho trớc.

Rõ ràng tốn logarithm rời rạc (DL) giải phép tìm kiếm vét cạn với thời gian cỡ O(p) không gian cỡ O(1) ( bỏ qua thừa số logarithm) Bằng cách tính tốn tất giá trị a xếp cặp có thứ tự (a, a mod p) có lu ý đến tạo độ thứ hai chúng, ta giải toán DL với thời gian cỡ O(1) O(p) phép tính tốn trớc O(p) nhớ ( bỏ qua thừa số logarithm) Thuật toán không tầm thờng mà mô tả thuật toán tối u hoá thời gian - nhớ Shanks

Ta biĨu thÞ m =[√p-1] Thuật toán Shanks d ợc trình bày hình Sau day

lµ mét sè nhËn xÐt: T

huật toán Shanks

Hình 5.3 Thuật toán Shanks cho toán DL. Tính mj mod p,  j  m-1

2 Sắp xếp m cặp thứ tự ( j,mj mod p) có lu ý tới tạo độ thứ hai cặp này, ta thu đợc danh sách L1

3 TÝnh -i mod p,  i  m-1

4 Sắp xếp m cặp thứ tự (i, -i mod p) có lu ý tới toạ độ thứ hai của cặp đợc này, ta thu đợc danh sách L2

5 Tìm cặp (j,y)  L1 cặp (i,y)  L2 ( tức cặp có tạo độ thứ hai nh nhau)

6 Xác định log = mj + i mod (p-1)

7

- Nếu cần, bớc tính toán trớc ( nhiên, điều không ảnh hởng tới thời gian chạy tiÖm cËn)

- Tiếp theo cần để ý (j,y)  L1 (i,y)  L2

mj = y = -i

Bëi vËy

mj+i = 

(4)

log = mj+i

trong  j,i  m-1 Vì phép tìm kiếm bớc chắn thành cơng Có thể áp dụng thuật toán chạy với thời gian O(m) với nhớ cỡ O(m) ( bỏ qua thừa số logarithm) Chú ý bớc thực cách ( đồng thời ) qua danh sách L1 L2

Sau ví dụ nhỏ để minh hoạ Ví dụ 5.2

Giả sử p = 809 ta phải tìm log3525 Ta cã  = 3,  = 525 vµ m =

808 = 29 Khi đó:

29 mod 809 = 99

Trớc tiên tính cặp đợc (j,99j mod 809) với  j28 Ta nhận đợc danh sách sau:

(0,1) (1,99) (2,93) (3,308) (4,559) (5,329) (6,211) (7,664) (8,207) (9,268) (10,644) (11,654) (12,26) (13,147) (14,800) (15,727) (16,781) (17,464) (18,314) (19,275) (20,582) (21,496) (22,564) (23,15) (24,676) (25,586) (26,575) (27,295) (28,81)

Danh sách đợc xếp để tạo L1

Danh sách thứ hai chứa cặp đợc (i,525(3i)-1 mod 809), với 0

i 28 Danh sách gồm:

(0,525) (1,175) (2,328) (3,379) (4,396) (5,132) (6,44) (7,554) (8,724) (9,511) (10,440) (11,686) (12,768) (13,256) (14,,355) (15,388) (16,399) (17,133) (18,314) (19,644) (20,754) (21,496) (22,564) (23,15) (24,676) (25,356) (26,658) (27,489) (28,163)

Sau xếp danh sách này, ta có L2

Bây xử lý đồng thời qua hai danh sách, ta tìm đợc ( 10,644) L1 (19,644) L2 Bây ta tính

log3525 = 2910+19 = 309

Cã thĨ kiĨm tra thÊy r»ng qu¶ thùc 3309  525 (mod 809). ThuËt to¸n Pohlig - Hellman.

p-1 =

i=1 k

(5)

pi số nguyên tố đặc biệt Giá trị a = log đợc xác định cách

theo modulo p-1 Tríc hÕt nhËn xÐt r»ng, nÕu cã thĨ tÝnh a mod pici với i,

1 i k, tính a mod (p-1) theo định lý phần d China Để thực diều ta giả sử q số nguyên tố

p-1  (mod qc)

Ta sÏ chØ c¸ch tính giá trị

x = a mod qc

x=

i=0 c −1

aiqi  x  qc-1 Ta biểu diễn x theo số q nh sau:   q-1 với  i  c-1 Cũng biểu diễn nh sau:

a = x + qcs với s số ngun

Bíc thuật toán tính a0 Kết là:

(p-1)/q (p-1)a0/q(mod p)

p1/q

¿

x+qcs¿/q

¿

(p −1)¿ ¿

β¿

x+qcs¿/q

¿

(p −1)¿

α¿

Để thấy rõ điều cần ý rằng:

Điều đủ thấy:

(p −1)(x+qcs)

q

(p−1)a0

q (modp −1)

(p −1)(x+qcs)

q

(p−1)a0

q =

(p −1)

q (x+q

cs − a 0)

(p −1)

q

(

i=0 c−1

aiqi+qcs − a0

)

(p −1)

q

(

i=1 c −1

aiqi+qcs

)

(p−1)

(

i=1 c−1

aiq i −1

+qc −1s

)

o(modp −1)

Kết v ch

khi:

Tuy nhiên

Đó điều cần chứng minh

(6)

Do ta bắt đầu việc tính (p-1)/q mod p Nếu

(p-1)/q  (mod p)

thì a0=0 Ngợc lại tính liên tiếp giá trị: = (p-1)/q mod p, 2 mod p, ., cho tíi i (p-1)/q (mod p).

với giá trị i Khi điều xảy ta có a0 =i

Bây c = ta thực xong Ngợc lại, c > phải tiếp tục xác định a1 Để làm điều ta phải xác định

1 = -ao

vµ kÝ hiƯu

x1 = log1 mod qc

DƠ dµng thÊy r»ng

Vì dẫn đến

Nh vËy ta tính 1(p-1)/q2 mod p tìm i cho

Khi a1 = i

Nếu c =2 cơng việc kết thúc; khơng, phải lặp lại cơng việc c-2 lần để tìm a2, .,ac-1

Hình 5.4 mô tả giải mà thuật toán Pohlig - Hellman Trong thuật toán này, phần tử nguyên thuỷ theo modulo p, q số nguyên tố

p-1 (mod qc) vµ

Thuật tốn tính giá trị a0, , ac-1

log mod qc

Hình 5.4 Thuật tốn Pohlig - Hellman để tính log mod qc.

(7)

1. TÝnh  = (p-1)/q mod p víi  i  q-1

2. Đặt j = j =

3 While j  c-1 do

4. TÝnh  = j(p-1)/q j+1 mod p

5. T×m i cho  = i

6. aj = i

7. j+1 = j -aj qj mod p

8. j = j +1

Chúng ta minh hoạ thuật toán Pohlig - Hellman (P - H) qua mét vÝ dô nhá VÝ dô 5.3

Giả sử p=29;

n = p-1 = 28 = 22.71

Giả sử  =  = 18 Ta phải xác định a = log218 Trớc tiên tính a mod tính a mod

Ta bắt đầu việc đặt q = 2, c = Trớc hết 0 =

vµ 1 = 28/2 mod 29 = 214 mod 29 = 28

TiÕp theo

 = 28/2 mod 29 = 1814 mod 29 = 28

V× a0 = TiÕp theo ta tÝnh:

1 = 0-1 mod 29 =

128/4 mod 29 = 97 mod 29 = 28

1  28 mod 29 Ta cã a1 = Bëi vËy a  ( mod 4)

Tiếp theo đặt q = c = 1, ta có

28/7 mod 29 = 184 mod 29 = 25

vµ 1 = 28/7 mod 29

= 24 mod 29 = 16

Sau tính: 2 = 24

3 =

4 = 25 Bëi vËy a0 = vµ a  ( mod 7)

(8)

bằng định lý phần d China, ta nhận đợc a  11( mod 28) Điều có nghĩa tính đợc log218 Z29 l 11

Phơng pháp tính toán số.

Phơng pháp tính số giống với nhiều thuật toán phân tích thừa số tốt Trong phần xét tóm tắt phơng pháp Phơng pháp dùng cơ sở nhân tử tập B chứa số nguyên tố nhỏ Giả sử B = {p1,p2, ., pB} Bớc ( bớc tiền xử lý) tìm logarithm B số

nguyên tố sở nhân tử Bớc thứ hai tính logarithm rời rạc phần tử b»ng c¸ch dïng c¸c hiĨu biÕt vỊ c¸c log cđa phần tử sở

Trong quỏ trỡnh tiền xử lý, ta xây dựng C = B +10 đồng d thức theo modulo p nh sau:

xj p1a1jp2a2j pBaBj(mod p)

1  j  C Cần để ý rằng, đồng d viết tơng đơng nh sau: xj  a1jlogp1+ + aBjlogpB (mod p-1)

1  j  C C đồng d thức đợc cho theo B giá trị logpi (1  i  B) cha biết

Ta hy vọng rằng, có nghiệm theo modulo p-1 Nếu nh tính logarithm phần tử theo sở nhân tử

Làm để tạo đồng d thức có dạng mong muốn? Một phơng pháp sơ đẳng chọn số ngẫu nhiên x, tính x mod p xác định xem liệu x mod p có tất thừa số B hay khơng (Ví dụ bằng cách chia thử)

Bây giả sử thực xong bớc tiên tính tốn, ta tính giá trị mong muốn log thuật toán xác suất kiểu Las Vegas Chọn số

ngÉu nhiªn s (  s  p-2) vµ tÝnh :

 = s mod p

Bây thử phân tích  theo sở B Nếu làm đợc điều ta tính đợc đồng d thức dạng:

s = p1c1p2c2 pBcB (mod p)

Điều tơng đơng với

log + s  c1logp1+ + cBlogpB ( mod p-1)

Vì giá trị đả biết trừ giá trị log nên có th d dng tỡm c log

Sau ví dụ minh hoạ bớc thuật toán VÝ dô 5.4

Giả sử p =10007  = phần tử nguyên thuỷ đợc dùnglàm sở logarithm theo modulo p Giả sử lấy B = {2, 3, 5, 7} làm sở Hiển nhiên log55 = nên có giá trị log phần tử sở cần phải xác định Để làm ví dụ, chọn vài số mũ "may mắn" sau: 4063, 5136 985

Víi x = 4063, ta tÝnh

(9)

log52 + log53 + log57  4063 ( mod 10006) Tơng tự,

55136 mod 10007 = 54 = 233 59865 mod 10007 = 189 = 337 ta tìm đợc hai đồng d thức nữa:

log52 + 3log53  5136 ( mod 10006) 3log53 + log57  9865 ( mod 10006)

Bây ta có đồng d thức theo giá trị log cha biết Giải phơng trình đồng d này, ta có log52 = 6578, log53 = 6190, log57 = 1301

Bây giả sử ta cần tìm log59451, ta chọn số mũ "ngẫu nhiên" s=7736 tính:

945157736 mod 10007 = 8400

Vì 8400 = 24315271 thừa số B nên ta nhận đợc:

log59451 = 4log52 + log53 + log55 + log57 - s mod 10006 = 46578 + 6190 + 21 + 1310 - 7736 mod 10006 = 6057

KiÓm tra l¹i ta thÊy r»ng 56057 9451 ( mod 10007).

ĐÃ có nhiều nghiên cứu phân tích mò mẫm nhiều kiểu thuật toán khác Với giả thiết hợp lý, Thời gian chạy tiệm cận giai đoạn tiền tính toán cỡ

v thi gian tớnh mt giá trị logarithm rời rạc riêng khoảng Hình 5.5 Bít thứ i logarithm rời rạc.

Bản chất toán: I = (p, , , i) p số nguyên tố ,

Zp* là phần tử nguyên thuỷ, Zp* i số nguyên cho 1

i  log2(p-1)

Mơc tiªu:TÝnh Li() lµ bÝt thÊp nhÊt thø i cđa log (víi  p cho

trớc)

5.1.2 Độ bảo mật tng bít logarithm rời rạc.

(10)

Trớc tiên, ta rằng, bít thấp logarithm rời rạc dễ tính tốn Nói cách khác, i = tốn bít thứ i giải đ ợc cách hiệu Điều rút từ tiêu chuẩn Euler liên quan đến thặng d bình phơng theo modulo p, với p số nguyên tố

Xét ánh xạ f: Zp* Zp* đợc định nghĩa nh sau: f(x) = x2 mod p

NÕu kÝ hiÖu QR(p) tập thặng d bình phơng theo modulo p th× QR(p) = { x2 mod p : x  Zp*}

Tríc tiªn ta thÊy r»ng, f(x) = f(p-x) TiÕp theo xÐt thÊy: w2 x2 mod p

khi p | (w-x)(w+x)

điều xảy w x mod p Từ rút ra: | f-1(y) | = 2

víi mäi y  QR(p) vµ bëi vËy: | QR(p) = (p-1)/2

Điều có nghĩa có thặng d Zp* thặng d bình phơng khơng phải

Bây giở giả sử rằng,  phần tử nguyên thuỷ Zp* Khi đó

aQR(p) a chẵn Vì (p-1)/2 phần tử 0 mod p, 2 mod p, .,p-3 mod p phần tử khác nên:

QR(p) = {2i mod p:  i  (p-3)/2}

Bëi vËy,  thặng d bình phơng log chẵn, tức

khi L1() = Tuy nhiên theo tiêu chuẩn Euler thặng d bình phơng

(p-1)/2 (mod p)

Nh vậy, ta có cơng thức hữu hiệu sau để tính L1(): Bây xét việc tính Li() với i > Giả sử

p-1 = 2s t

nÕu (p-1)/2  1( mod p) L1()=

(11)

trong t số lẻ Khi rằng, dễ dàng tính đợc Li() 1s Mặt khác, việc tính Ls+1() chắn khó dùng thuật tốn giả định cho việc tính Ls+1() để tính logarithm rời rạc Zp

Ta chứng minh kết trờng hợp s = Chính xác hơn, p  (mod 4)là số nguyên tố ta cách sử dụng thuật tốn giả định tính L2() để giải toán logarithm rời rạc Zp

Nếu thặng d bình phơng Zp p ( mod 4)

(p+1)/2 mod p hai giá trị bậc hai cđa modulo p Mét chó ý cịng quan träng lµ víi bÊt k×  0:

L1()  L1(p-) p  (mod 4) Ta thấy điều nh sau Giả sử

a  (mod p) th× a+(p-1)/2 - (mod p)

Vì p  (mod 4) nên số nguyên (p-1)/2 số lẻ Từ rút kết Bây giả sử  = a với số mũ chẵn a (cha biết) Khi hoặc:

(p+1)/4 a/2 (mod p) hc

-(p+1)/4 a/2 (mod p)

Ta xác định giá trị hai giá trị biết giá trị L2(),

L2() = L1(a/2)

Điều đợc khai thác thuật tốn đợc mơ tả hình 5.6

ở cuối thuật toán, giá trị xi bít biểu diễn nhị phân log, nghĩa là:

Dới ví dụ nhỏ để minh hoạ Ví dụ 5.5

Giả sử p =19,  =  = Vì ví dụ này, giá trị nhỏ nên lập bảng giá trị L1() L2() với mọi giá trị Z19*.( Nói chung L1 tính đợc cách hiệu tiêu chuẩn Euler, L2 đợc tính theo thuật tốn giả định) Các giá trị đợc cho bảng 5.1 Thuật toán đợc tiến hành nh hình 5.7

Bởi vậy, log26 = 11102 = 14, ta dễ dàng kiểm tra đợc giá trị Hình 5.6 Tính logarithm rời rạc Zp với p ( mod 4) khi

biết trớc thuật toán giả định L2().

1. x0 = L1()

2.  = /x0 mod p

3. i =1

(12)

5. xi = L2()

6.  = (p+1)/4 (mod p)

7. if L1() = xi then 8.  = 

9 else

10  = p -

11  = /xi mod p 12 i = i+1

Bảng 5.1 Các giá trị L1 L2 với p =19,  =

 L1() L2()  L1() L2()  L1() L2()

1 0 13

2 1 14 1

3 0 15 1

4 10 16 0

5 0 11 0 17

6 12 0 18

Có thể đa chứng minh hình thức cho tính đắn thuật tốn phơng pháp quy nạp Kí hiệu

Với i  0, ta định nghĩa:

Yi = x/2i+1 H×nh 5.7 TÝnh log26 Z19

1 x0 =  =6 i =1

5 x1 = L2(6) =  =

7 L1(5) =  x1 10  =14

11 i =2 12 i =2

x2 = L2(7) =1  = 11

L1(11) =  x2 10  =8

11  =4 12 i =

x3 = L2(4) =  =17

L1(17) =  x3 10  =

(13)

Cũng ta xác định 0 giá trị  bớc thuật toán; với i1, ta xác định i giá trị  bớc 11 bớc lặp thứ i vịng While Có thể chứng minh phơng pháp quy nạp rằng:

i 2Yi (mod p) với i0 Bây để ý rằng: 2Yi = Yi-1 - xi điều kéo theo

xi+1 = L2(i) , i0

Vì xi+1 = L2() nên thuật tốn Các chi tiết dành cho độc giả xem xét

5.2 Trờng hữu hạn hệ thống đơng cong

elliptic

Chúng ta dành thời gian đáng kể để xét toán logarithm rời rạc (DL) vào việc phân tích số Ta cịn trở lại hai toán loại hệ mật giao thức mã khác Bài toán DL đợc nghiên cứu tr-ơng hữu hạn Zp, nhiên việc xét toán theo thiết lập khác có ích chủ đề phần

Hệ mật Elgamal đợc áp dụng nhóm mà tốn DL khó giải Ta dùng nhóm nhân Zp* nhiên nhóm khác ứng cử viên thích hợp Trớc hết ta phát biểu tốn DL nhóm hữu hạn nói chung G (hữu hạn) kí hiệu phép lấy nhóm dấu "" Dạng toán tổng quát hoá nh trình hình 5.8

Dễ dàng xác định hệ mật Elgamal nhóm H theo cách t-ơng tự mơ tả Zp* đợc trình bày hình 5.9 Chú ý phép mã hố yêu cầu dùng số nguyên k ngẫu nhiên cho  k  | H | - Tuy nhiên, Alice khơng biết cấp nhóm H ta tạo số ngun k thoả mãn  k  | G | -1, khơng có thay đổi trình mã giải mã Cũng cần ý nhóm G khơng phải nhóm Aben (Tuy H nhóm Aben nhóm cyclic)

Hình 5.8 Bài toán logarithm rời rạc (G,0)

(14)

hạn với phép lấy nhóm o ,   G  H, H = { i : i  0}

lµ mét nhãm sinh bëi 

Mơc tiêu: Tìm số nguyên a cho  a  | H | -1 vµ

a = , víi kÝ hiƯu a cã nghÜa lµ  o o  (a lần) Ta kí hiệu số nguyên a nµy b»ng log

Bây ta trở lại tốn DL tổng qt hố Nhóm H đợc sinh phần tử  tuỳ ý  G dĩ nhiên phải nhóm cyclic cấp | H | Bởi vậy, dạng tốn theo nghĩa tơng đơng với tốn DL nhóm cyclic Tuy nhiên, độ khó toán DL dờng nh phụ thuộc vào cách biểu diễn nhóm đợc dùng

XÐt mét vÝ dơ vỊ cách biểu diễn mà với nó, toán logarithm rời rạc dễ giải Xét nhóm cộng cyclic Zn giả sử UCLN(,n) = 1, phần tử sinh Zn Vì phép toán nhóm cộng theo modulo n nên phép lấy mũ nhân với a theo modulo n Vì cách xây dựng này, toán logarithm rời rạc tìm số nguyên a cho

a (mod n)

Vì UCLN(,n) = nên  có phần tử nghịch đảo nhân theo modulo n ta dễ dàng tính -1 mod n thuật tốn Euclide Sau giải để tìm a nhận đợc

log = -1 mod n

H×nh 5.9 Hệ mật khoá công khai Elgamal tổng quát

Giả sử G nhóm hữu hạn có phép lấy nhóm o Giả sử   G phần tử cho toán DL H khó; H = {i, i  0} nhóm sinh  Đặt P = G, C = GG định nghĩa:

K = {(G, , a, ) :  = a} Các giá trị ,  cơng khai, cịn a đợc giữ kín

Với K = (G, , a, ) với số ngẫu nhiên bí mật k  Z|H| ta xác định: eK(x,k) = (y1,y2)

trong y1 = k y2 = (x ok) Với mã y = (y1,y2) ta xác định:

(15)

ở phần ta nghiên cứu toán DL nhóm nhân Zp* vơi p là số nguyên tố Nhóm nhóm cyclic cấp p-1 đẳng cấu với nhóm cộng Zp-1 Theo thảo luận trên, ta biết cách tinh logarithm rời rạc cách hiệu nhóm cộng Điều gợi ý khả giải tốn DL Zp* cách quy tốn giải đợc dễ dàng trong Zp-1

Ta xem xét điều đợc thực nh nào? Khi nói rằng, (Zp*,

) đẳng cấu với (Zp-1, +) có nghĩa có song ánh :

 : Zp* Zp-1

sao cho (xy mod p) = ((x) + (y)) mod (p-1) Điều kéo theo:

(a mod p) = a () mod (p-1) Bëi vËy

 a mod p  a () () (mod p-1) Do tìm a theo mơ tả trên, ta có:

log = () (())-1 mod (p-1)

Bây giờ, có phơng pháp hữu hiệu để tính phép đẳng cấu  ta có thuật tốn hữu hiệu để tính logarithm rời rạc Zp* Khó khăn khơng có phơng pháp chung biết để tính hiệu phép đẳng cấu  với số nguyên tố tuỳ ý Ngay biết hai nhóm đẳng cấu khơng thể biết thuật toán hiệu để mo tả tơng minh phép đẳng cấu

Phơng pháp áp dụng cho tốn DL nhóm G tuỳ ý Nếu có phơng pháp hiệu tính phép đẳng cấu H Z|H| tốn DL G mơ tả giải đợc cách hữu hiệu Ngợc lại, dễ dàng thấy rằng, phơng pháp tính logarithm rời rạc có hiệu tạo phơng pháp hiệu tính phép đẳng cấu hai nhóm

Thảo luận rằng, tốn DL dễ khó (xétbề ngồi) tuỳ thuộc vào biểu diễn nhóm cyclic đợc dùng Nh vậy, tốt xem xét nhóm khác với hy vọng tìm đợc thiết lập khác để tốn DL khó Có hai lớp nhóm nh

1 Nhãm nh©n cđa trêng Galois GF(pn)

2 Nhóm đờng cong elliptic xác định trơng hữu hạn Ta xem xét hai lớp nhóm phần sau

5.1.2 Trêng Galois

Ta biết rằng, p số nguyên tố Zp trờng Tuy nhiên có nhiều trờng hữu hạn khác khơng có dạng Thực tế có trờng hữu hạn q phần tử q = pn, p số nguyên tố , n  1là số nguyên Bây ta mô tả ngắn gọn cách xây dựng trờng nh Trớc tiên ta đa vài định nghĩa

(16)

Giả sử p số nguyên tố Gọi Zp[x] tập tất đa thức biến x.

Bằng cách xây dựng phép cộng nhân đa thức theo quy tắc thông thờng ( rút gọn hệ số theo modulo p) ta tạo nên vành.

Víi f(x), g(x) Zp[x], ta nãi r»ng, f(x) chia hÕt cho g(x) ( kÝ hiÖu f(x) |

g(x)) nÕu tån t¹i q(x) Zp[x] cho:

g(x) = q(x)f(x)

Với f(x) Zp[x], ta xác định bậc f ( kí hiệu deg(f)) s m cao

nhất có số hạng cña f.

Giả sử f(x), g(x), h(x) Zp[x] deg(f) = n 1, ta định nghĩa:

g(x) h(x) (mod f(x))

nÕu f(x) | (g(x) - h(x)).

Chú ý tơng tự định nghĩa đồng d đa thức với định nghĩa đồng d số nguyên

Bây ta định nghĩa vành đa thức theo modulo f(x) (ta kí hiệu vành Zp[x]/f(x)) Việc xây dựng Zp[x]/f(x) từ Zp[x] dựa khái niệm đồng d thức theo modulo f(x) tơng tự nh việc xây dựng Zm từ Z

Giả sử deg(f) = n Nếu chia g(x) cho f(x), ta thu đợc thơng q(x) phần d r(x), đó:

g(x) = q(x)f(x) + r(x)

vµ deg(r) < n

Điều thực theo cách chia đa thức thông thờng Bởi vậy, đa thứ Zp[x] đồng d theo modulo f(x) với đa thức có bậc  n-1

Bây ta xác định phần tử Zp[x]/f(x) pn đa thức Zp[x] có bậc nhiều n-1 Phép cộng nhân Zp[x]/(f(x)) đ-ợc xác định nh Zp[x], sau thực rút gọn theo modulo f(x) Với phép toán này, Zp[x]/(f(x)) tạo thành vành

Cần nhớ lại rằng, Zm trờng m số nguyên tố phần tử nghịch đảo nhân tìm đợc qua thuật tốn Euclide Tình hình tơng tự xảy Zp[x]/(f(x)) Sự tơng tự số nguyên tố với đa thức bất khả quy đợc xác định nh sau:

Định nghĩa 5.2

a thc f(x) Zp[x] đợc gọi bất khả quy không tồn đa

thøc f1(x), f2(x) Zp[x] cho

f(x) = f1(x)f2(x).

trong deg(f1) > deg(f2) > 0.

Một thực tế quan trọng Zp[x]/(f(x)) trờng f(x) bất khả quy Hơn nữa, phần tử nghịch đảo nhân Zp[x]/(f(x)) tính đợc cách dùng thuật tốn Euclide mở rộng có biến đổi đơi chút

(17)

X©y dùng mét trêng phần tử Điều thực cách tìm đa thức bất khả quy bậc Z2[x] Ta cần xem xét đa thức có thành phần số đa thức có thành phần số sÏ chia hÕt cho x vµ bëi vËy nã lµ đa thức bất khả quy Có tất ®a thøc nh vËy

f1(x) = x3 + 1 f2(x) = x3 + x + 1 f3(x) = x3 + x2 + 1 f4(x) = x3 + x2 + x + 1 Xét thấy f1(x) khả quy v×:

x3 +1 = (x+1)(x2+x+1)

(cần để ý tất hệ số đợc rút gọn theo modulo 2) Tơng tự, f4(x) khả quy vì:

x3+x2+x+1 = (x+1)(x2+1)

Tuy nhiên hai đa thức f2(x) va f3(x) lại đa thức bất khả quy dùng hai đa thức để xây dựng trờng phần tử

Giả sử dùng f2(x) để xây dựng trờng Z2[x]/(x3+x+1) phần tử tr-ờng đa thức : 0, 1, x, x+1, x2, x2+1, x2+x, x2+x+1

§Ĩ tÝnh tÝch hai phần tử trờng, nhân hai đa thức víi vµ rót gän theo modulo x3+x+1 (tøc chia cho (x3+x+1) tìm đa thức d) Vì ta chia đa thức bậc nên đa thức d có bậc nhiều mét phÇn tư cđa trêng

Ví dụ, ta tính (x2+1)(x2+x+1) Z2[x]/(x3+x+1) Trớc hết tính tích Z2[x] x4+x3+x+1 Khi chia cho x3+x+1, ta nhận đợc biểu thức sau:

x4+x3+x+1 = (x+1)(x3+x+1) +x2+x Bëi vËy, trêng Z2[x]/(x3+x+1) ta cã :

(x2+1)(x2+x+1) = x2+x

Dới đa bảng dầy đủ cho cá phần tử khác trờng Để đơn giản, ta viết đa thức : a2x2+a1x+a0 theo ba đợc a2a1a0.

001 010 011 100 101 110 111 001

010 011 100 101 110

(18)

111 111 101 010 001 110 100 011

Việc tính phần tử nghịch đảo đợc tực theo thuật tốn Euclide mở rộng có biến đổi đơi chút

Cuối cùng, ta thâý nhóm nhân đa thức khác trờng nhóm cyclic cấp Vì số nguyên tố nên suy phần tử khác trờng phần tử sinh nhóm (tức phần tử nguyên thuỷ) Ví dụ, tính luỹ thừa x, ta có:

x1 = x x2 =x2 x3 = x+1 x4 = x2+1 x5 = x2+ x+1 x6 = x2+1 x7 = 1

sÏ bao gåm tÊt phần tử khác trờng

Vn đề cịn lại tồn tính trờng dạng Có thể rằng, có đa thức bất khả quy bậc n 1 Zp[x] Bởi vậy, có trờng hữu hạn pn phần tử nguyên tố p số nguyên n1 Thông thơng có nhiều đa thức bất khả quy bậc n Zp[x] Tuy nhiên, trờng hữu hạn đợc xây dựng từ hai đa thức bất khả quy bậc n chứng tỏ đợc chúng đaửng cấu với Bởi vậy, có trơng hữu hạn cấp pn tuỳ ý (p - số nguyên tố, n 1) trờng GF(pn) Trong trờng hợp n = 1, trơng GF(p) Zp. Cuối cùng, rằng, khơng tồn trờng hữu hạn r phần tử r = pn với p số nguyên tố , n số nguyên (n1).

Ta nhận thấy nhóm nhân Zp* (p - số nguyên tố) nhóm cyclic cấp p-1 Thực tế, nhóm nhân trờng hữu hạn nhóm cyclic: GF(pn)\{0} nhóm cyclic cấp pn-1 Nhóm cho ví dụ nhóm cyclic tốn DL đợc nghiên cứu

O(e(1,405+O(1))n1/3(lnn)2/3

) O(e(1,098+O(1))n1/3(lnn)2/3

) Thực tế trờng hữu hạn GF(2n) đợc nghiên cứu kĩ Cả hai thuật toán logarithm rời rạc Shanks Pohlig-Hellman làm việc trờng GF(2n) Phơng pháp tính tốn số sửa đổi để làm việc trơng Thời gian tiền tính tốn thuật tốn tính tốn số khoảng

cịn thời gian để tìm giá trị logarithm rời rạc riêng khoảng

Tuy nhiên, với giá trị n lớn (n > 800), toán DL GF(2n) đợc coi khó cỡ 2n phải có thừa số nguyên tố "lớn" ( để gây khó khăn cho cách công Pohlig - Hellman)

5.2.2 Các đơng cong Elliptic

Ta bắt đầu việc định nghĩa khái niệm đờng cong elliptic Định nghĩa 5.3

Cho p >3 số nguyên tố Đ ờng cong elliptic y2 = x3+ax+b Zp

tp cỏc cặp (x,y)ZpZp thoả mãn đồng d thức

y2 x3+ax+b (mod p) (5.1)

trong a, bZp số cho 4a3+27b2 ( mod p) với

(19)

[Phơng trình (5.1) dùng để xác định đờng cong elliptic trờng GF(pn) với p - số nguyên tố lớn Đờng cong elliptic GF(2n) GF(3n) đợc xác định phơng trình khác đơi chút)].

Đờng cong elliptic E tạo thành nhóm Aben cách xác định phép tốn thích hợp điểm Phép tốn phép cộng đợc xác định nh sau ( phép toán số học đợc thực Zp)

Gi¶ sư

P = (x1,y1) vµ Q = (x2,y2)

là điểm E Nếu x2=x1 y2=-y1 P+Q = O; ngợc lại P+Q = (x3,y3) đó:

x3 = 2-x1-x2 y3 = (x1-x3)-y1

Cuối ta xác định

P+O = O+P = P

đối với P  E Với định nghĩa phép cộng nh vậy, rằng, E nhóm Aben với phần tử đơn vị O ( phần lớn phép kiểm tra đơn giản song việc chứng minh tính kết hợp lại khó)

Cần để ý phần tử ngợc (nghịch đảo) dễ tính tốn Phần tử nghịch đảo (x,y) (x,-y) với (x,y)  E ( ta kí hiệu phần tử -(x,y) phép nhóm phép cộng)

XÐt vÝ dô sau VÝ dô 5.7

Giả sử E đờng cong elliptic y2 = x3+x+6 Z11 Trớc tiên ta xác định điểm E Để làm điều đó, xét giá trị x  Z11, tính x3+x+6 mod 11 thử giải phơng trình (5.1) y Với giá trị x cho trớc, ta kiểm tra xem liệu z = x3+x+6 mod 11 có phải thặng d bình phơng hay khơng cách áp dụng tiêu chuẩn Euler Ta có cơng thức tờng minh để tính bậc hai thặng d bình phơng theo modulo p với số nguyên tố p  (mod 4) áp dụng công thức này, ta có bậc hai thặng d bình phơng z là:

z(11+1)/4 mod 11 = z3 mod 11 Kết phép tính đợc nêu bảng 5.2

Nh vậy, E có tất 13 điểm Với nhóm cấp nguyên tố nhóm cyclic nên dẫn đến E đẳng cấu với Z13 điểm ( điểm vô cực) phần tử sinh nhóm E Giả sử ta lấy phần tử sinh (2,7) =  Khi ta tính "luỹ thừa"  ( bi ca

phép nhóm phép cộng) §Ĩ tÝnh 2 = (2,7) + (2,7), tríc hÕt ta tính:

= (322+1)(27)-1 mod 11 Định nghĩa 5.3

Cho p >3 số nguyên tố Đ ờng cong elliptic y2 = x3+ax+b Zp

tập cặp (x,y)ZpZp thoả mãn đồng d thức

y2 x3+ax+b (mod p) (5.1)

trong a, bZp số cho 4a3+27b2 ( mod p) với

một điểm đặc biệt O đ ợc gọi điểm vơ cực.

vµ (y2-y1)/(x2-x1) nÕu P  Q

 =

(20)

= 23-1 mod 11 = 24 mod 11 =

Sau ta có: x3 = 82-2-2 mod 11 =

vµ y3 = (8(2-5)-7) mod 11

= Bëi vËy 2 = (5,2)

Bảng 5.2 Các điểm đờng cong elliptic y2 = x3+x+6 Z 11

x x3+x+6 mod 11 Cã QR(11)? y 10 8 Kh«ng Kh«ng Cã Cã Kh«ng Cã Kh«ng Cã Cã Kh«ng Cã 4,7 5,6 2,9 2,9 3,8 2,9

Béi tiÕp theo lµ 3 = 2+ = (5,2) + (2,7) Ta lại bắt đầu viÑc tÝnh 

 = (7-2)(2-5)-1 mod 11 = 58-1 mod 11 = 57 mod 11 =

Khi ta có x3 = 22-5-2 mod 11 =

vµ y3 = 2(5-8) - mod 11

= Bëi vËy 3 = (8,3)

Tiếp tục theo cách tơng tự, tính đợc bội cịn lại nh sau:

(21)

Một đờng cong elliptic xác định Zp (p số nguyên tố >3) có khoảng p điểm Chính xác hơn, theo định lý tiếng Hasse, số điểm E ( kí hiệu E) thảo mãn bất đẳng thức sau:

p+12√p ≤ E ≤ p+1+2√p Việc tính tốn xác giá trị E có khó nhng có thuật tốn hữu hiệu Schoof đa giúp tính toán dễ dàn hơn.( Nghĩa hữu hiệu đợc hiểu thời gian chạy thuật toán thời gian đa thức theo log p Thuật tốn Schoof có thời gian chạy khoảng O((log p)8) phép tính bít thực số nguyên tố p có vài trăm chữ số)

Bây giả sử tính đợc E Vấn đề phải tìm nhóm cyclic E cho tốn DL khó Bởi ta phải biết vài điều cấu trúc nhóm E Định lý sau cung cấp thơng tin đáng kể cấu trúc nhóm E

Định lý 5.1

Cho E l mt ng cong elliptic Zp, p số nguyên tố > Khi đó,

tồn số nguyên n1 n2 cho E đẳng cấu với Zn1Zn2 Ngồi ra

n2 | n1 vµ n2 | (p-1).

Bởi tính đợc số n1 n2 ta biết E có nhóm cyclic đẳng cấu với Zn1 dùng E để thiết lập hẹe mật Elgamal

Chú ý n2 = E lµ mét nhãm cyclic Cịng vËy, nÕu E lµ mét số nguyên tố tích số nguyên tố khác E nhóm cyclic có sè nhãm cyclic

Các thuật toán Shanks Pohlig - Hellman áp dụng cho tốn rời rạc đờng cong Elliptic song tới cha có thuật tốn thích hợp cho phơng pháp tính số đờng cong Elliptic.Tuy nhiên, có phơng pháp khai thác đẳng cấu cách tờng minh đờng cong Elliptic trờng hữu hạn Phơng pháp dẫn đến thuật toán hữu hiệu số lớp đờng cong Elliptic Kỹ thuật Menezes, Okamoto Vanstone đa áp dụng cho số trờng hợp riêng lớp đặc biệt đờng cong Elliptic (đợc gọi đờng cong siêu biến, chúng đợc kiến nghị sử dụng hệ thống mật mã) Tuy nhiên, tránh đờng cong siêu biến lại xuất đờng cong Elliptic có nhóm cyclic cỡ 2160 , đờng cong cho phép

thiÕt lËp an toµn mét hƯ mËt miễn bậc nhóm phải bội Ýt nhÊt mét thõa sè nguyªn tè lín ( nh»m bảo vệ hệ mật khỏi phơng pháp công Pohlig - Hellman)

Xét ví dụ phép mã Elgamal sử dụng đờng cong elliptic nêu ví dụ 5.7

VÝ dơ 5.8

Gi¶ sư  = (2,7) vµ sè mị mËt cđa Bob lµ a = Bëi vËy:

(22)

eK(x,k) = (k(2,7),x+k(7,2))

trong xE  k  12 phép giải mã thực nh sau: dK(y1,y2) = y2-7y1

Gi¶ sư Alice mn m· b¶n tin x = (10,9) ( điểm E) Nếu cô chọn giá trị ngẫu nhiên k=3 cô tính

y1 = 3(2,7) = (8,3)

vµ y2 = (10,9) + 3(7,2)

= (10,9) + (3,5) = (10,2)

Bởi vậy, y = ((8,3),(10,2)) Bây Bob nhận đợc mã y giải mã nh sau:

x = (10,2) - 7(8,3) = (10,2) - (3,5) = (10,2) + (3,6) = (10,9)

Đây rõ

Trên thực tế có số khó khăn áp dụng hệ mật Elgamal đ-ờng cong Elliptic Hệ thống đợc áp dụng Zp ( GF(pn)

với n > 1) có hệ số mở rộng tin Việc áp dụng đ ờng cong Elliptic có thừa số mở rộng khoảng lần Điều có xấp xỉ p rõ, nhng mã lại gổm bốn phần tử trờng Một trở ngại không gian rõ chứa điểm đờng cong E khơng có phơng pháp xác định t-ờng minh điểm E

Menezes Vanstone tìm phơng án hiệu theo ph-ơng án đờng cong Elliptic dùng để "che dấu", rõ mã hợp lệ cặp đợc tùy ý phần tử khác không trờng( tức chúng khơng địi hỏi phải điểm E) Điều tạo hệ số mở rộng tin giống nh hệ mật Elgamal ban đầu Hệ mật Menezes -Vanstone đợc mơ tả hình 5.10

Nếu trở lại đờng cong y2 = x3 + x + Z

11 ta sÏ thÊy r»ng hƯ mËt

Menezes - Vanstone có 1010 = 100 rõ, hệ mật ban đầu

có 13 rõ Ta minh hoạ phép mã giải mã hệ mật cách sử dụng đờng cong

Hình 3.6 Hệ mật đờng cong Elliptic Menezes - Vanstone

Giả sử E đờng cong Elliptic Zp (p số nguyên tố > 3) cho E chứa nhóm cyclic H, tốn DL tốn khó

Giả sử P = Zp* Zp* , C= E  Zp* Zp* ,ta định nghĩa:

K = { (E,,a,) :  = a  }

trong E Các giá trị   đợc cơng khai, cịn a đợc giữ kín Đối với K = (E,,a,), với số ngẫu nhiên bí mật k  Z| H |

và x = (x1,x2)  Zp* Zp*, ta xác định: eK (x,k) = (y0,y1,y2)

y0 = k 

(c1,c2) = k 

y1 = c1x1 mod p

vµ y2 = c2y2 mod p

Với mã y = (y0,y1,y2), ta định nghĩa

(23)

VÝ dô 5.9

Cũng nh ví dụ trớc, giả sử  = (2,7) số mũ mật Bob Khi

 = 7 = (7,2) Gi¶ sư Alice muốn mà hoá rõ sau:

x = (x1,x2) = (9,1)

(Cần ý x điểm E) cô chọn giá trị ngẫu nhiên k = Đầu tiên cô tính:

y0 = k = 6(2,7) = (7,9)

vµ k = 6(7,2) = (8,3)

Nh vËy, c1 = cßn c2 = TiÕp theo Alice tÝnh:

y1 = c1x1 mod p = 89 mod 11 =

vµ y2 = c2x2 mod p = 31 mod 11 =

Bản mà mà cô giửi cho Bob lµ:

y = (y0,y1,y2) = ((7,9), 6, 3) Khi Bob nhận đợc mã này, Trớc tiên tính:

(c1,c2) = (a y0) = 7(7,9) = (8,3) sau tính:

x = (y1c1-1 mod p, y2c2-1 mod p) = ((68-1 mod 11, 33-1 mod 11) = (67 mod 11, 34 mod 11) = (9,1)

Hình 5.11 Bài toán tổng tập con

Đây rõ

5.3 HƯ mật xêp ba lô merkle - Hellman

c trng toán: I = (s1, s2, ,sn, T) s1, , sn T

số nguyên dơng Các si đợc gọi cỡ, T đợc gọi tổng đích

Vấn đề: Liệu có véc tơ nhị phân x = (x1, , xn) cho:

i=0

n

Ngày đăng: 24/05/2021, 10:31

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w