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 p và q. 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 thỡ giỏ trị g sẽ đƣợc tớnh ra lỳc đú việc sử dụng δ sẽ khụng cũn ý nghĩa nữa. Tuy nhiờn với giỏ trị (ở đõy ta sử dụng hàm băm SHA - 1) đủ lớn để xỏc suất xảy ra cỏc trƣờng hợp trờn là khỏ nhỏ cú thể tin tƣởng đƣợc.
3.2.3. Thảo luận về độ an toàn của sơ đồ chữ kớ số mới
Kẻ giả mạo chữ kớ tấn cụng vào sơ đồ chữ kớ trờn cú thể theo hai cỏch sau. 1. Với cặp khúa cụng khai (n, ) kẻ giả mạo chữ kớ sẽ dựa vào đú để phõn tớch số nguyờn n ra thừa số nguyờn tố. Điều này thỡ khú cú thể xảy ra.
2. Giải phƣơng trỡnh logarit rời rạc tỡm x = logαy (mod n) điều này cũng khú cú thể xảy ra
Thực vậy nếu giải quyết đƣợc hai vấn đề khú khăn ở trờn cũng tƣơng ứng tỡm ra đƣợc khúa bớ mật δ. Với trƣờng hợp một điều đú là hiển nhiờn vỡ việc phõn tớch ra thừa số nguyờn tố là khụng khả thi và đó đƣợc chứng minh. Ta xem xột cỏc cuộc tấn cụng vào trƣờng hợp hai. Chọn hai số cú độ lớn 160 bớt k‟ và g‟ đồng thời tớnh giỏ trị
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
y = αkg
(mod n). Giải phƣơng trỡnh logarit rời rạc để tỡm x = logαy (mod n) và phõn tớch giỏ trị (kg – x) để cú thể tỡm ra khúa bớ mật δ. Với giỏ trị δ = δ‟δ‟‟, δ đƣợc xõy dựng dựa trờn độ khú của giải bài toỏn logarit rời rạc x = logαy (mod n) cú thể tớnh bằng phộp toỏn ƣớc lƣợng lũy thừa , khi đú z = max {δ‟, δ‟‟}. Tuy nhiờn với giỏ trị wn(α) chƣa biết thỡ độ khú của vấn đề thứ hai gần bằng với việc tớnh toỏn . Nhƣ vậy chỳng ta sẽ chứng minh độ khú của vấn đề thỳe hai dựa trờn độ khú của vấn đề thứ nhất. Thật vậy, vấn đề thứ nhất đƣợc giải quyết bằng việc quy vấn đề thứ hai từ việc tỡm logarit của modulo p và modulo q. Nhƣ vậy độ khú của vấn đề thứ hai sẽ giảm đi sau khi giải quyết đƣợc vấn đề phõn tớch thừa số của modulo n.
Trong đề xuất của thuật toỏn này hàm băm đƣợc tớnh toỏn sau khi ta nối thờm giỏ trị αu mod n vào tin nhắn cần kớ. Để chứng minh độ bảo mật của thuật toỏn cú thể tin tƣởng đƣợc, chỳng ta cú thể coi hàm băm ở đõy cú thể phỏ mó đƣợc. Nếu kẻ tấn cụng cú thể giả mạo đƣợc chữ kớ, say khi modulo n phõn tớch đƣợc ra thừa số trong một khoảng thời gian cho phộp nào đú. Nhƣ vậy cỏc thụng số đƣợc tớnh toỏn lại sẽ nhƣ sau. Giả sử đối thủ cú thể giả mạo chữ kớ trờn thụng điệp M. Khi đú anh ta tớnh giỏ trị hàm băm và cú đƣợc một hàm băm giả khỏc F‟H. Ở đõy ta coi hàm băm cú thể giải mó đƣợc. Vỡ vậy cú thể tớnh
giống nhƣ và tạo ra hai chƣ kớ hợp lệ tƣơng ứng là (k‟, g‟) và (k, g) từ thụng điệp M. Cả hai chữ kớ này đều tớnh trờn giỏ trị cựng một giỏ trị U nhƣng cú giỏ trị hàm băm H‟ và H khỏc nhau.
Do đú, trong trƣờng hợp thứ nhất của sơ đồ rỳt gọn chữ kớ số chỳng ta cú k‟ ≠ k và g‟ ≠ g
Và k‟ + g‟(v-1) U (mod δ) k + g(v-1) U (mod δ)
k‟ + g‟(v – 1) = k + g(v – 1) (mod δ) (k‟ – k) + (g‟ – g)(v – 1) = 0 (mod δ)
Nhƣ vậy δ là một ƣớc số của (k‟ – k) + (g‟ – g)(v -1). Với độ dài δ khụng đủ lớn nờn việc tỡm ra δ sau khi phõn tớch (k‟ – k) + (g‟ – g)(v -1) ra cỏc thừa số nguyờn tố là khụng khú.
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
Trong trƣờng hợp hai của phƣơng phỏp rỳt gọn chữ kớ số mới chỳng ta cũng cú k‟ ≠ k và g‟ ≠ g
Nhƣng k‟g‟ U (mod δ) và kg U (mod δ) => k‟g‟ kg (mod δ)
=> k‟g‟ – kg 0 (mod δ)
Nhƣ vậy cũng nhƣ trƣờng hợp trờn δ cú thể tỡm ra đƣợc sau khi phõn tớch thừa số k‟g‟ - kg ra thừa số nguyờn tố. Việc tỡm ra đƣợc δ thỡ dễ dàng phõn tớch đƣợc n để tỡm ra p và q. Thật vậy, do kớch thƣớc δ nhỏ nờn cú thể dễ dàng phõn tớch δ: δ = δ‟ δ‟‟ nhƣ thế cú thể tỡm δ‟ và thụng qua đú ta tớnh đƣợc p bằng cỏch tỡm gcd (α δ‟ mod n-1,n) = p
Nhƣ thế mỗi cuộc tấn cụng vào sơ đồ chữ kớ nờu trờn đều dựa vào sự phõn tớch ra thừa số nguyờn tố của n, cũng cú nghĩa là độ an toàn của sơ đồ chữ kớ dựa trờn dựa vào độ khú của việc phõn tớch ra thừa số nguyờn tố của n.
3.3. Sơ đồ chữ kớ dựa vào số nguyờn tố δ
3.3.1. Hàm được sử dụng
Ở đõy chỳng ta xem xột với giỏ trị a và b xem chỳng cú đồng dƣ với nhau qua modulo q hay khụng, với giỏ trị q là một số bớ mật. Để giảm sự tớnh toỏn và trỏch tớnh toỏn trực tiếp với q chỳng ta xem xột một cỏch tiếp cận mới. Giả sử r = 2n + 1 cũng là một số nguyờn tố. Trong đú n đƣợc tạo bởi hai số nguyờn tố p và q: n = pq và β là thành phần của nhúm Gr và bậc của wr(β) = q
Nhƣ vậy chỳng ta cú thể kiểm tra a, b cú đồng dƣ với nhau hay khụng mà khụng cần biết đến giỏ trị bớ mật q mà chỉ cần thụng qua r thụi. Vỡ vậy ta cú thể sử dụng phƣơng trỡnh sau vào sơ đồ chữ kớ số:
Trong đú r = 2n + 1
Và
Trong đú δ là một số nguyờn tố là ƣớc của q-1 và khụng phải là ƣớc của p-1.
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
Chỳng ta sẽ sử dụng hàm số trờn để sửa đổi phƣơng trỡnh xỏc minh chữ kớ số mới nhƣ sau:
(3.5) Và phƣơng trỡnh
(3.6)
Ở đõy với cỏc khúa cụng khai là (r,β,α) và cỏc khúa bớ mật là (q,δ). Chỳng ta sẽ giả sử độ dài nhỏ nhất của cỏc khúa bớ mật tƣơng ứng là
bit, . Trong sơ đồ chữ kớ số đƣợc mụ tả bằng hai phƣơng trỡnh xỏc minh trờn thỡ giỏ trị g là một số nguyờn tố thuộc nhúm Gδ : g Gδ.
Trong sơ đồ chữ kớ trờn thỡ phƣơng trỡnh xỏc minh (3.5) cú thành phần chữ kớ k và g đƣợc xỏc minh bởi phƣơng trỡnh (3.2), với trƣờng hợp ngoại lệ chỳng ta cú:
Với phƣơng trỡnh xỏc minh (3.6) thỡ thành phần chữ kớ k sẽ đƣợc tớnh theo phƣơng trỡnh sau:
Hai thành phần của chữ kớ sẽ tớnh theo cụng thức (3.4)
Bổ đề 1: Chứng minh sự đỳng đắn của hai phƣơng trỡnh xỏc minh chữ kớ (3.5) và (3.6)
Chứng minh:
Cỏch chứng minh phƣơng trỡnh (3.5) và (3.6) là tƣơng tự nhau. Chỳng ta xem xột trƣờng hợp phƣơng trỡnh xỏc minh chữ kớ (3.6) trƣớc. Với phƣơng trỡnh này cặp chữ kớ số hợp lệ trờn thụng điệp M. Nếu ta tớnh wq(α) =δ, wr(β) =q và mod δ từ phƣơng trỡnh xỏc minh chữ kớ ta cú:
Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
Từ k‟ = k ta thấy phƣơng trinh xỏc minh chữ kớ đó cho kết quả chớnh xỏc. Nhƣ vậy phƣơng trỡnh (3.6) là hoàn toàn đỳng.
Với phƣơng trỡnh xỏc minh chữ kớ (3.5), cặp chữ kớ (k, g) với thụng điệp M kết hợp với phƣơng trỡnh (3.2) chỳng ta cú:
k-g = H
Và
Nhƣ vậy H‟ = H phƣơng trỡnh xỏc minh chữ kớ của sơ đồ (3.5) cũng đỳng.
3.3.3. Thảo luận về độ an toàn sơ đồ chữ kớ số
Với giỏ trị β của sơ đồ chữ kớ số trờn phải đỏp ứng đƣợc những yờu cầu về bảo mật sau: Giỏ trị wn(α) phải đủ lớn, >160 bit. Cỏc cuộc tấn cụng vào sơ đồ (3.5) và sơ đồ (3.6) là nhƣ nhau. Sau đõy ta sẽ xem ba bƣớc tấn cụng vào sơ đồ (3.6):
Bước 1: Tớnh giỏ trị y = αkg (mod n)
Bước 2: Tớnh giỏ trị x = logαy (mod n)
Bước 3: Tớnh giỏ trị δ là ƣớc số của kg-x
Nếu wn(α) > 160 bit (điều kiện này đủ để đảm bảo tớnh bảo mật, từ phƣơng