Chúng ta muốn định nghĩa các mô hình an toàn cho RSA-GENPSS và RSA- GENPSS-REDUCED. Trong mỗi một mô hình này ngƣời giả mạo biết khóa công khai và đƣợc cho phép truy cập vào oracle ký và hai oracle băm mô phỏng g và h. Mô hình có các tham số đầu vào là qsig, qhash và t. Tham số qsìg là giới hạn trên số các yêu cầu tới oracle ký, qhash là giới hạn trên tổng số các yêu cầu tới oracle băm. Cuối cùng t là giới hạn trên về độ phức tạp của phép giả mạo (gồm thời gian thực hiện và kích thƣớc mô tả).
Mục đích của kẻ giả mạo là xây dựng một cặp (M, x), trong đó x là chữ ký hợp lệ của
M. Dĩ nhiên x không phải là đáp ứng của yêu cầu ký có đầu vào M, tuy nhiên có thể x
đáp ứng yêu cầu của phép toán ký với một tham số đầu vào khác và có thể có những yêu cầu ký khác với đầu vào là M. Lược đồ ký (t, qsig, qhash, )-an toàn nếu như không có hoạt động giả mạo nào với độ phức tạp t và xác suất thành công là thực hiện được tối đa qsig phép toán ký và qhash hàm băm.[5]
Trƣớc tiên chúng ta định nghĩa một mô hình an toàn cho RSA-GENPSS-REDUCED. Ngƣời giả mạo biết khóa công khai và đƣợc cho phép truy cập tới oracle ký và hai oralce ngẫu nhiên độc lập mô phỏng g và h tƣơng ứng. Oralce đáp ứng ngẫu nhiên các
RSA-GENPSS-VERIFY(M,x,k0) (1) H h(M)
(2) x RSA-GenPSS-REDUCED-VERIFY(H,x,k0) (3) Cho ra kết quả là b
phân bổ đều từ một tập hợp cố định và độc lập với các đáp ứng khác. Để tính h(x), ngƣời giả mạo gửi x tới oracle h, h yêu cầu x = (H,r), trong đó |H| = kh và | r|Ksig
Kver. Để tính g(w), ngƣời giả mạo gửi w đến hàm băm g và g yêu cầu |w|=kh.
Thứ hai, chúng ta định nghĩa một mô hình an toàn cho RSA-GENPSS. Mô hình này tƣơng tự mô hình RSA-GENPSS-REDUCED. Một lần nữa chúng ta có oralce ký và hai oracle ngẫu nhiên cho g và h. Miền đối với g tƣơng tự nhƣ trên, trong khi oracle h
chấp nhận các tham số đầu vào có độ dài bất kỳ. Tuy nhiên ở mô hình này có sự phụ thuộc giữa hai oracle. Cụ thể trong đặc tả dự thảo gần đây của RSA-PSS2000, g(w)
đƣợc định nghĩa bằng kg = k – 1 - kh - kE bit đầu tiên của chuỗi
h(0(w))|| h(1(w))|| h(2(w))||… (1)
Ở đây i(w) = w|| (i)32, trong đó (i)32 là biểu diễn của i ở dạng 32 bit low-endian. Nói một cách cụ thể có những tƣong tác giữa h và g. Những tƣong tác này không xuất hiện trong lƣợc đồ rút gọn. Vì thế trong lƣợc đồ RSA-PSS2000 độ dài bit của (H,r) bằng
u +kh+ kr. Do u = 64 nên không bao giờ xảy ra trƣờng hợp (H,r) = |1(w)| = kh+32. Chúng ta giả sử rằng kẻ giả mạo của lƣợc đồ RSA-GENPSS đƣa ra một chữ ký (M, x), thì kẻ giả mạo phải gửi tất cả yêu cầu h-oracle và g-oracle cần thiết để xác minh x.
3.2.6 Một số xem xét về vấn đề lƣu trữ
Một nhân tố quan trọng làm giảm tính an toàn là một phép toán giả mạo oracle ngẫu nhiên, chẳng hạn nhƣ là một thuật toán mô phỏng các oracle ngẫu nhiên. Không thể ngăn chặn ngƣời giả mạo gửi một yêu cầu oracle bất kỳ hơn một lần. Do các đáp ứng và các yêu cầu phải đồng nhất với nhau nên phép toán giả mạo phải lƣu toàn bộ lịch sử các yêu cầu và đáp ứng . Đây là một vấn đề bởi vì đầu vào của hàm h trong lƣợc đồ RSA-GENPSS có độ dài tùy ý. Do đó các yêu cầu lƣu trữ đối với phép toán giả mạo có lẽ không thể thực hiện đƣợc, trong khi đó ngƣời giả mạo có những cách thức nhất định để xây dựng các yêu cầu mà không cần phải lƣu trữ chúng.
Có những cách thức để giải quyết vấn đề này. Cụ thể là sử dụng một hàm xác định đuợc chọn ngẫu nhiên từ tập hợp H rộng lớn, là một thể hiện của hdành cho các yêu cầu dài và sử dụng một thể hiện oracle ngẫu nhiên của h chỉ dành cho các yêu cầu ngắn. Giả sử việc tìm ra xung đột trong một hàm đƣợc chọn ngẫu nhiên từ tập H là khó, chúng ta có đƣợc sự bớt an toàn với giới hạn về các yêu lƣu trữ đối với hoạt động giả mạo hợp lý. Tuy nhiên cách tiếp cận này cũng đã yêu cầu một vài định nghĩa mang tính kỹ thuật. Hơn nữa xác suất để ngƣời giả mạo tìm ra một xung đột sẽ không chỉ còn phụ thuộc vào số lƣợng các yêu cầu mà còn phụ thuộc vào thời gian thực hiện và khả năng lƣu trữ của hoạt động thám mã. Điều này làm mờ đi sự rõ ràng của phép rút gọn tính an toàn khá phức tạp.[4]
Giả định thời gian để hoạt động thám mã thực hiện tất cả các yêu cầu gần bằng tổng số bit của các yêu cầu thay vì tổng số các yêu cầu. Theo cách này thì yêu cầu lƣu trữ của hoạt động giả mạo có giới hạn trên bằng tổng thời gian thực hiện của phép giả mạo.
3.2.7 Phân tích cấu trúc hàm băm
Trong lƣợc đồ RSA-PSS2000 thông điệp M đƣợc băm qua hai bƣớc để đƣa ra kết quả w. Bƣớc đầu tiên M đƣợc băm một mình cho kết quả là h(M), bƣớc thứ hai
h(M) đƣợc băm cùng với muối và một padding nào đó nữa. Ở lƣợc đồ RSA-PSS96 chỉ thực hiện một lần băm. Điều này dẫn đến sự khác nhau về tính an toàn của hai lƣợc đồ. Và điều này cũng tƣơng đƣơng với việc nghiên cứu sự khác nhau tƣơng ứng giữa hai lƣợc đồ RSA-GENPSS và RSA-GENPSS-REDUCED.
Sử dụng hệ thống ký hiệu đƣợc nêu trong phần đầu của tài liệu. Ký hiệu biểu thị số lƣợng chuỗi y sao cho h(y) phụ thuộc vào g(w) với mỗi w đã cho. Chúng ta giả sử rằng đối với mọi giá trị w thì giống nhau. Chúng ta giả sử rằng nếu h(y) phụ thuộc vào
g(w) thì toàn bộ giá trị h(y) đƣợc trích trực tiếp từ g(w). (Ví dụ h(y) là một chuỗi con của g(w)). Nếu g đƣợc định nghĩa nhƣ ở (1), thì = [(k-1- kh – ke)/kh] (nếu g và h độc lập với nhau thì = 0). Nhƣ đã nói ở trên đặt 0(w), …, , 1(w) biểu thị các chuỗi
thỏa mãn h(i(w)) đƣợc trích trực tiếp từ g(w). Giả sử rằng w đƣợc trích từ i(w) dễ dàng. Điều này đúng với lƣợc đồ RSA-PSS2000 vì i(w) = w||(i)32.
Bổ đề 1
Cho một phép giả mạo F trong mô hình an toàn của lƣợc đồ RSA-GENPSS với tối đa
qsig lần yêu cầu ký và qhash lần yêu cầu tiên đoán h và g, chúng ta định nghĩa một phép giả mạo Fred trong mô hình an toàn RSA-GENPSS-REDUCED với tối đa qsig lần yêu cầu ký và qhash+qsig lần yêu cầu tiên đoán h và g. Fred thành công nếu F thành công trừ phi có va chạm của h trong số các giá trị thu đƣợc qua các yêu cầu tiên đoán h của F. Số các giá trị nhƣ vậy nhiều nhất là
qtot= max{ , 1}.qhash + ( +2).qsign (2)
Nhận xét
1. Trong trƣờng hợp qhash lớn hơn qsig thì qtot xấp xỉ bằng max{, 1}.qhash
2. Thời gian thực hiện phép giả mạo Fred lớn hơn nhiều thời gian thực hiện phép giả mạo F cộng với thời gian cần thiết để thực hiện qsig lần yêu cầu băm..
Chứng minh
Cho F là phép giả mạo với mục đích đƣa ra một chữ ký trong mô hình an toàn RSA- GENPSS. Chúng ta muốn định nghĩa một phép giả mạo Fred trong mô hình an toàn RSA-GENPSS-REDUCED theo thuật ngữ của F. Để thỏa mãn điều đó Fred phải mô phỏng các tiên đoán của F.
g-Oralce dễ mô phỏng bởi vì các g-oralce trong lƣợc đồ RSA-GENPSS và RSA- GENPSS-REDUCED giống nhau. Oracle ký cũng dễ dàng mô phỏng. Khi F gửi một yêu cầu Q tới oracle-ký, Fred giả mạo h- oracle của F theo cách đƣợc mô tả dƣới đây đối với đầu vào Q, gửi chuỗi kết quả H tới oralce ký của mình và nhận đƣợc chữ ký x.
1. Trƣờng hợp Q có dạng Q = i(w) = (w) || (i)32, với | w| = kh và i{0, …, -1} Khi đó, w là một yêu cầu thƣờng gặp của g-oracle trong mô hình thu gọn. Do đó ta chỉ việc lấy giá trị của g (trong lƣợc đồ thu gọn) tại điểm w, và từ xâu kết quả nhận đƣợc g(w) có dạng (1), ta lấy đƣợc giá trị h(Q)=H chính là xâu con thứ i – 1 (có độ dài kh). Trong trƣờng hợp này việc lấy giá trị h băm trong lƣợc đồ tổng quát tƣơng ứng với việc lấy g băm trong lƣợc đồ thu gọn..
2. Q = (H’, r) , trong đó | H’| = kh và r Ksig Kver. Khi đó, Q là một yêu cầu cụ thể của h-oracle trong mô hình thu gọn. Trong trƣờng hợp này Fred gửi Q tới
h-oralce của nó và nhận giá trị trả về H = h(Q).
3. Nếu Q không có dạng nhƣ hai trƣờng hợp trên thì sinh ra một chuỗi ngẫu nhiên
H và H = h(Q) đã đƣợc định nghĩa.
Fred trả về chuỗi H cho F .Quay lại trƣờng hợp 1 và 2 với giả thiết độ dài của các yêu cầu khác nhau, tức là cả 3 trƣờng hợp bị loại bỏ.
Việc mô phỏng các oralce ký có thể yêu cầu thêm qsig lần yêu cầu h-oracle trong lƣợc đồ RSA-GENPSS, tƣơng ứng với nhiều nhất số các yêu cầu h-oralce hoặc g-oracle trong lƣợc đồ thu gọn là qsìg. Trong các lƣợc đồ lớn số lƣợng yêu cầu từ F đến h- oracle(trực tiếp hoặc gián tiếp qua g-oracle) tối đa là max{ , 1}.qhash. Ngoài ra có tối đa ( +2).qsign yêu cầu từ oracle ký tới h-oracle.
Cuối cùng F kết thúc quá trình giả mạo và đƣa ra kết quả (M, x). Fred trả về (H, x), trong đó H = h(M). (H, x) là một chữ ký hợp lệ của lƣợc đồ thu gọn nếu và chỉ nếu (M, x) là chữ ký hợp lệ của lƣợc đồ tổng quát RSA-GENPSS. Fred sẽ thất bại nếu và chỉ nếu ngƣời ta yêu cầu đúng chữ ký của H hoặc F thất bại. Trƣờng hợp đầu chỉ có thể nếu và chỉ nếu F yêu cầu chữ ký của một thông điệp M’ thỏa mãn h(M) = h(M’). Điều này chỉ xảy ra khi tồn tại va chạm của h.
Kết quả trả về của lƣợc đồ RSA-PSS2000 luôn kết thúc bằng một chuỗi cố định. Việc có đƣợc các phần của thông điệp mã hóa cố định là vấn đề khó. Việc chứng minh tính an toàn liên quan đến việc sinh ngẫu nhiên số nguyên x mà bit đầu tiên của
f(x) là 0 và f(x) kết thúc bằng các bit của chuỗi cố định E. f là phép toán xác minh nguyên thủy RSA. Chuỗi E càng dài thì phép toán f cần phải thực hiện nhiều để tìm ra số nguyên x bằng cách thử và sai. Mục đích của phần này là đánh giá số lần thực hiện hàm f cần thiết để sinh ra một số lƣợng nhất định các xâu với khuôn dạng thích hợp. Đặt Y là tập hợp con của N = {0, 1, ..., N-1}. Ví dụ Y có thể là tập hợp tất cả các số nguyên có độ dài k bit có bit đầu bằng 0 và kết thúc bằng chuỗi cố định E. k là độ dài bit của modulo N. Giả sử q là số nguyên dƣơng. Chúng ta muốn đƣa ra giới hạn thời gian cần thiết để sinh ra q phần tử độc lập và ngẫu nhiên từ tập Y qua hàm f mà xác suất thất bại là thấp nhất. Bổ đề 2 Đặt T = 2 0.ln2 ) .( | |Y k q N (3)
Sinh các số nguyên độc lập ngẫu nhiên z1, ...., zTZN. Xác suất để có ít hơn q trong số các số nguyên f(z1), …, f(zT) thuộc tập Y nhỏ hơn 2-k0
Nhận xét
Đối với mỗi lựa chọn giá trị cụ thể cho k0 và q (ví dụ, k0 = 160 và q = 260) thì giá trị 2 ln . 0 k nhỏ hơn q, nghĩa là N Y | |
.T gần bằng q. Theo bổ đề trên điều chúng ta cần
là q T N Y | | 1 2k0 T N Y . |
| q.k0.ln2. Giá trị này xấp xỉ bằng k0.ln2 lần giới hạn nếu ra. Thực tế k0 là độ dài của kh qua hàm băm h. Điều này có nghĩa khi T là giới hạn trên trong việc đánh giá độ phức tạp của một lƣợc đổ rút gọn, thì cách tiếp cận mới sẽ nhanh hơn 100 lần cách tiếp cận trƣớc đó.
Chọn gía trị p nằm giữa 0 và 1. Đặt =
N Y | |
. Xác suất để có tối đa q – 1 trong số T
phần tử f(z1), …, f(zT) thuộc Y là 1 0 q i T i i (1 - )Ti < T i T i 0 i (1- )Ti p-q+ (i+1)< 1 0 q i T i i (1-)Ti p-q+ (i+1) = p-(q-1) T i T i 0 i (1-)Ti.pi <(1 - +p)T.p-(q-1) = exp(T.ln(1-(1-p)) – (q-1)lnp) < exp(-T(1-p)+(q-1)(1/p-1))
Biểu thức cuối cùng có giá trị tối đa bằng 2-k0 nếu và chỉ nếu
-T(1-p)+(q-1)(1/p-1) -k0.ln2 T 1 ( p k 1 2 ln . 0 + p q1 )
Biểu thức này đƣợc cực tiểu khi p =
1 2 ln . 1 0 q k q
, khi đó biểu thức bên phải trở thành 1 ( k0.ln2 .( k0.ln2 + q1 ) + q1 .( k0.ln2 + q1 ) ) = 2 0ln2 1) ( | | k q Y N (3.1)
Chƣơng 4
SỰ CHUẨN HOÁ CỦA LƢỢC ĐỒ KÝ RSA-PSS
4.1 Nguyên lý chung
Trong phần này chỉ rõ 3 thuật toán cần thiết cho quá trình tạo và kiểm tra chữ ký số. Thuật toán đầu tiên, thuật toán chữ ký số RSA, thuật toán thứ 2, thuật toán hàm băm SHA - 256, và thuật toán thứ 3, thuật toán tạo số giả ngẫu nhiên dùng AES. Ngoài ra còn có tiêu chuẩn về các tham số sử dụng trong thuật toán chữ ký số RSA- PSS đã đƣợc đề xuất.
Khi nhận đƣợc một thông điệp, ngƣời nhận muốn xác minh đƣợc rằng thông điệp đó không bị thay đổi trong quá trình truyền và xác định đƣợc danh tính của ngƣời gửi. Các yêu cầu đó có thể đƣợc đáp ứng bởi thuật toán chữ ký số. Chữ ký số còn đƣợc gọi là chữ ký điện tử, có thể đƣợc sử dụng để chứng minh với ngƣời nhận hoặc bên thứ ba rằng thông điệp đó đƣợc ký bởi chính ngƣời gửi. Chữ ký số không những đƣợc tạo ra cho dữ liệu đƣợc gửi đi, mà còn có thể đƣợc tạo ra cho dữ liệu đƣợc lƣu trữ, công bố và các chƣơng trình máy tính, vì vậy mà tính toàn vẹn của dữ liệu và chƣơng trình máy tính có thể đƣợc xác minh tại bất kỳ thời điểm nào.
Thuật toán chữ ký số là thuật toán cho phép ngƣời ký tạo ra đƣợc chữ ký số trên dữ liệu và cho phép ngƣời xác minh kiểm tra đƣợc tính xác thực của chữ ký. Mỗi ngƣời sử dụng có một cặp chìa khóa bao gồm chìa khoá bí mật và chìa khoá công khai. Chìa khóa bí mật đƣợc sử dụng trong quá trình tạo chữ ký và chìa khóa công khai sử dụng trong quá trình xác minh chữ ký. Cả trong quá trình tạo và xác minh chữ ký, thông điệp M (dạng dữ liệu) đƣợc thu gọn nhờ áp dụng thuật toán băm an toàn (SHA-256). Một ngƣời không biết chìa khóa bí mật của ngƣời ký thì không thể tạo ra một chữ ký giống nhƣ của ngƣời ký. Nói cách khác, chữ ký không thể bị giả mạo. Khi sử dụng chìa khóa công khai của ngƣời ký, bất kỳ ai cũng có thể xác minh đƣợc tính chân thực của chữ ký số trên thông điệp đã đƣợc ký. Tuy nhiên, nếu chìa khoá công khai đƣợc sử
dụng khi kiểm tra chữ ký số không tƣơng ứng với chìa khoá bí mật đã đƣợc sử dụng khi tạo ra chữ ký (tình huống này xảy ra khi chìa khoá công khai bị giả mạo hay bị thay đổi) thì không thể kết luận gì về tính chân thực của chữ ký số đã đƣợc tạo ra. Một cơ chế cần đƣợc thiết lập để gắn kết chìa khoá công khai với danh tính của ngƣời sử dụng nắm giữ chìa khoá bí mật tƣơng ứng. Cơ chế này có thể đạt đƣợc nhờ sự chứng