Hệ mật mó đƣờng cong Elliptic

Một phần của tài liệu nghiên cứu và phát triển phương pháp rút gọn chữ kí số (Trang 49)

2.4.1. Vấn đề về đường cong Elliptic

a. Lý thuyết đƣờng cong Elliptic

Ta bắt đầu bằng việc định nghĩa khỏi niệm đƣờng cong elliptic

Định nghĩa 2.3

Cho p > 3 là số nguyờn tố. Đường con elliptic y2 = x3+ ax + b trờn Zp là một tập cỏc cặp (x, y) Zpx Zp thỏa món đồng dư thức

Trong đú a, b Zp là cỏc hằng số sao cho 4a3+27b2 ≠ 0 (mod p), cựng với một điểm đặc biệt O được gọi là điểm vụ cực.

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

Phƣơng trỡnhh trờn cú thể dựng để xỏc định một đƣờng cong elliptic trờn một trƣờng bất kỡ GF(pn) với p là một số nguyờn tố lớn hơn 3. Đƣờng cong elliptic trờn GF(2n) hoặc GF(3n) đƣợc xỏc định bằng một phƣơng trỡnh khỏc đụi chỳt.

Đƣờng cong elliptic E cú thể tạo thành nhúm Aben bằng cỏch xỏc định một phộp toỏn thớch hợp trờn cỏc điểm của nú. Phộp toỏn này là phộp cộng và đƣợc xỏc định nhƣ sau (ở đõy mọi phộp toỏn số học đƣợc thực hiện trờn Zp). Giả sử P = (x1, y1) và Q =(x2, y2)

Là cỏc điểm trờn E. Nếu x2 = x1 và y2 = -y1 thỡ P+Q = O; Ngƣợc lại P+Q = (x3, y3) trong đú: x3 = λ2 – x1 – x2 y3 = λ(x1- x3)-y1 Và Cuối cựng ta xỏc định P + 0 = 0 + P = P

Đối với mọi P E. Với định nghĩa phộp cộng nhƣ vậy, cú thể chỉ ra rằng, E là một nhúm Aben với phần tử đơn vị O (phần lớn cỏc phộp kiểm tra đều khỏ đơn giản song việc chứng minh tớnh kết hợp là rất khú).

Cần để ý là cỏc phần tử ngƣợc (nghịch đảo) rất dễ tớnh toỏn. Phần tử nghịch đảo của (x, y) là (x, -y) với mọi (x, y) E (ta kớ hiệu phần tử này là (x, y) do phộp nhúm là phộp cộng)

Một đƣờng cong elliptic xỏc định trờn Zp (p là số nguyờn tố > 3) sẽ cú khoảng p điểm. Chớnh xỏc hơn, theo một định lớ nổi tiếng của Hasse, số cỏc điểm trờn E (kớ hiệu là #E) thỏa món bất đẳng thức sau:

Việc tớnh toỏn chớnh xỏc giỏ trị của #E cú khú hơn nhƣng đó cú một thuật toỏn hữu hiệu do Shoof đƣa ra giỳp tớnh toỏn dễ dàng hơn (nghĩa hữu hiệu ở đõy đƣợc hiểu là thời gian chạy của thuật toỏn là thời gian đa thức theo logp. Thuật toỏn Shoof

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

cú thời gian chạy khoảng O((logp)8) phộp tớnh trờn bit và cú thể thực hiện đối với cỏc số nguyờn tố p cú vài trăm chữ số).

Bõy giờ giả sử cú thể tớnh đƣợc #E. Vấn đề tiếp theo là phải tỡm một nhúm con cyclic trong E cho bài toỏn logarit rời rạc trong nú là khú. Bởi vậy ta phải biết một vài điều về cấu trỳc của nhúm E. Định lớ sau đõy cung cấp một thụng tin đỏng kể cề cấu trỳc nhúm của E.

Định lớ 2.2

Cho E là mộ đường cong elliptic trờn Zp, p là số nguyờn tố > 3. Khi đú, tồn tại cỏc số nguyờn n1 và n2 sao cho E là đẳng cấu với Zn1x Zn2. Ngoài ra .

Bởi vậy nếu cú thể tớnh đƣợc cỏc số n1 và n2 thỡ ta sẽ biết đƣợc E cú một nhúm con cyclic đẳng cấu với Zn1 và cú thể dựng E để thiết lập hệ mật Elgamal

