Chương 10: Sơ đồ định danh, trong chương này chúng ta sẽ tìm hiểu tổng quan về sơ đồ định danh, sơ đồ định danh trên cơ sỡ mật mã đối xứng, sơ đồ chữ ký và sơ đồ định danh Feige-Fiat-Shamir, Sơ đồ định danh và sơ đồ chữ ký Guillou-Quisquater, Sơ đồ định danh Schnorr, Sơ đồ định danh và chữ ký Okamoto
Nội dung trích xuất từ tài liệu:
Tài liệu Kỹ thuật lập trình - Chương 10: Sơ đồ định danh Chương 10 SƠ ĐỒ ĐỊNH DANH 10.1 Tổng quan về sơ đồ định danh Trong thực tế có những trường hợp cần chứng minh bằng phương tiện điện tử danhtính của ai đó. Tức là Alice và Bob liên lạc với nhau, Bob muốn biết người đang liên lạcvới mình có chính là Alice hay là không? Alice muốn cho Bob biết chính Alice chứ khôngphải ai khác, cô ta chứng minh bằng phương tiện điện tử mà không cần đ ưa ra bất c ứthông tin nào về bản thân Alice. Đó là mục đích của bài toán s ơ đ ồ đ ịnh danh. S ơ đ ồđịnh danh thường phục vụ cho các loại thẻ thông minh. Ví dụ thẻ rút tiền tự độngATM, thẻ này dùng số định danh PIN với 4 số nhằm để biết ai là chủ thẻ. Vì thế mà khithiết kế các sơ đồ nên tính đến khối lượng tính toán và bộ nhớ đ ể tương thích với cácloại thẻ thông minh. 10.2 Sơ đồ định danh trên cơ sỡ mật mã đối xứng Đây là bài toán đảm bảo được tính chân thực của phiên giao dịch, nó bao gồm làchứng thực được các đối tượng tham gia giao dịch. Kiểm tra tính chân thực của các bêntham gia của phiên giao dịch có thể thực hiện bằng cách sử dụng cơ chế “ hỏi-trả lời”. Cơ chế “hỏi – trả lời” được thực hiện như sau. Các bên liên quan với nhau s ở hửumột khóa mật K. Bây giờ bên Alice và bên Bob muốn liên kết với với nhau. Alice tạo rasố R với chiều dài n bít và gởi R cho Bob. Bob nhận được R và dùng khóa K để mã hóaR thành C=EK(R). Bob cũng tạo ra số ngẫu nhiên R’ dài n bít và gởi (C,R’) cho Alice.Alice cũng mã hóa R của mình, C*=EK(R), nếu như C*=C thì chứng nhận bên Bob. Alicethực hiện mã hóa R’: C’=EK(R’) và gởi C’ cho bên Bob. Bên Bob tương tự cũng mã hóaR’ của mình, C”=EK(R’), bên Bob so sánh nếu như C’=C” thì chứng thực bên Alice. 10.3 Sơ đồ chữ ký và sơ đồ định danh Feige-Fiat-Shamir Sơ đồ do Adi Shamir, Uriel Feige và Amos Fiat tạo ra và đến 09/07/1986 nhóm tácgiả được nhận bằng sáng chế của Mỹ. 10.3.1 Sơ đồ đơn giản Feige-Fiat-Shamir Trước khi đưa ra các tham số mật, người có uy tín chọn modulo n, n là tích c ủa haisố nguyên tố lớn. Trong thực tế cần phải chọn n không nhỏ hơn 512 bit và tốt nhất làchọn cở 1024 bít. n là tham số công khai. Để tạo ra khóa mở và khóa mật, thì Alice thỏa thuận với người uy tín hay tổ chứcchứng nhận (TA) để chọn số v, sao cho v là thặng dư bậc hai theo modulo n. Hay nóicách khác, chọn v sao cho v thỏa mãn phương trình: x 2 ≡ v(mod n) có nghiệm và tồn tạiv −1 (mod n) . v là tham số mở của Alice. Sau đó tính giá trị nhỏ nhất s, sao chos ≡ v −1 (mod n) . Số s là tham số mật của Alice. Sơ đồ định danh đ ược miêu t ả b ằnggiao thức sau. Những tham số của Alice được TA và những thông tin riêng tư của Alice(ID) được ký bằng chữ ký của TA(signTA) và thuật toán kiểm tra chữ ký của TA(verifyTA) và đưa ra dấu xác nhận cho Alice: C(Alice)=(ID(Alice),v,signTA(ID,v)). Sơ đồ định danh được miêu tả như sau. 1. Alice chọn số ngẫu nhiên r, nhỏ hơn n. Sau đó cô ta tính x = −r (mod n) và gởi x 2 và dấu xác thực C(Alice) cho Bob. 2. Bob xác minh chữ ký của TA bằng cách kiểm tra điều kiện sau có đúng hay không: verifyTA(ID(Alice),v,signTA(ID,v))=true? 3. Bob gởi cho Alice một bít ngẫu nhiên b. 4. Nếu nhu b=0 thì Alice gởi cho Bob r. Nếu b=1 thì Alice gởi cho Bob y=r*s (mod n). 5. Nếu b=0, Bob kiểm tra đẳng thức: x = −r 2 (mod n) , vì tin tưởng rằng chỉ Alice biết gía trị của s ≡ v (mod n) . Tương tự nếu b=1 thì Bob kiểm tra đẳng thức: x = y 2 * v(mod n) vì chỉ có Alice mới biết giá trị s ≡ v −1 (mod n) . Giao thức trên được Alice và Bob lặp lại t lần, đến khi nào Bob tin t ưởng r ằngngười liên hệ với mình chính là Alice. Nếu như Alice không biết s, cô ta có thể lựa chọnsố r sao cho có thể lừa được Bob, khi Bob gởi đến bít 0, và cũng có thể l ựa ch ọn r đ ểlừa Bob khi Bob gởi đến bit 1. Xác suất để Alice lừa Bob thành công là ½. Xác suất đ ểcô ta thành công trong t lần là (1 / 2)t . Để giao thức hoạt động, thì Alice không bao giờ sử dụng lại giá trị r, nếu không Bobsẽ tính được gía trị s. Và từ đây sơ đồ hoàn toàn bị phá vỡ. 10.3.2 Sơ đồ nâng cao Feige-Fiat-Shamir Để nâng cao tính an toàn của sơ đồ, giảm sự liên quan giữa Alice và Bob, Feige-Fiat-Shamir đã nâng cấp sơ đồ đơn giản ở trên. Sơ đồ được miêu tả như sau: Giống như sơ đồ trước,TA tạo ra số n, là tích của hai số nguyên tố lớn. Để tạo rakhóa mở và khóa mật, Alice thỏa thuận với TA để tạo k giá trị khác nhau: v1 , v2 ,..., vk , ởđây vi là thặng dư bậc hai theo modulo n. Hay nói cách khác vi được chọn sao cho thỏa −1mãn phương trình: x 2 ≡ vi (mod n) có nghiệm và tồn tại vi (mod n) . Các giá trị v1 , v2 ,..., vk làcông khai của Alice. Sau đó tính giá trị nhỏ nhất s ...