TRUYỀN THÔNG
LÊ THỊ HÀ
SƠ ĐỒ ĐỊNH DANH MẬT VÀ CHỮ KÝ SỐ ỨNGDỤNG TRONG THƯƠNG MẠI ĐIỆN TỬ
LUẬN VĂN THẠC SĨ: KHOA HỌC MÁY TÍNH
Thái Nguyên - 2012
Trang 2TRUYỀN THÔNG
LÊ THỊ HÀ
SƠ ĐỒ ĐỊNH DANH MẬT VÀ CHỮ KÝ SỐ ỨNGDỤNG TRONG THƯƠNG MẠI ĐIỆN TỬ
Chuyên ngành: Khoa học máy tính
Trang 3ứng dụng trong thương mại điện tử ” là công trình nghiên cứu của riêng
tôi dưới sự hướng dẫn của PGS.TS Bùi Thế Hồng Toàn bộ phần mềm
do chính tôi xây dựng và kiểm thử Tôi xin chịu trách nhiệm về lời camđoan của mình.
Các số liệu và thông tin sử dụng trong luận văn này là trung thực.
Tác giả
Lê Thị Hà
Trang 4MỤC LỤC
LỜI MỞ ĐẦU vi
1 Lý do chọn đề tài 1
2 Mục tiêu nghiên cứu 1
3 Phương pháp nghiên cứu 2
4 Tổng quan luận văn 2
CHƯƠNG 1 4
TỔNG QUAN VỀ MẬT MÃ VÀ CHỮ KÝ SỐ 4
1.1 Giới thiệu về mật mã và hệ thống mã khóa 4
1.1.1 Giới thiệu về mật mã học và các yêu cầu bảo mật thông tin 4
1.1.1.1 Giới thiệu về mật mã học 4
1.1.1.2 Các yêu cầu bảo mật thông tin 6
1.1.2 Các hệ thống mã hóa đối xứng và công khai 8
BÀI TOÁN SƠ ĐỒ ĐỊNH DANH MẬT VÀ XÁC NHẬN THÔNG TIN 24
2.1 Tổng quan về bài toán xưng danh 24
2.2 Sơ đồ xưng danh Okamoto 25
Trang 52.3 Sơ đồ xưng danh Guillou-Quisquater 31
2.4 Các sơ đồ xung danh dựa trên tính đồng nhất 35
2.5 Sơ đồ xưng danh Schnorr 36
2.6 Chuẩn chữ ký số (Digital Signature Standard) 42
2.7 Hàm băm và chữ ký 44
2.7.1 Hàm băm (hash function) 44
2.7.2 Vai trò của hàm băm 46
3.3 Chương trình sơ đồ định danh Schnorr 50
3.3.1 Thuật toán của chương trình 50
3.3.2 Giao diện chương trình của sơ đồ định danh Schnorr 51
3.3.2.1 Chức năng tạo mới 51
3.4 Chương trình sơ đồ chữ ký Schnorr 58
3.4.1 Thuật toán của chương trình 58
Trang 63.4.2 Giao diện chương trình của sơ đồ chữ ký Schnorr 59
3.4.2.1 Chức năng tạo mới 59
Trang 7DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT
Các từ viết tắt Nghĩa tiếng anhNghĩa tiếng việt
DSS Digital Signature Standard Chuẩn chữ ký số
RSA Rivest, Shamir và Adleman Tên ba tác giả của hệ mật mãRSA
Trang 8DANH MỤC HÌNH VẼ
Hình 1.1: Lược đồ ký 12
Hình 1.2 Lược đồ xác thực 14
Hình 2.1 Sơ đồ hàm băm 46
Hình 3.1 Giao diện tổng thể của hệ thống 49
Hình 3.2 Giao diện chương trình mô phỏng sơ đồ định danh Schnorr 51
Hình 3.3 Giao diện chương trình mô phỏng cơ quan ủy thác xác 53
Hình 3.4 Giao diện chương trình Andy thực hiện gửi thông tin cho Tommy54Hình 3.5 Giao diện chương trình thực hiện xác nhận thông tin của Andy 55
Hình 3.6.Giao diện chương trình sơ đồ chữ ký Schnorr 59
Hình 3.7 Giao diện chương trình thực hiện xác nhận thông tin của sơ đồ chữký Schnorr 61
Trang 9LỜI MỞ ĐẦU1 Lý do chọn đề tài
Ngày nay, cùng với sự phát triển không ngừng của ngành công nghệthông tin là sự bùng nổ số lượng ứng dụng quản lý thông tin, công việc của tổchức, doanh nghiệp, cá nhân, an toàn cho vấn đề xác nhận các thông báo.Mặt khác, trong môi trường cạnh tranh, người ta ngày càng cần có nhiềuthông tin với tốc độ nhanh để trợ giúp việc ra quyết định và ngày càng cónhiều câu hỏi mang tính chất cần phải có giải pháp an toàn cho vấn đề xácnhận các thông báo cùng với người gửi trên các mạng truyền tin công cộng
Trong thực tế cuộc sống, việc xưng danh theo thói quen thường khôngcó tính an toàn chẳng hạn các số PIN, mật khẩu thường không có gì để đảmbảo là được giữ kín, người ngoài không biết
Trong giao thức thực hiện trên điện thoại, bất kỳ kẻ nghe trộm nàocũng có thể dùng thông tin định danh cho mục đích riêng của mình Nhữngngười này cũng có thể là người nhận thông tin Các mưu đồ xấu trên thẻ tíndụng đều hoạt động theo cách này
Như vậy với sự phát triển tin học trên mọi lĩnh vực như hiện nay, phầnlớn các giao dịch được thực hiện trên các mạng tin học đòi hỏi phải có giảipháp về an toàn trong các khâu xưng danh và xác nhận danh tính cho các hoạtđộng đó.
Nhận thấy tính thiết thực của vấn đề này và được sự gợi ý của giảng viên
hướng dẫn, em đã chọn đề tài “Sơ đồ định danh mật và sơ đồ chữ ký số ứngdụng trong thương mại điện tử” làm đề tài cho luận văn thạc sĩ của mình.
2 Mục tiêu nghiên cứu
- Tìm hiểu về lý thuyết mật mã học và hệ thống mật mã.- Nghiên cứu chữ chữ ký số và quá trình xác thực chữ ký số -Chuẩn chữ ký số và hàm băm.
Trang 10- Nghiên cứu các sơ đồ chữ ký số và các sơ đồ định danh mật.
- Nghiên cứu phương pháp chuyển sơ đồ định danh mật sang sơ đồ chữký số.
3 Phương pháp nghiên cứu
- Nghiên cứu qua các tài liệu như: sách, các bài báo, thông tin trên cácwebsite và các tài liệu liên quan.
- Phân tích, tổng hợp lý thuyết và giới thiệu các thuật toán của các sơ đồđịnh danh mật và cách chuyển sơ đồ định danh schnorr sang sơ đồ chữ kýschnorr.
- Sử dụng ngôn ngữ lập trình C# để triển khai xây dựng một chươngtrình ứng dụng về sơ đồ định danh schnorr và sơ đồ chữ ký schnorr ứng dụngtrong thương mại điện tử.
4 Tổng quan luận văn
Luận văn được trình bày theo hình thức từ trên xuống Bắt đầu của mỗiphần đều đưa ra những khái niệm cơ bản và quy định cho phần trình bày tiếpsau nhằm mục đích giúp dễ dàng trong khi đọc, dần dần đi sâu vào để thảoluận rõ hơn những vấn đề liên quan.
Luận văn cấu trúc thành 3 chương:
Chương 1: Tổng quan về mật mã và chữ ký số
Tìm hiểu lý thuyết mật mã, hệ thống mã khóa, chữ ký số, các sơ đồ chữ kýsố.
Chương 2: Bài toán sơ đồ định danh mật và xác nhận thông tin
Trình bày bài toán định danh và sơ đồ xưng danh xác nhận danh tính.Các sơ đồ xưng danh Schnorr, Okamoto đòi hỏi người được ủy quyền tínnhiệm (TA) dựa trên bài toán tính logarit rời rạc, sơ đồ xưng danh Guillou– Quisquater, sơ đồ định danh dựa trên tính đồng nhất Chuẩn chữ ký số vàhàm băm.
Trang 11Chương 3: Chương trình sơ đồ định danh schnorr và sơ đồ chữ ký schnorr
Trình bày việc cài đặt thuật toán bằng ngôn ngữ lập trình C#, trên cơ sởxây dựng ứng dụng sơ đồ định danh schnorr và sơ đồ chữ ký schnorr.
Kết luận: Tóm tắt các nội dung chính, các kết quả đạt được và hướng
nghiên cứu tiếp theo của luận văn.
Trang 12CHƯƠNG 1
TỔNG QUAN VỀ MẬT MÃ VÀ CHỮ KÝ SỐ1.1 Giới thiệu về mật mã và hệ thống mã khóa
1.1.1 Giới thiệu về mật mã học và các yêu cầu bảo mật thông tin1.1.1.1 Giới thiệu về mật mã học
Nhu cầu sử dụng mật mã đã xuất hiện từ rất sớm, khi con ngườibiết trao đổi và truyền đưa thông tin cho nhau, đặc biệt khi các thông tinđó đã được thể hiện dưới hình thức ngôn ngữ, thư từ Lịch sử cho ta biết,các hình thức mật mã sơ khai đã được tìm thấy từ khoảng bốn nghìn nămtrước trong nền văn minh Ai cập cổ đại Trải qua hàng nghìn năm lịch sử,mật mã đã được sử dụng rộng rãi trên khắp thế giới từ Đông sang Tây đểgiữ bí mật cho việc giao lưu thông tin trong nhiều lĩnh vực hoạt động giữacon người và các quốc gia, đặc biệt trong các lĩnh vực quân sự, chính trị,ngoại giao Mật mã trước hết là một loại hoạt động thực tiễn, nội dungchính của nó là để giữ bí mật thông tin (chẳng hạn dưới dạng một văn bản)từ một người gửi A đến một người nhận B, A phải tạo cho văn bản đómột bản mật mã tương ứng, và thay vì gửi văn bản rõ thì A chỉ gửi choB bản mật mã, B nhận được bản mã mật và sẽ có cách khôi phục lại vănbản rõ để hiểu được thông tin mà A muốn gửi cho mình Vì bản gửi đithường được chuyển qua các con đường công khai nên người ngoài có thể"lấy trộm" được, nhưng đó là bản mật mã nên đọc không hiểu được, còn Acó thể tạo ra bản mã mật và B có thể giải bản mã mật thành bản rõ để hiểuđược là do giữa hai người đã có một thỏa thuận về một chìa khóa chung,chỉ với chìa khóa chung này thì A mới tạo được bản mã mật từ bản rõ,và B mới từ bản mã mật khôi phục lại được bản rõ Sau này ta sẽ gọi đơngiản chìa khóa chung đó là khóa mật mã Tất nhiên để thực hiện được mộtphép mật mã, ta còn cần có một thuật toán biến bản rõ, cùng với khóa mật
Trang 13mã thành bản mã mật và một thuật toán ngược lại, biến bản mã mật cùngvới khóa mật mã thành bản rõ Các thuật toán đó được gọi tương ứng làthuật toán lập mật mã và thuật toán giải mật mã Các thuật toán này thườngkhông nhất thiết phải giữ bí mật, mà cái cần được giữ tuyệt mật luôn luôn làkhóa mật mã Trong thực tiễn, đã có hoạt động bảo mật thì cũng có hoạtđộng ngược lại là khám phá bí mật từ các bản mã mật "lấy trộm" được, tathường gọi hoạt động này là mã thám, hoạt động này quan trọng khôngkém gì hoạt động bảo mật! Vì các thuật toán lập mật mã và giải mật mãkhông nhất thiết là bí mật, nên mã thám thường được tập trung vào việctìm khóa mật mã, do đó cũng có người gọi công việc đó là phá khóa.
Bước sang thế kỷ 20, với những tiến bộ liên tục của kỹ thuật tínhtoán và truyền thông, ngành mật mã cũng đã có những tiến bộ to lớn Vàonhững thập niên đầu của thế kỷ, sự phát triển của các kỹ thuật biểu diễn,truyền và xử lý tín hiệu đã có tác động giúp cho các hoạt động lập và giảimật mã từ thủ công chuyển sang cơ giới hóa rồi điện tử hóa Các văn bản,các bản mật mã trước đây được viết bằng ngôn ngữ thông thường nayđược chuyển bằng kỹ thuật số thành các dãy tín hiệu nhị phân, tức các dãybit, và các phép biến đổi trên các dãy ký tự được chuyển thành các phépbiến đổi trên các dãy bit, hay các dãy số, việc thực hiện các phép lập mã,giải mã trở thành việc thực hiện các hàm số số học
Lý thuyết về độ phức tạp tính toán ra đời từ giữa những năm 1960 đãcho ta một cách thích hợp để yêu cầu bí mật hoặc ngẫu nhiên về một yêu cầucó thể định nghĩa được là yêu cầu về độ phức tạp tính toán Bây giờ ta cóthể nói: một giải pháp mật mã là bảo đảm bí mật, nếu mọi thuật toánthám mã đều phải được thực hiện với độ phức tạp tính toán cực lớn Cựclớn là bao nhiêu? Là vượt quá giới hạn khả năng tính toán (bao gồm cả máytính) mà người thám mã có thể có Về lý thuyết, có thể xem đó là những
Trang 14độ phức tạp tính toán với tốc độ tăng vượt quá hàm mũ, hoặc thuộc loại khó Tuy nhiên, lý thuyết độ phức tạp tính toán không chỉ cống hiến cho tamột khái niệm để giúp chính xác hóa tiêu chuẩn bí mật của các giải phápmật mã, mà còn mở ra một giai đoạn mới của ngành mật mã, biến ngành mậtmã thành một khoa học có nội dung lý luận phong phú và có những ứngdụng thực tiễn quan trọng trong nhiều lĩnh vực của đời sống hiện đại Bướcngoặt có tính cách mạng trong lịch sử khoa học mật mã hiện đại xẩy ra vàonăm 1976 khi hai tác giả Diffie và Hellman đưa ra khái niệm về mật mãkhóa công khai và một phương pháp trao đổi công khai để tạo ra mộtkhóa bí mật chung mà tính an toàn được bảo đảm bởi độ khó của một bàitoán toán học cụ thể (là bài toán tính "lôgarit rời rạc") Hai năm sau, năm1978, Rivest, Shamir và Adleman tìm ra một hệ mật mã khóa công khai vàmột sơ đồ chữ ký điện tử hoàn toàn có thể ứng dụng trong thực tiễn, tínhbảo mật và an toàn của chúng được bảo đảm bằng độ phức tạp của một bàitoán số học nổi tiếng là bài toán phân tích số nguyên thành các thừa sốnguyên tố Sau phát minh ra hệ mật mã đó (mà nay ta thường gọi là hệRSA), việc nghiên cứu để phát minh ra các hệ mật mã khóa công khaikhác và ứng dụng các hệ mật mã khóa công khai vào các bài toán khác nhaucủa an toàn thông tin đã được tiến hành rộng rãi, lý thuyết mật mã và an toànthông tin trở thành một lĩnh vực khoa học được phát triển nhanh trongvài ba thập niên cuối của thế kỷ 20, lôi cuốn theo sự phát triển của một sốbộ môn của toán học và tin học
NP-1.1.1.2 Các yêu cầu bảo mật thông tin
Hiện nay các biện pháp tấn công ngày càng tinh vi, đe dọa tới độ an toànvà bảo mật thông tin Vì vậy chúng ta cần thiết lập các phương pháp đề phòngcần thiết Mục đích cuối cùng của các an toàn bảo mật là bảo vệ các thông tinvà tài nguyên theo các tiêu chí sau:
Trang 15- Tính bí mật :
Để đảm bảo dữ liệu được truyền đi một cách an toàn và không thể bị lộ thôngtin nếu như có ai đó cố tình muốn có được nôi dung của dữ liệu gốc ban đầu.Chỉ có người nhận đã xác thực mới có thể lấy ra được nội dung của thông tincủa dữ liệu đã được mã hóa.
- Tính xác thực:
Thông tin không thể bị truy cập trái phép bởi những người không có thẩmquyền, giúp cho người nhận dữ liệu xác định được chắc chắn dữ liệu mà họnhận là dữ liệu gốc ban đầu của người gửi Kẻ giả mạo không thể có khả năngđể giả dạng một người khác hay nói cách khác không thể mạo danh để gửi dữliệu Người nhận có khả năng kiểm tra nguồn gốc thông tin mà họ nhận được.
- Tính toàn vẹn:
Thông tin không thể bị sửa đổi, bị làm giả bởi những người không có thẩmquyền giúp cho người nhận dữ liệu kiểm tra được rằng dữ liệu không thay đổitrong quá trình truyền đi Kẻ giả mạo không thể có khả năng thay thế dư liệuban đầu bằng dữ liệu giả mạo.
- Tính không thể chối bỏ:
Thông tin đươc cam kết về mặt pháp luật của người cung cấp Người gửi hayngười nhận không thể chối bỏ sau khi đã gửi hoặc nhận thông tin.
Trang 161.1.2 Các hệ thống mã hóa đối xứng và công khai1.1.2.1 Sơ đồ hệ thống mật mã.
Mật mã được sử dụng để bảo vệ tính bí mật của thông tin khi thôngtin được truyền trên các kênh truyền thông công cộng như các kênh bưuchính, điện thoại, mạng truyền thông máy tính, mạng Internet, v.v Giả sửmột người gửi A muốn gửi đến một người nhận B một văn bản (chẳnghạn, một bức thư) p, để bảo mật A lập cho p một bản mật mã c, và thaycho việc gửi p, A gửi cho B bản mật mã c, B nhận được c và "giải mã" cđể lại được văn bản p như A gửi Để A biến p thành c và B biến ngược lạic thành p, A và B phải thỏa thuận trước với nhau các thuật toán lập mã vàgiải mã, và đặc biệt một khóa mật mã chung K để thực hiện các thuật toánđó Người ngoài, không biết các thông tin đó (đặc biệt, không biết khóa K),cho dù có lấy trộm được c trên kênh truyền thông công cộng, cũng khôngthể tìm được văn bản p mà hai người A, B muốn gửi cho nhau Sau đây tasẽ cho một định nghĩa hình thức về sơ đồ mật mã và cách thức thực hiện đểlập mật mã và giải mật mã.
Định nghĩa1.1.2.1 : Một sơ đồ hệ thống mật mã là một bộ nămS = (P , C , K , E , D ) (1)thỏa mãn các điều kiện sau đây:
P là một tập hữu hạn các ký tự bản rõ,C là một tập hữu hạn các ký tự bản mã,K là một tập hữu hạn các khóa,
E là một ánh xạ từ KxP vào C, được gọi là phép lập mật mã; và D là một ánh xạ từ KxC vào P, được gọi là phép giải mã Với mỗi K∈
, ta định nghĩa eK : P →C , dK :C →P là hai hàm cho bởi :⎠x P : eK(x) = E (K,x) ; ⎠y C : dK(y) = D (K,y).
Trang 17eK và dK được gọi lần lượt là hàm lập mã và hàm giải mã ứng với khóamật mã K Các hàm đó phải thỏa mãn hệ thức:
⎠x P : dK(eK(x)) = x
Về sau, để thuận tiện ta sẽ gọi một danh sách (1) thoả mãn các tínhchất kể trên là một sơ đồ hệ thống mật mã , còn khi đã chọn cố định mộtkhoá K, thì danh sách (P , C , eK , dK) là một hệ mật mã thuộc sơ đồđó.
Trong định nghĩa này, phép lập mật mã (giải mã) được định nghĩacho từng ký tự bản rõ (bản mã) Trong thực tế, bản rõ của một thông báothường là một dãy ký tự bản rõ, tức là phần tử của tập P *, và bản mật mãcũng là một dãy các ký tự bản mã, tức là phần tử của tập C *, việc mở rộngcác hàm eK và dK lên các miền tương ứng P * và C * Các tập ký tự bảnrõ và bản mã thường dùng là các tập ký tự của ngôn ngữ thông thường như
tiếng Việt, tiếng Anh (ta ký hiệu tập ký tự tiếng Anh là A tức A ={a,b,c, ,x,y,z } gồm 26 ký tự; tập ký tự nhị phân B chỉ gồm hai ký tự 0 và
1; tập các số nguyên không âm bé hơn một số n nào đó (ta ký hiệu tập này
là Zn tức Zn = {0,1,2, , n- 1}) Chú ý rằng có thể xem B = Z2 Để thuậntiện, ta cũng thường đồng nhất tập ký tự tiếng Anh A với tập gồm 26 sốnguyên không âm đầu tiên Z26 = {0,1,2, , 24,25} với sự tương ứng sau
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25.Đôi khi ta cũng dùng với tư cách tập ký tự bản rõ hay bản mã là các tập tích
của các tập nói trên, đặc biệt là các tập Am , B m , Z m
Trang 181.1.2.2 Hệ thống mật mã đối xứng và công khai.
Theo định nghĩa 1.1.2.1 về sơ đồ mật mã, mỗi lần truyền tin bảo mật,cả người gửi A và người nhận B phải cùng thỏa thuận trước với nhaumột khóa chung K, sau đó người gửi dùng eK để lập mật mã cho thông báogửi đi, và người nhận dùng dK để giải mã bản mật mã nhận được Ngườigửi và người nhận cùng có một khóa chung K, được giữ như bí mật riêngcủa hai người, dùng cả cho lập mật mã và giải mã, ta gọi những hệ mật mãvới cách sử dụng đó là mật mã khóa đối xứng, đôi khi cũng gọi là mật mãtruyền thống vì đó là cách đã được sử dụng từ hàng ngàn năm nay Tuynhiên, về nguyên tắc hai hàm lập mã và giải mã là khác nhau không nhấtthiết phải phụ thuộc cùng một khóa Nếu ta xác định mỗi khóa K gồm cóhai phần K = (K' , K'' ), K' dành cho việc lập mật mã (và ta có hàm lập mãeK' ), K'' dành cho việc giải mã (và có hàm giải mã dK'' ), các hàm lập mãvà giải mã thỏa mãn hệ thức dK'' (eK' (x)) = x với mọi x ∈P , thì ta đượcmột hệ mật mã khóa phi đối xứng Như vậy, trong một hệ mật mã khóa phiđối xứng, các khóa lập mã và giải mã (K' và K'' ) là khác nhau, nhưng tấtnhiên có quan hệ với nhau Trong hai khóa đó, khóa cần phải giữ bí mật làkhóa giải mã K'' , còn khóa lập mã K' có thể được công bố công khai, tuynhiên điều đó chỉ có ý nghĩa thực tiễn khi việc biết K' tìm K'' là cực kỳ khókhăn đến mức hầu như không thể thực hiện được Một hệ mật mã khóa phiđối xứng có tính chất nói trên, trong đó khóa lập mật mã K' của mỗi ngườitham gia đều được công bố công khai được gọi là hệ mật mã khóa công khai.Khái niệm mật mã khóa công khai mới được ra đời vào giữa những năm1970 và ngay sau đó đã trở thành một khái niệm trung tâm của khoa học mậtmã hiện đại
Trang 191.2 Chữ ký số
1.2.1 Giới thiệu về chữ ký số
Chữ ký số là một bộ phận dữ liệu không thể giả mạo, để xác nhận mộtngười đã viết ra hoặc đồng ý với một tài liệu mà chữ ký đó được gắn vào.Chữ ký số sử dụng công nghệ mã hoá trên nền tảng khoá công khai, để bảođảm tính đúng đắn tính toàn vẹn về nội dung của một dữ liệu hoặc một thôngđiệp điện tử và những yêu cầu khác đối với các mục đích của một chữ ký Chữ ký số có các tính chất sau:
- Xác thực: người nhận kiểm tra được việc người gửi đã kí vào tài liệu.
- Không thể giả mạo được: chữ ký số xác nhận với người nhận tài liệu là
không ai khác ngoài người kí đã kí tài liệu đó.
- Không thể dùng lại được: chữ ký số có kèm theo nội dung và thời gian gắn
trên tài liệu, nên không thể chuyển chữ ký từ tài liệu này sang tài liệu khác.
- Đảm bảo sự toàn vẹn và đúng đắn của tài liệu: tài liệu đã được kí không thể
giả mạo, sửa đổi hoặc thêm bớt.
- Không thể chối bỏ: chữ ký và tài liệu là chứng cứ về mặt pháp lý và có khả
năng xác thực sự đồng nhất giữa người kí và tài liệu được kí Do đó người gửikhông thể phủ nhận việc đã kí tài liệu đó.
1.2.2 Quá trình ký và xác thực chữ ký1.2.2.1 Quá trình ký
Đoạn dữ liệu cần được bảo mật đưa qua hàm băm (hashing0), kết quả củahàm băm là một đoạn bit đảm bảo 2 tính chất sau:
- Tính duy nhất: mỗi một đoạn dữ liệu khác nhau thì sẽ có một đoạn bit khác
nhau, không trùng lặp, có độ dài không đổi.
- Tính một chiều: từ đoạn bit đặc trưng này, không suy ngược lại được nội
dung đoạn văn bản.
Trang 20Đoạn bit đặc trưng này được mã hóa bằng khóa bí mật của người gửi và đínhkèm vào “văn bản”, rồi gửi đến người nhận Đoạn bit được mã hóa này chínhlà chữ ký số (digital signature).
Lược đồ ký được mô tả bằng hình vẽ dưới đây:
Trang 21Mã hóa
Trang 22B3: So sánh đoạn bit vừa thu được với đoạn bit thu được trong bước 1, nếu 2kết quả trùng nhau và tin rằng khóa công khai chắc chắn là do người gửi pháthành thì kết luận:
- Dữ liệu nhận được có tính toàn vẹn (vì kết quả băm là duy nhất, một chiều)- Dữ liệu nhận được là do chính người gửi đi vì chỉ duy nhất người nhận
được xác thực mới có khóa bí mật phù hợp với khóa công khai đã được sửdụng để giải được sử dụng để giải mã Như vậy tính chống từ chối và tínhxác thực được kiểm tra và xác nhận Lúc này người nhận tin rằng khóacông khai đó đại diện hợp pháp cho người gửi.
Lược đồ xác thực chữ ký số được mô tả bằng hình vẽ dưới đây:
Trang 23Hình 1.2 Lược đồ xác thực
Sau khi ký “văn bản”, nếu cần thiết cho vào “phong bì” nhằm bảo đảm tính bímật khi gửi đi, toàn bộ dữ liệu gốc và chữ ký có thể được đưa một lần bởikhóa công khai của người sẽ nhận “văn bản” Khi nhận được khóa mã, tiếp
Bản tin đã ký
Khóa công khai của người gửi
Bản tin điện tửTách bản tin và
Bản tóm lược 1Hàm bămGiải mã
Bản tóm lược 2Giải mã
Gống nhaucó
khôngĐúng người gửi
Không Đúng người gửi
Bản tin là toàn vẹn
Trang 24tục sử dụng khóa mã này sẽ giải mã được văn bản Như vậy, tính bí mật củagiao dịch sẽ được đảm bảo từ người gửi, đến tận người nhận.
1.2.3 Một số lược đồ chữ ký số
Để một chữ ký số có các tính chất cần thiết phải có một cơ chế haymột quy trình nhất định để tạo ra chữ ký số đó, được gọi là quy trình tạo rachữ ký số Quy trình tạo chữ ký số dựa trên thuật toán sinh chữ ký số Việcxác minh chữ ký số trên một tài liệu, dữ liệu được thực hiện dựa trên các thuậttoán xác minh chữ ký số
Quá trình xác minh chữ ký số còn bao gồm cả các phương thức phục hồi dữliệu Tất cả các thuật toán sử dụng trong việc tạo chữ ký số, xác minh chữ kýsố, xác thực chữ ký số và tài liệu tạo thành một cơ chế sử dụng chữ ký số vàtập hợp thành một lược đồ kí chữ ký số.
Một lược đồ chữ ký số gồm 2 thành phần: thuật toán khởi sinh chữ ký số và
thuật toán xác minh kết hợp với nó.
Tommy có thể kí thông báo x nhờ thuật toán kí (bí mật) Sig Chữ ký
thu được sig(x), sau đó có thể được kiểm tra nhờ thuật toán kiểm tra công
cộng Ver Khi cho cặp (x,y) thuật toán kiểm tra sẽ trả lời “đúng” hoặc “sai”
phụ thuộc vào việc chữ ký có đích thực không.
Trang 25Với mỗi K = (K', K'') trong S có một thuật toán ký hiệu sigK' PA và trongV có một thuật toán kiểm thử verK'' : PxA {đúng, sai} thỏa mãn điều kiệnsau đây với mọi thông báo x P và mọi chữ ký yA:
verK''(x,y) = đúng y = sigK' (x).
Với sơ đồ trên, mỗi chủ thể sở hữu một bộ khóa K = (K', K''), công bốkhóa K'' để mọi người có thể kiểm thử chữ ký của mình và giữ bí mật khóa K'
để thực hiện chữ ký trên các thông báo gửi đi.
Các hàm verK'' và sigK' (x) (khi biết K' ) phải tính được một cách dễ dàng,nhưng hàm sigK' (x) phải khó tính được, nếu không biết K' Đây là điều kiệnbảo mật cho việc ký cũng như chống giả mạo chữ ký.
Một sơ đồ chữ ký không thể an toàn vô điều kiện, vì kẻ thứ ba có thểkiểm tra tất cả các chữ ký số đã có trên bức điện x, nhờ dùng thuật toánverK''(x,y) công khai, cho đến tìm thấy một chữ ký đúng Vì thế, nếu có đủthời gian kẻ thứ ba luôn có thể giả mạo chữ ký của người gửi Do vậy, mụcđích của chữ ký số là tìm các lược đồ chữ ký, sao cho kẻ thứ ba không đủ thờigian thực tế để thử (an toàn tính toán).
Ta sẽ xét hai sơ đồ chữ ký số là sơ đồ chữ ký số ElGamal và trọng tâmlà sơ đồ chữ ký số RSA
1.2.3.2 Sơ đồ chữ ký số Elgaman
Sơ đồ chữ ký Elgamal đề xuất năm 1985 Bản cải tiến của sơ đồ nàyđã được Viện Tiêu chuẩn và Công Nghệ Quốc Gia Mỹ (NIST) chấp nhận làmchữ kí số [1] Sơ đồ Elgamal (E) được thiết kế với mục đích dành riêng chochữ kí số, khác sơ đồ RSA dùng cho cả hệ thống mã khoá công khai lẫn chữkí số
Sơ đồ E không giống như hệ thống mã khoá công khai Elgamal Điều này cónghĩa là có nhiều chữ kí hợp lệ trên bức điện cho trước bất kỳ Thuật toán xácminh phải có khả năng chấp nhận bất kì chữ kí hợp lệ khi xác thực Sơ đồ E.
Trang 26được mô tả dưới đây:
Nếu chữ kí được thiết lập đúng khi xác minh sẽ thành công vì :βγ γδ ≡ αa γ αkγ(mod p) ≡ αx(mod p)a γ αa γ αkγ(mod p) ≡ αx(mod p)kγ(mod p) ≡ αa γ αkγ(mod p) ≡ αx(mod p)x(mod p)
là ở đây ta dùng hệ thức:a γ+ k δ ≡ x (mod p-1)
Định nghĩa 1.2.3.2 : Cho p là số nguyên tố sao cho bài toán log rời rạc trên Zplà khó Giả sử αa γ αkγ(mod p) ≡ αx(mod p) Zn là phần tử nguyên thuỷ p = Zp*, a = Zp*x Zp-1∈ Zn là phần tử nguyên thuỷ p = Zp*, a = Zp*x Zp-1
Định nghĩa :
K ={(p,αa γ αkγ(mod p) ≡ αx(mod p) ,a,β ):β ≡ αa γ αkγ(mod p) ≡ αx(mod p)a(mod p)}.
Giá trị p,αa γ αkγ(mod p) ≡ αx(mod p) ,β là công khai, còn a là mật.
Với K = (p,αa γ αkγ(mod p) ≡ αx(mod p) ,a,β ) và một số ngẫu nhiên (mật) k Zp-1.∈ Zn là phần tử nguyên thuỷ p = Zp*, a = Zp*x Zp-1Định nghĩa :
Sigk(x,y) =(γ ,δ),
trong đó γ = αa γ αkγ(mod p) ≡ αx(mod p)k mod pvà δ =(x-aγ) k-1 mod (p-1)
Với x,γ Zp và δ Zp-1 , ta định nghĩa : ∈ Zn là phần tử nguyên thuỷ p = Zp*, a = Zp*x Zp-1 ∈ Zn là phần tử nguyên thuỷ p = Zp*, a = Zp*x Zp-1
Tommy tính chữ kí bằng cách dùng cả giá trị mật a ( là một phần của khoá)lẫn số ngẫu nhiên mật k (dùng để kí lên bức điện x ) Việc xác minh có thựchiện duy nhất bằng thông báo tin công khai Chúng ta xét một ví dụ minh hoạ.
Thí dụ1: Giả sử cho p = 467, αa γ αkγ(mod p) ≡ αx(mod p) =2,a = 127; khi đó:
β = αa γ αkγ(mod p) ≡ αx(mod p)a mod p = 2127 mod 467 = 132
Nếu Tommy muốn kí lên bức điện x = 100 và chọn số ngẫu nhiên k =213(chú ý là UCLN(213,466) =1 và 213-1 mod 466 = 431 Khi đó γ =2213 mod467 = 29 và δ =(100-127 × 29) 431 mod 466 = 51.
Bất kỳ ai củng có thể xác minh chữ kí bằng các kiểm tra :13229 2951 ≡ 189 (mod 467)
Và 2100 ≡ 189 (mod 467)
Trang 27Vì thế chữ kí là hợp lệ.
-Độ an toàn của chữ ký Elgamal
Xét độ mật của sơ đồ chữ kí E Giả sử, Oscar thử giả mạo chữ kí trênbức điện x cho trước không biết a Nếu Oscar chọn γ và sau đó thử tìm giá trịδ tương ứng, anh ta phải tính logarithm rời rạc logγ αa γ αkγ(mod p) ≡ αx(mod p)xβ-γ Mặt khác, nếuđầu tiên ta chọn δ và sau đó thử tìm γ và thử giải phương trình:
βγ γδ ≡ αa γ αkγ(mod p) ≡ αx(mod p)x(mod p) để tìm γ Đây là bài toán chưa có lời giải nào: Tuy nhiên,dường như nó chưa được gắn với bài toán đã nghiên cứu kĩ nào nên vẫn cókhả năng có cách nào đó để tính δ và γ đồng thời để (δ, γ) là một chữ kí Hiệnthời không ai tìm được cách giải song cũng không ai khẳng định được rằng nókhông thể giải được
Nếu Oscar chọn δ và γ và sau đó tự giải tìm x, anh ta sẽ phải đối mặtvới bài toán logarithm rời rạc Vì thế Oscar không thể kí một bức điện ngẫunhiên bằng biện pháp này Tuy nhiên, có một cách để Oscar có thể kí lên bứcđiện ngẫu nhiên bằng việc chọn γ, δ và x đồng thời: giả thiết i và j là các sốnguyên 0 ≤ i ≤ p-2, 0 ≤ j ≤ p-2 và UCLN(j,p-2) = 1 Khi đó thực hiện các tínhtoán sau:
γ = αa γ αkγ(mod p) ≡ αx(mod p)i βj mod pδ = -γ j-1 mod (p-1)x = -γ i j-1 mod (p-1)
trong đó j-1 được tính theo modul (p-1) (ở đây đòi hỏi j nguyên tố cùng nhauvới (p-1) Ta nói rằng (γ, δ )là chữ kí hợp lệ của x Điều này được chứngminh qua việc kiểm tra xác minh :
βγ γδ ≡ αa γ αkγ(mod p) ≡ αx(mod p)x(mod p)
Ta sẽ minh hoạ bằng một ví dụ:
Thí dụ 2: Giống như ví dụ trước cho p = 467, αa γ αkγ(mod p) ≡ αx(mod p) = 2, β =132 Giả sữ Oscar
chọn i = 99, j = 179; khi đó j-1 mod (p-1) = 151 Anh ta tính toán như sau:
Trang 28γ = 299132197 mod 467 = 117 δ =-117 ×151 mod 466 = 51 x = 99 × 41 mod466 = 331
Khi đó (117, 41) là chữ kí hợp lệ trên bức điện 331 như thế đã xác minh quaphép kiểm tra sau:
132117 11741 ≡ 303 (mod 467)và 2331 ≡ 303 (mod 467)Vì thế chữ kí là hợp lệ.
Sau đây là kiểu giả mạo thứ hai trong đó Oscar bắt đầu bằng bức điện đượcTommy kí trước đây Giả sử (γ, δ ) là chữ kí hợp lệ trên x Khi đó Oscar cókhả năng kí lên nhiều bức điện khác nhau Giả sử i, j, h là các số nguyên, 0 ≤h, i, j ≤ p-2 và UCLN (h γ - j δ, p-1) = 1 Ta thực hiện tính toán sau:
µ = δλ(hγ -jδ)-1 mod (p-1)x, = λ(hx+iδ ) -1 mod (p-1),
trong đó (hγ -jδ)-1 được tính theo modulo (p-1) Khi đó dễ dàng kiểm trađiệu kiện xác minh :
β λ λµ ≡ αa γ αkγ(mod p) ≡ αx(mod p)x’ (mod p)
vì thế (λ, µ)là chữ kí hợp lệ của x’.
Cả hai phương pháp trên đều tạo các chữ kí giả mạo hợp lệ song không xuấthiện khả năng đối phương giả mạo chữ kí trên bức điện có sự lựa chọn củachính họ mà không phải giải bài toán logarithm rời rạc, vì thế không có gìnguy hiểm về độ an toàn của sơ đồ chữ kí Elgamal.
Cuối cùng, ta sẽ nêu vài cách có thể phá được sơ đồ này nếu không áp dụngnó một cách cẩn thận Trước hết, giá trị k ngẫu nhiên được dùng để tính chữkí phải giữ kín không để lộ vì nếu k bị lộ, khá đơn giản để tính :
a = (x-k γ )δ-1 mod (p-1).
Dĩ nhiên, một khi a bị lộ thì hệ thống bị phá và Oscar có thể dễ dang giả mạo
Trang 29chữ kí Một kiểu dung sai sơ đồ nữa là dùng cùng giá trị k để kí hai bức điệnkhác nhau điều này cùng tạo thuận lợi cho Oscar tính a và phá hệ thống Sauđây là cách thực hiện Giả sử (γ, δ1) là chữ kí trên x1 và (γ, δ2) là chữ kí trênx2 Khi đó ta có:
Như vậy
αa γ αkγ(mod p) ≡ αx(mod p)x1-x2 ≡ αa γ αkγ(mod p) ≡ αx(mod p)δ1-δ2 (modp ).
Nếu viết γ = αa γ αkγ(mod p) ≡ αx(mod p)k, ta nhận được phương trình tìm k chưa biết sau.αa γ αkγ(mod p) ≡ αx(mod p)x1-x2 ≡ αa γ αkγ(mod p) ≡ αx(mod p)k(δ1 -δ2) (mod p)
tương đương với phương trìnhx1- x2 ≡ k( δ1- δ2) (mod p-1).
Bây giờ giả sử d =UCLN(δ1- δ2, p-1) Vì d | (p-1) và d | (δ1-δ2) nên suy ra d| (x1- x2) Ta định nghĩa:
Phương trình này cho d giá trị có thể của k, k = x’ ε +i p’ mod p
với i nào đó, 0 ≤ i ≤ d-1 Trong số d giá trị có có thế này, có thể xác định đượcmột
giá trị đúng duy nhất qua việc kiểm tra điều kiệnγ ≡ αa γ αkγ(mod p) ≡ αx(mod p)k (mod p)
Trang 301.2.3.3 Sơ đồ chữ ký RSA
Định nghĩa 1.2.3.3: Sơ đồ chữ ký RSA
Sơ đồ chữ ký RSA là một bộ năm S= (P, A, K, S, V )
Trong đó: P =A = Zn với n = p.q là tích của hai số nguyên tố lớn p, q
K là tập các cặp khóa K = (K', K'') với K' = a và K'' = (n, b), a và b là cặp haisố thuộc Z*
n thỏa mãn: a.b 1 (mod(n)) Các hàm sigK' và verK'' được xácđịnh như sau:
sigK' (x) = xa mod n
verK''(x, y) = đúng x yb(modn)
Ta dễ dàng chứng minh được sơ đồ định nghĩa như trên là đúng đắn, vì vớimọi x P và mọi chữ ký y A Ta có verK''(x, y) = đúng y = sigK' (x) Tuy hai vấn đề xác nhận và bảo mật theo sơ đồ RSA bề ngoài giống nhau,nhưng nội dung hoàn toàn khác nhau
Khi Andy gửi thông báo x cho Tommy, để Tommy có căn cứ xác nhận đúnglà thông báo do Andy gửi, Andy phải gửi kèm theo chữ ký sigK'(x), tức Andygửi cho Tommy (x, sigK' (x)) trong thông tin gửi đi Ở đây, thông tin x hoàntoàn không được giữ bí mật.
Nếu chúng ta sử dụng sơ đồ mật mã RSA, khi nhận được một bản mật mãek(x) từ Andy, Tommy chỉ biết rằng thông báo x được bảo mật, chứ không cógì để xác nhận x là của Andy gửi Nếu muốn thông tin x vừa có tính bảo mậtvà vừa có tính xác thực, thì phải sử dụng đồng thời cả mã hóa và xác thựcbằng chữ ký số.
Trang 31(a là khóa bí mật của Tommy) Trong trường hợp không cần giữ bí mật x,Tommy gửi cặp (x,y) cho Andy.
2 Nhận được thông báo x và chữ ký số y, Andy kiểm tra đẳng thức: x= yb mod n (b là khoá công khai của Tommy) Nếu có đẳng thức, Andy côngnhận y là chữ ký trên x của Tommy Nếu không có đẳng thức, x không phảicủa Tommy gửi Toà án cũng căn cứ vào kết quả kiểm tra đẳng thức trên đểphán quyết
Rõ ràng, Tommy là người duy nhất có thể tạo ra chữ ký này, vì a là bí mật dođó sigK' là bí mật Một người bất kỳ đều có thể kiểm tra chữ ký của Tommytrên x, bằng cách dùng khóa công khai b của Tommy.
3 Nếu muốn hệ truyền tin của ta vừa có tính bảo mật vừa có tính xácnhận, thì phải sử dụng đồng thời cả hai hệ mật mã và xác nhận (bằng chữ ký).
Giả sử, Andy tính toán có chữ ký là y = sigAndy(x), sau đó mã cả x và y bằnghàm mã khóa công khai eTommy của Tommy, khi đó Andy nhận được z =eTommy(x,y) Bản mã z được truyền tới Tommy Khi Tommy nhận được z,trước hết phải giải mã hàm dTommy, để nhận được (x,y) Sau đó, Tommy dùng
hàm xác minh công khai của Andy, để kiểm tra xem verAndy(x,y) có bằng Truehay không.
Nếu đầu tiên Andy mã x rồi sau đó mới kí lên bản mã:
y = sigAndy(eTommy(x))
Andy sẽ truyền cặp (x,y) tới Tommy Tommy giải mã z, nhận được x và sau
đó xác minh chữ ký y trên x nhờ dùng verAndy Vấn đề tiềm ẩn là, nếu Oscarnhận được cặp (x,y) kiểu này, anh ta có thể thay chữ ký y của Andy bằng chữký của chính mình.
y’ = sigOscar(eTommy(x))
Chú ý: Oscar có thể kí bản mã eTommy(x), ngay cả khi không biết bản rõ x Khiđó, nếu Oscar truyền (z,y’) đến Tommy, chữ ký của Oscar được Tommy xác
Trang 32minh bằng verOscar và Tommy có thể suy ra, bản rõ x xuất phát từ Oscar Dokhó khăn này, hầu hết người sử dụng được khuyến nghị nên kí trước khi mã.
1.3 Kết luận chương 1
Chương 1 đã nêu những kiến thức cơ bản về mật mã học, Các yêu cầu bảomật thông tin hiện nay với mục đích an toàn bảo mật là bảo vệ các thông tinvà tài nguyên, Các hệ thống mã hóa đối xứng và công khai Ngoài ra còn trìnhbày về chữ ký số, quá trình ký, xác thực chữ ký và một số lược đồ chữ ký số.
Trang 33CHƯƠNG 2
BÀI TOÁN SƠ ĐỒ ĐỊNH DANH MẬT VÀ XÁC NHẬN THÔNG TIN
Trong chương trước ta đã thấy các kỹ thuật mật mã có thể được ứngdụng để xây dựng nhiều giải pháp an toàn cho vấn đề xác nhận các thôngbáo cùng với người gửi trên các mạng truyền tin công cộng Trong chươngnày ta sẽ xét việc ứng dụng cũng các kỹ thuật đó cho bài toán xây dựng cácsơ đồ xưng danh và xác nhận danh tính, cũng là một bài toán quan trọng vàthường gặp trong mọi hoạt động giao lưu thông tin, đặc biệt giao lưu quamạng.
2.1 Tổng quan về bài toán xưng danh
Việc xưng danh và xác nhận danh tính của một người thường làcần thiết trong những tình huống như:
- Để rút tiền từ các máy rút tiền tự động (ATM), ta cần xưng danh bằngcách dùng một thẻ rút tiền cùng với một số PIN (số xưng danh cánhân) của mình
- Để mua hàng hoặc thanh toán một khoản tiền qua mạng điện thoại, tacần thông báo số thẻ tín dụng (cùng ngày hết hạn) của mình.
- Để truy nhập vào một máy tính trên một mạng, ta cần khai báo tên ngườidùng cùng mật hiệu (password) của mình v v
Trong thực tế cuộc sống, việc xưng danh theo thói quen thường không đòihỏi tính an toàn, chẳng hạn các số PIN, mật khẩu thường không có gì đểbảo đảm là được giữ kín, người ngoài không biết được Tuy nhiên, cuộcsống càng ngày càng được tin học hoá, phần lớn các giao dịch được thựchiện trên các mạng tin học, vậy cần giải pháp bảo đảm tính an toàn trongcác khâu xưng danh và xác nhận danh tính
Mục tiêu an toàn của việc xưng danh là bảo đảm sao cho khi “nghe”một chủ thể A xưng danh với một chủ thể B, bất kỳ một ai khác A cũng
Trang 34không thể sau đó mạo nhận mình là A, kể cả chính B cũng không thể mạoxưng mình là A sau khi được A xưng danh với mình Nói cách khác, Amuốn chứng minh để được đối tác xác nhận danh tính của mình mà khôngđể lộ bất cứ thông tin nào về việc chứng minh danh tính đó.
Việc xưng danh thường phải thông qua một giao thức hỏi - đáp nàođó, qua giao thức đó để B có thể xác nhận danh tính của A, B đặt cho A mộtcâu hỏi; A phải trả lời, trong trả lời đó A phải chứng tỏ cho B biết là A có sởhữu một bí mật riêng A mới có, điều đó thuyết phục B tin chắc rằng người trảlời đúng là A và do đó xác nhận danh tính của A Vấn đề khó ở đây là A phảilàm cho B biết là A có sở hữu một bí mật chỉ riêng A mới có, nhưng lạikhông được lộ cho B biết cái bí mật riêng A mới có đó là cái gì Mặt khác,để cho việc “A có sở hữu một bí mật của riêng A” đó là đáng tin (dù là khôngbiết) thì cần được chứng thực bởi một bên thứ ba nào đó, chẳng hạnbởi một cơ quan được uỷ thác (trusted authority) Cơ quan được uỷ thác nàycũng không biết bản thân bí mật của A, nhưng biết và chứng nhận A là chủsở hữu của một yếu tố công khai mà việc A sử dụng nó chứng tỏ A có cái bímật nói trên.
2.2 Sơ đồ xưng danh Okamoto
Sơ đồ Okamoto có thể chứng minh được là an toàn nếu giả thiết logarithm rờirạc trong Zp không giải được [5]
Để thiết lập sơ đồ Ta chọn p và q, hai phần tử 1 và 2 Zp đều có bậcq Giá trị c =log αa γ αkγ(mod p) ≡ αx(mod p)1αa γ αkγ(mod p) ≡ αx(mod p)2 được giữ bí mật kể cả đối với Andy.Ta sẽ giả thiết rằng,không ai có thể giải được (thậm chí Andy và Elly liên minh với nhau) để tínhra giá trị c Như trước đây ,ta chọn sơ đồ chữ kí số và hàm hash Dấu xácnhận mà ta đã phát cho Andy được xây dựng như mô tả như sau:
1 Ta thiết lập danh tính của Andy và phát chuỗi định danh ID(Andy).2 Andy chọn bí mật hai số mũ ngẫu nhiên a1,a2 trong đó 0≤a1,a2≤q-1
Trang 35C(Andy)=(ID(Andy),v,s)cho Andy
Dưới đây là một ví dụ về sơ đồ Okamoto.
dụ 4 : [1]
Cũng như ví dụ trước , ta lấy p=88667,q=1031,t=10.Cho αa γ αkγ(mod p) ≡ αx(mod p)1=58902 vàαa γ αkγ(mod p) ≡ αx(mod p)2=73611(cả αa γ αkγ(mod p) ≡ αx(mod p) 1 và αa γ αkγ(mod p) ≡ αx(mod p)2 đều có bậc q trong Zp) Giả sử a1=846,a2=515, khi đóv=13078.
Giả sử Andy chọn k1=899,k2=16,khi đó Nếu Tommy đưa rayêu cầu r = 489 thì Andy sẽ trả lời y1=131 và y2=287 Tommy sẽ xác minhthấy :
58902 13178611 2871378498=14574(mod 88667)
Vì thế Tommy chấp nhận bằng chứng của Andy về danh tính của cô.
Việc chứng minh giao thức là đầy đủ không khó (tức Tommy sẽ chấpnhận bằng chứng về danh tính của cô)
Phép chứng minh về tính an toàn rất tinh tế Andy tự định danh với Elly trongnhiều thời gian đa thức thông qua thực hiện giao thức Khi đó ta giả thiết rằngElly có khả năng nghiên cứu một số thông tin nào về các số mũ của Andythông qua việc tham gia vào giao thức
Trang 36Định lý 2.1 Giả sử Elly biết a giá trị mà nhờ nó có xác suất thàng
công 1/2t-1 khi giả danh Andy trong giao thức xác minh khi đó, Elly có thểtính các giá trị b1 và b2 trong thời gian đa thức sao cho [2]:
v=αa γ αkγ(mod p) ≡ αx(mod p)1-b1αa γ αkγ(mod p) ≡ αx(mod p)2-b2 mod pChứng minh:
Với phần trên 2t yêu cầu có thể r, Elly có thể tính các giá trị y1, y2, z1,z2, r và s với r≠ s và:
1y1αa γ αkγ(mod p) ≡ αx(mod p)2y2vr αa γ αkγ(mod p) ≡ αx(mod p)1 z1αa γ αkγ(mod p) ≡ αx(mod p)2z2vs(mod p)Ta định nghĩa :b1=(y1-z1)(r-s)-1mod q
Và b2=(y2-z2)(r-s)-1 mod qKhi đó ta dễ dàng kiểm tra thấy rằng:
v αa γ αkγ(mod p) ≡ αx(mod p)1-b1αa γ αkγ(mod p) ≡ αx(mod p)2-b2(mod p)
như mong muốn.
Bây giờ ta tiếp tục chỉ ra cách Andy và Elly cùng tính giá trị c.
Định lý 2.2 : Giả sử Elly biết giá trị (mà với nó có xác suất giả danh Andy
thành công là ) trong giao thức xác minh Khi đó, Andy và Ellycó thể cùng nhau tính log trong thời gian đa thức với xác suất 1-1/q [2].
Trang 37vì thế αa γ αkγ(mod p) ≡ αx(mod p)1a1-b1 2b2-a2 (mod p)
Khi Andy muốn chứng minh danh tính của cô trước Tommy, cô thựchiện giao thức như sau:
1.Andy chọn các số ngẫu nhiên k1, k2,0 k1, k2 ≤ q-1 và tính:
=αa γ αkγ(mod p) ≡ αx(mod p)1k1αa γ αkγ(mod p) ≡ αx(mod p)2k2(mod p)
2.Andy gửi dấu xác nhận của cô C(Andy)=(ID(Andy),v,s) và cho Tommy.
3.Tommy xác minh chữ kí của TA bằng cách kiểm tra xem có thỏa mãn đồngdư thức :
verTA(ID(Andy),v,s)=true4.Tommy chọn số ngẫu nhiên r1 r2 và đưa nó cho Andy.5.Andy tính:
y1=k1+a1 r mod qvà y2=k2+a2 r mod qvà đưa y1 và y2 cho Tommy.6.Tommy xác minh xem:
αa γ αkγ(mod p) ≡ αx(mod p)1y1αa γ αkγ(mod p) ≡ αx(mod p)2y2vr (mod p) hay không.
Giả sử rằng (a1, a2) ≠ (b1, b2) khi đó (a1 – b1) tồn tại và logarithm rời rạc:c=logαa γ αkγ(mod p) ≡ αx(mod p)1 αa γ αkγ(mod p) ≡ αx(mod p)2 = (a1 – b1) (b2 - b1 )-1 mod q
có thể tính được trong thời gian tối đa.
Phần còn lại là xem xét xác suất để (a1, a2) = (b1, b2) Nếu xảy ra điều này thìgiá trị c không thể tính theo mô tả ở trên Tuy nhiên ta sẽ chỉ ra rằng (a1, a2) =(b1, b2) sẽ chỉ xảy ra với xác suất 1/q, vì thế giao thức nhờ đó Andy và Ellytính được c hầu như chắc chắn thành công.
Định nghĩa 2.2 :
Trang 38A = {(a1’, a2’) € Zq x Zq : αa γ αkγ(mod p) ≡ αx(mod p)1 –a1’ αa γ αkγ(mod p) ≡ αx(mod p)2 -a2’ αa γ αkγ(mod p) ≡ αx(mod p)1 –a1 αa γ αkγ(mod p) ≡ αx(mod p)2 -a2 (mod q)}nghĩa là A gồm tất cả các cặp được sắp có thể và chúng có thể là các số mũcủa Andy Xét thấy rằng :
A = {(a1 –cθ, a2 + cθ) : 0 € Zq (mod q)}Trong đó c=logαa γ αkγ(mod p) ≡ αx(mod p)1 αa γ αkγ(mod p) ≡ αx(mod p)2 Như vậy A chứa q được sắp:
Cặp được sắp (b1, b2) do Elly tính chắc chắn ở trong tập A Ta sẽ chỉ ra rằng,giá trị của cặp (b1, b2) độc lập với cặp (a1, a2) chứa các số mũ mật của Andy.Vì (a1, a2) được Andy chọn đầu tiên một cách ngẫu nhiên nên xác suất để (a1,a2)=(b1, b2) là 1/q.
Như vậy (b1, b2) là “độc lập” với (a1, a2) Cặp (a1, a2) của Andy là một trong qcặp được sắp có thể trong A và không có thông tin nào về nó ( là cặp “đúng”)đã bị Andy để lộ cho Elly biết khi cô xưng danh với Elly (Một hình thức,Elly biết một cặp trong A chứa số mũ của Andy song cô ta không biết nó làcặp nào)
Ta xét thông tin được trao đổi trong giao thức định danh Về cơ bản trong
mỗi lần thực hiện giao thức, Andy chọn , Elly chọn r và Andy để lộ y1 và y2
sao cho :
= αa γ αkγ(mod p) ≡ αx(mod p)1y1 αa γ αkγ(mod p) ≡ αx(mod p)2y2 vt (mod q)
Ta nhớ lại rằng, Andy tính :
y1 = k1 + a1r mod qVà
y2 = k2 + a2r mod qTrong đó
yk = αa γ αkγ(mod p) ≡ αx(mod p)1k1 αa γ αkγ(mod p) ≡ αx(mod p)2k2 mod q
Chú ý rằng k1 và k2 không bị lộ (mà a1 và a2 cũng không).