Chỳ ý nếu n2 = 1 thỡ E là một nhúm cyclic. Cũng vậy, nếu #E là một số nguyờn tố hoặc tớch của cỏc số nguyờn tố khỏc nhau thỡ E là nhúm cyclic cú chỉ số nhúm cyclic

b. Bài toỏn logarit rời rạc trờn đƣờng cong elliptic

Bài toỏn logarit rời rạc trờn đƣờng cong elliptic (ECDLP): Cho E là một đường cong elliptic và P E là một điểm cú bậc n. Cho điểm Q E, tỡm số nguyờn dương m (2 ≤ m ≤ n-2) thỏa món cụng thức Q = m x P.

Hiện chƣa cú thuật toỏn nào đƣợc xem là hiệu quả để giải quyết bài toỏn này. Để giải bài toỏn logarit rời rạc trờn đƣờng cong elliptic, cần phải kiểm tra tất cả cỏc giỏ trị m [2..n-2]. Nếu điểm P đƣợc chọn lựa cẩn thận với n rất lớn thỡ việc giải bài toỏn ECDLP xem nhƣ khụng khả thi. Việc giải bài toỏn ECDLP khú khăn hơn việc giải quyết bài toỏn logarit rời rạc trờn trƣờng số nguyờn thụng thƣờng.

2.4.2. Ứng dụng lý thuyết đường cong elliptic vào chữ kớ số

Cũng nhƣ cỏc sơ đồ chữ kớ số khỏc, sơ đồ chữ kớ số sử dụng đƣờng cong elliptic bao gồm 2 thao tỏc: kớ và xỏc minh chữ kớ. Trƣớc khi thực hiện việc kớ với Elliptic Curve, ngƣời gửi và ngƣời nhận cần phải sở hữu một cặp khúa cụng cộng – khúa riờng. Cỏc giỏ trị sau đƣợc quy ƣớc chung giữa ngƣời gửi và ngƣời nhận, gọi là cỏc tham số chung của hệ thống mó húa:

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

- Điểm P, P E. Điểm P cú bậc n (n x P = O). a. Quỏ trỡnh tạo khúa đƣợc thực hiện nhƣ sau

- Chọn một số nguyờn bất kỡ d, d [2, n-2]. Đõy chớnh là khúa cụng khai. - Tớnh giỏ trị của điểm Q = d x P E. Đõy chớnh là khúa bớ mật.

b. Thao tỏc kớ

Ngƣời kớ sẽ thụng điệp bằng khúa bớ mật của mỡnh và tham số đƣờng cong đó đƣợc quy ƣớc thống nhất chung giữa ngƣời gửi (B) và ngƣời nhận (A). Sẽ tiến hành kớ nhƣ sau

- B sẽ sử dụng khúa bớ mật của B (QB) - B chọn một số nguyờn bất kỡ k [2, n-2]. - B tớnh giỏ trị của điểm (x1, y1) = k x P.

- B tớnh giỏ trị của điểm (x2, y2) = k x QP, x2 là giỏ trị bớ mật sẽ đƣợc sử dụng để tạo khúa mó húa thụng điệp.

- B tạo mặt nạ (mask) Y từ giỏ trị bớ mật x2. Giỏ trị Yđƣợc tạo thành từ một hàm mask generation. Tựy theo việc cài đặt hàm mask generation mà Y sẽ cú giỏ trị khỏc nhau. Y chớnh là khúa quy ƣớc để mó húa thụng điệp.

- B tớnh giỏ trị C = ф (Y, M). C chớnh là thụng điệp đó đƣợc mó húa. Thụng thƣờng, ф (Y, M) = Y M.

- B gửi cho A thụng điệp đó mó húa C cựng với giỏ trị (x1, y1).

Giỏ trị k và (x1, y1) đƣợc tạo ra khụng phải khúa riờng và khúa cụng cộng để giao dịch của B. Đõy là cặp khúa cụng cộng - khúa riờng đƣợc phỏt sinh nhất thời (one - time key pair) nhằm mó húa thụng điệp. Mỗi một thụng điệp mó húa nờn sử dụng một cặp khúa cụng cộng - khúa riờng đƣợc phỏt sinh ngẫu nhiờn.

Để xỏc minh chữ kớ ta phải kết hợp ECES với thuật toỏn Rijndael và cỏc thuật toỏn mở rộng. Trong ECES, thụng thƣờng hàm mó húa ф thực hiện thao tỏc XOR khúa với thụng điệp. Trờn thực tế, để tăng độ an toàn của thuật toỏn mó húa, cỏc hệ thống mó húa bằng đƣờng cong elliptic thay thế thao tỏc XOR thụng điệp với khúa bằng cỏch kết hợp với một thuật toỏn mó húa đối xứng hiệu quả hơn.

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

Bằng việc sử dụng cỏc tham số quy ƣớc kết hợp với khúa cụng khai của ngƣời gửi (B) và giỏ trị (x1, y1), A thực hiện giải mó thụng điệp đƣợc mó húa bằng ECES (C) theo trỡnh tự sau:

- A nhận giỏ trị (x1, y1).

- A tớnh giỏ trị của điểm (x2, y2) = d x (x1, y1). x2 là giỏ trị bớ mật sẽ đƣợc sử dụng để tạo khúa giải mó thụng điệp.

- Sử dụng cựng một hàm tạo mặ nạ (mask function) nhƣ đó sử dụng ở giai đoạn mó húa, A tạo mặt nạ Y từ giỏ trị bớ mật x2. Y chớnh là khúa bớ mật để giải mó. - A giải mó thụng điệp C để lấy thụng điệp M ban đầu bằng cỏch tớnh giỏ trị M

= ф – 1(C, Y). Thụng thƣờng, ф – 1(C, Y) = C Y.

2.5. Túm tắt chƣơng

Chƣơng hai chỳng ta đó tỡm hiểu sõu hơn về chữ kớ số và dựa trờn độ khú của một số thuật toỏn để hỡnh thành nờn độ an toàn của sơ đồ chữ kớ số. Nhƣ độ khú của việc phõn tớch một số nguyờn ra thừa số nguyờn tố, hay tớnh một chiều của bài toỏn logarit rời rạc và bài toỏn đƣờng cong elliptic. Để đảm bảo độ an toàn của cỏc sơ đồ chữ kớ số, thỡ ở mỗi sơ đồ chữ kớ số đều đƣa ra độ dài tối thiểu của chữ kớ số tƣơng ứng. Nhƣ với sơ đồ chữ kớ số RSA đũi hỏi độ dài tối thiểu của chữ kớ số là 1024 bớt. Cũn với sơ đồ chữ kớ số Elgamal và đƣờng cong elliptic đũi hỏi độ dài tối thiểu của chữ kớ số là 512 bớt. Chƣơng sau chỳng ta sẽ tỡm hiểu phƣơng phỏp giảm độ dài chữ kớ số xuống 320 bớt dựa vào độ khú của bài toỏn phõn tớch một số nguyờn ra thừa số nguyờn tố. Mà vẫn đảm bảo độ an toàn của sơ đồ chữ kớ số mới tƣơng đƣơng với cỏc sơ đồ chữ kớ đó cú.

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

Chƣơng 3

PHÁT TRIỂN PHƢƠNG PHÁP RÚT GỌN CHỮ KÍ SỐ 3.1. Đặt vấn đề

Nhƣ chỳng ta đó biết từ cỏc chƣơng trƣớc vấn đề chữ kớ số ngày càng cú vai trũ quan trọng trong cuộc sống hàng ngày. Việc sử dụng một chữ kớ số ngắn là điều mong muốn của rất nhiều ngƣời sử dụng chữ kớ số nhƣ những ngƣời cần nhập chữ kớ bằng tay, chẳng hạn nhƣ sử dụng mỏy PDA mà khụng trang bị bàn phớm và với RFID cú khả năng tớnh toỏn kộm. Chữ kớ số ngắn là rất cần thiết để đảm bảo tớnh xỏc thực của tin nhắn trong cỏc khụng gian hạn chế nhƣ lƣu chữ kớ số ở cỏc thẻ điện tử. Ngoài ra việc rỳt gọn chữ kớ số cũn quan trọng với mụi trƣờng băng thụng hạn chế nhƣ Wireless Sensor Network (WSN). Nhỡn chung, với việc rỳt gọn chữ kớ đƣợc sử dụng để làm giảm sự giao tiếp phức tạp của cỏc phƣơng tiện liờn lạc. Đó cú rất nhiều nhà khoa học nghiờn cứu về việc rỳt gọn chữ kớ số.Nhƣ năm 2001 Boneh, Lynn và Shacham đó đề xuất ý tƣởng về chƣơng trỡnh rỳt gọn chữ kớ số bằng cỏch sử dụng cỏp song tuyến. Năm 2006 thỡ Bo Yang, Yusheng Zhong, Pengcheng Li với đề xuất giảm độ dài chữ kớ số bằng phƣơng phỏp khụng sử dụng hàm ngẫu nhiờn (random oracle). Năm 2007 Zuhua Shao đề xuất sơ đồ chữ kớ số dựa trờn cơ sở bài toỏn logarit rời rạc và năm 2009 Nikolay A. Moldovyan cũng đó đƣa ra sơ đồ chữ kớ số mới dựa trờn bài toỏn phõn tớch một số ra thừa số nguyờn tố. Chƣơng này tụi đề xuất và tổng quỏt húa một phƣơng phỏp rỳt gọn chữ kớ số dựa trờn tớnh khú của bài toỏn phõn tớch một số nguyờn lớn ra thừa số nguyờn tố.

3.2. Phƣơng phỏp hỡnh thành chữ kớ số

3.2.1. Phương phỏp rỳt gọn chữ kớ số

Nhƣ ta đó biết từ chƣơng trƣớc phƣơng phỏp kớ bằng thuật toỏn RSA là dựa trờn tớnh khú của bài toỏn phõn tớch một số nguyờn lớn ra cỏc thừa số nguyờn tố. Bằng việc lựa chọn ra hai số nguyờn tố lớn pq. Ta cú cặp khúa cụng khai là (e, n)

và khúa bớ mật là d. Trong đú ta cú: n = p.q và ф(n) = (p-1)(q-1) ed (mod ф (n)) = 1

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

Độ an toàn của thuật toỏn phụ thuộc vào việc tớm ra giỏ trị d dễ hay khú thụng qua hàm ф(n). Kẻ giả mạo chữ kớ muốn tỡm ra hàm ф(n) trƣớc hết phải giải quyết đƣợc bài toỏn phõn tớch số nguyờn lớn ra cỏc thừa số nguyờn tố. Do đú việc phõn tớch ra thừa số nguyờn tố của n phải đảm bảo bớ mật (trong khoảng thời gian nhất định khụng thể phõn tớch đƣợc). Gọi M là giỏ trị độ dài thụng điệp cần kớ và H(M) là hàm băm từ thụng điệp M.

H = H(M)

Dựa vào thuật toỏn RSA ta cú chữ kớ số

Phương trỡnh tạo chữ kớ số

S = Hd (mod n)

Phương trỡnh kiểm tra chữ kớ số

H = Se (mod n)

Trong RSA thỡ độ dài chữ kớ xấp xỉ bằng . Độ dài an toàn ≥ 1024 bit (Đõy là giỏ trị tối thiểu của một thụng điệp).

Để giảm độ dài chữ kớ số dựa trờn tớnh khú của việc phõn tớch một số nguyờn lớn ra thừa số nguyờn tố ta dựa vào việc phỏt triển hai phần tử (k,g). Thuật toỏn sẽ sinh ra cặp khúa cụng khai là (n, α) trong đú:

α Gn là nhúm cyclic

là bậc của số nguyờn α theo modulo n Sao cho αδ (mod n)

Giả sử cú δ là ƣớc số của p-1 nhƣng δ khụng là ƣớc của p-1. Nhƣ vậy việc tạo ra α dựa vào phƣơng trỡnh sau

h là một số ngẫu nhiờn nào đú sao cho gcd (h,n) = 1

Với sao cho thỡ luụn đỳng (mod n) = 1

Vỡ theo định lớ euler ta cú (mod n) = 1

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

Ta cú

Dựa vào thuật toỏn euclide mở rộng ta sẽ phõn tớch đƣợc n, nhƣ thế tỡm đƣợc q và việc tỡm ra d thụng qua hàm ф(n) khụng phải là bài toỏn khú nữa. Sau đõy ta sẽ xem xột 2 cỏch sau để tạo ra δ:

Cỏch 1

Chỳng ta sẽ tớnh α theo cỏch khỏc, giả sử δ là ƣớc số của q-1 và p-1 nhƣng δ2 khụng chia hết cho q-1 hoặc p-1. Ta cú phƣơng trỡnh sau

mod n

Với L(n) = lcm[q-1,p-1] đƣợc gọi là hàm euler mở rộng. α= huv

mod n ≠ 1 trong đú

Nếu h đồng thời là phần tử nguyờn thủy modulo p và modulo q thỡ α mod p ≠ 1 và α mod q ≠ 1 và nhƣ thế (α-1,n) = 1.

Cỏch 2

Cỏch thứ hai để tớnh α cũng thụng qua hợp tử δ, δ đƣợc định nghĩa lại nhƣ sau: δ = δ‟ δ‟‟

khi đú và δ‟ khụng chia hết cho q-1 và δ‟‟ khụng chia hết cho p-1 Nhƣ vậy để tạo ra α ta cú phƣơng trỡnh α = hL(n)/δ (mod n) ≠ 1 α = huv (mod n) ≠ 1 với và Trong trƣờng hợp 1 ta cú n = q*p p = u δ + 1 và q = v δ + 1 =>n = (u δ + 1)( v δ + 1)

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

=> n = δ2uv + δ(u+v)+1 => n-1 = δ(δuv+u+v)

Nếu n khụng đủ lớn thỡ việc tỡm ra δ cũng khụng quỏ khú thụng qua việc phõn tớch n-1 ra thừa số nguyờn tố. Nhƣ vậy ta sẽ sử dụng cỏch 2 để tạo ra khúa bớ mật. Với điều kiện (α-1, n) = 1, nếu một trong hai giỏ trị δ‟ và δ‟‟ nhỏ, vớ dụ δ‟ thỡ theo cỏch 2 để tớnh δ ta cú phƣơng trỡnh sau :

α = hL(n)/δ (mod n) ≠ 1 

Nhƣ thế ra cú vậy nếu kẻ giả mạo chữ kớ tỡm đƣợc δ‟ và thử từng giỏ trị khỏc nhau của δ‟ cựng với ràng buộc ( thỡ kẻ tấn cụng cú thể phõn tớch đƣợc số n. Từ cỏc điều trờn ta thấy yờu cầu về cỏc giỏ trị của δ‟ và δ‟‟ là phải đủ lớn. Vỡ vậy chỳng ta giả sử giỏ trị δ‟ và δ‟‟ cú độ dài tối thiểu là 80 bớt. Vậy giỏ trị δ sẽ cú độ dài tối thiểu là ≥ 160 bớt.

3.2.2. Sơ đồ thuật toỏn

Để rỳt gọn độ dài chữ kớ số xuống cũn 320 bớt ta dựa vào phƣơng trỡnh xỏc minh chữ kớ dƣới đõy:

(mod n)) (3.1) Với v là một số nguyờn tố cú độ dài 80 bớt k, g là cặp khúa

M là thụng điệp cần kớ

H là giỏ trị hàm băm đối với thụng điệp cần kớ Nhƣ vậy chữ kớ đƣợc sinh ra theo cỏc bƣớc sau

Bước 1: Chọn một số ngẫu nhiờn U và tớnh H (mod n))

Bước 2: Giải đồng thời 2 phƣơng trỡnh đồng dƣ sau

Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/

k = H + g (3.2) Nhƣ vậy độ dài cỏc thành phần chữ kớ số sẽ là

Độ dài chữ kớ số mới lỳc này sẽ là: , trong trƣờng hợp hàm băm cú độ an toàn là 160 bit. Chỳ ý nếu khụng sử dụng v thỡ sơ đồ chữ kớ số mới sẽ khụng an toàn, trong trƣờng hợp này khúa bớ mật δ khụng sử dụng để tớnh toỏn độ dài chữ kớ nếu chỳng ta cú U > H.

Ngƣời ta cú thể đơn giản húa phƣơng trỡnh xỏc minh bằng cỏch bỏ v nhƣ phƣơng trỡnh sau:

(3.3)

Trong trƣờng hợp này chữ kớ số mới đƣợc xỏc minh dựa trờn cỏc cụng thức sau:

(3.4)

Chỳ ý: Khi tạo ra chữ kớ số mới thỡ việc tạo ra cặp số δ, k tƣơng ứng sao cho gcd (δ, k) > 1 cú xỏc suất xảy ra khụng lớn (Nếu trƣờng hợp nhƣ vậy xảy ra, ngƣời kớ phải lặp lại cỏc bƣớc tạo ra chữ kớ bằng cỏch sử dụng với giỏ trị U khỏc). Nếu

Một phần của tài liệu nghiên cứu và phát triển phương pháp rút gọn chữ kí số (Trang 49)

Tải bản đầy đủ (PDF)

(79 trang)