Xem mẫu

  1. Hội Thảo Quốc Gia 2015 về Điện tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015) PHÁT TRIỂN LƯỢC ĐỒ CHỮ KÝ SỐ MÙ Nguyễn Tiền Giang, Nguyễn Đức Thụy, Lưu Hồng Dũng. Cục Công Nghệ Thông Tin – Bộ QP, Trường Cao Đẳng Kinh Tế - Kỹ Thuật Thành Phố Hồ Chí Minh, Khoa Công Nghệ Thông Tin. Học Viện Kỹ Thuật Quân Sự. Email: ntgiang77@gmail.com, thuyphulam2013@gmail.com, luuhongdung@gmail.com Tóm tắt— Bài báo đề xuất xây dựng 2 lược đồ chữ ký số mù Lược đồ chữ ký số mù RSA được phát triển từ lược đồ chữ từ việc phát triển lược đồ chữ ký số trên cơ sở bài toán ký số RSA [6]. Lược đồ chữ ký số mù RSA có thể mô tả như logarithm rời rạc. Các lược đồ mới đề xuất ở đây có mức sau: Giả sử A là người ký có khóa bí mật (d), công khai (n,e) độ an toàn cao hơn về khả năng chống tấn công làm lộ được hình thành theo lược đồ chữ ký RSA. B là người tạo ra nguồn gốc của bản tin được ký so với một số lược đồ đã bản tin M và yêu cầu A ký lên M (người yêu cầu ký). Để che biết trước đó trong thực tế. dấu danh tính của B sau khi bản tin M đã được ký, thủ tục hình thành chữ ký (“ký mù”) được thực hiện qua các bước như Từ khóa- Digital Signature, Blind Signature, Digital sau: Signature Scheme, Blind Signature Scheme. Bước 1: B làm “mù” bản tin M bằng cách chọn ngẫu nhiên một giá trị k thỏa mãn: 1 < k < n và k nguyên tố cùng nhau I. ĐẶT VẤN ĐỀ với n (gcd(k,n) = 1), sau đó B tính: m' = m × k mod n , ở e Khái niệm chữ ký số mù được đề xuất bởi D. Chaum vào đây: m = H (M ) là giá trị đại diện của bản tin cần ký M và năm 1983 [1], đây là một loại chữ ký số được sử dụng để xác H(.) là hàm băm kháng va chạm. B gửi bản tin đã được làm thực tính toàn vẹn của một bản tin điện tử và danh tính của mù (m’) cho A. người ký, nhưng không cho phép xác thực nguồn gốc thực sự Bước 2: A sẽ ký lên m’ bằng thuật toán ký của lược đồ của bản tin được ký. Nói cách khác, loại chữ ký này cho phép RSA: s' = ( m' ) mod n rồi gửi lại s’ cho B. d ẩn danh người tạo ra bản tin được ký. Trong [2-4] đã chỉ ra Bước 3: B “xóa mù” s’ và nhận được chữ ký s như sau: ứng dụng của loại chữ ký này khi cần bảo vệ tính riêng tư của các khách hàng trong các hệ thống thanh toán điện tử hay vấn s = s'×k −1 mod n . đề ẩn danh của cử tri trong việc tổ chức bầu cử trực tuyến [5]. Việc kiểm tra tính hợp lệ của s và do đó là tính toàn vẹn Một điểm cần chú ý ở đây là, với các loại chữ ký số thông của M được thực hiện như ở lược đồ RSA. Vấn đề ở đây là, thường thì người ký cũng chính là người tạo ra bản tin được một đối tượng bất kỳ có thể kiểm tra tính hợp lệ của s, từ đó khẳng định tính toàn vẹn của M và danh tính người ký bằng ký, còn với chữ ký số mù thì người ký và người tạo ra bản tin thuật toán kiểm tra RSA, nhưng không thể xác định được bản được ký là 2 đối tượng hoàn toàn khác nhau. Đây là tính chất tin M là do ai tạo ra. Nghĩa là danh tính của B đã được giấu đặc trưng của chữ ký số mù và cũng là một tiêu chí quan trọng kín. để đánh giá mức độ an toàn của loại chữ ký số này. 2.1.2. Tấn công làm lộ nguồn gốc bản tin được ký Trong [1-5] các tác giả đã đề xuất một số lược đồ chữ ký số Với lược đồ chữ ký số mù RSA như đã mô tả ở trên, việc mù ứng dụng khi cần bảo vệ tính riêng tư của các khách hàng xác định danh tính của người tạo ra bản tin được ký M là có trong các hệ thống thanh toán điện tử hay vấn đề ẩn danh của thể thực hiện được. Bởi vì tại thời điểm ký, người ký (A) chỉ cử tri trong việc tổ chức bầu cử trực tuyến. Tuy nhiên, điểm không biết nội dung của M, nhưng danh tính của B thì A hoàn yếu chung của các lược đồ trên là không có khả năng chống lại toàn biết rõ, điều này là hiển nhiên vì A chỉ ký khi biết rõ B là kiểu tấn công làm lộ nguồn gốc của bản tin được ký, vì thế khả ai. Giả sử danh tính của B được ký hiệu là IDB, để xác định năng ứng dụng của các lược đồ này trong thực tế là rất hạn chế. danh tính của người yêu cầu ký từ bản tin M và chữ ký s tương Nội dung bài báo tập trung phân tích điểm yếu có thể tấn công ứng sau thời điểm ký (khi M và s đã được công khai), ở mỗi làm lộ nguồn gốc bản tin được ký của một số lược đồ chữ ký số lần ký chỉ cần A lưu trữ giá trị s’ và IDB trong một cơ sở dữ mù đã được công bố, từ đó đề xuất xây dựng một lược đồ mới liệu. Từ đó, việc xác định danh tính của người yêu cầu ký - có độ an toàn cao hơn về khả năng giữ bí mật nguồn gốc của IDB từ bản tin được ký M và chữ ký s là hoàn toàn có thể thực bản tin được ký có thể đáp ứng các yêu cầu mà thực tế đặt ra. hiện được bằng một thuật toán như sau: Thuật toán 1.1: II. TẤN CÔNG LÀM LỘ NGUỒN GỐC BẢN TIN ĐỐI Input: (M,s), {(si’, IDBi)| i=0,1,2,…N}. VỚI MỘT SỐ LƯỢC ĐỒ CHỮ KÝ SỐ MÙ. Output: IDBi. 2.1. Tấn công lược đồ chữ ký số mù RSA [1]. m ← H (M ) , i = 0 2.1.1. Lược đồ chữ ký số mù RSA 112
  2. Hội Thảo Quốc Gia 2015 về Điện tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015) [2]. select: ( si ' , IDBi ) Output: IDBi. [1]. m ← H (M ) , i = 0 [3]. k ∗ ← si '×m − d mod n [2]. select: ( Ri ' , mi ' , si ' , IDBi ) [4]. if gcd(k ∗ , n) ≠ 1 then −1 [3]. α ← mi '×m −1 × r × (R') mod q [4.1]. i ← i + 1 [4.2]. goto [2] ( [4]. β ← m −1 × s − si '×r × (R ' )−1 mod q ) [5]. s ∗ ← si '×(k ∗ ) −1 mod n [5]. R ← (Ri ' ) × g mod p α β [6]. if ( s ≠ s ) then ∗ [6]. r ∗ ← R mod q [6.1]. i ← i + 1 [7]. if(r ∗ ≠ r ) then [6.2]. goto [2] [7.1]. i ← i + 1 [7]. return IDBi [7.2]. goto [2] Nhận xét: [8]. return IDBi Từ Thuật toán 1.1 cho thấy, nếu N không đủ lớn thì việc Nhận xét: xác định được danh tính của người yêu cầu ký (người tạo ra Tương tự như với lược đồ chữ ký mù RSA, từ Thuật toán bản tin được ký) là hoàn toàn có thể thực hiện được. Nói cách 1.2 cho thấy, nếu N không đủ lớn thì việc xác định được danh khác, lược đồ chữ ký số mù RSA là không an toàn nếu số tính của người yêu cầu ký (người tạo ra bản tin được ký) là lượng bản tin được ký không đủ lớn. hoàn toàn có thể thực hiện được. Nói cách khác, lược đồ chữ 2.2. Tấn công lược đồ chữ ký số mù DSA ký số mù DSA cũng sẽ không an toàn xét theo khía cạnh 2.2.1. Lược đồ chữ ký số mù DSA chống tấn công làm lộ nguồn gốc bản tin nếu số lượng bản tin Từ lược đồ chữ ký số DSA [8], nhóm tác giả Jan L. được ký không đủ lớn. Camenisch, Jean-Marc Piveteau, Markus A. Stadler đề xuất 2.3. Tấn công lược đồ chữ ký số mù Nyberg-Rueppel một lược đồ chữ ký số mù [8] với thủ tục hình thành tham số 2.3.1. Lược đồ chữ ký số Nyberg-Rueppel hệ thống bao gồm một số nguyên tố p, một số nguyên tố q là Tham số hệ thống của lược đồ chữ ký số do K. Nyberg và ước của (p-1) và phần tử sinh g ∈ Z *p có bậc là q. Người ký R. A. Rueppel đề xuất [7] được lựa chọn tương tự như ở lược có khóa bí mật x ∈ Z q và khóa công khai tương ứng là đồ DSA. Để ký lên một bản tin M có giá trị đại diện m ∈ Z p , y = g mod p . Thủ tục hình thành chữ ký “mù” bao gồm các x người ký chọn ngẫu nhiên một giá trị k ∈ Z q và tính: bước như sau: r = m × g k mod p 1. a) Người ký (A) chọn một giá trị k ∈ Z q và tính s = k + x.r mod q R ' = g mod p k Chữ ký lên bản tin M ở đây là cặp (r,s). Chữ ký được coi là hợp lệ nếu thỏa mãn phương trình kiểm tra: b) A kiểm tra nếu gcd( R ' , q ) ≠ 1 thì thực hiện lại bước a). Ngược lại, A gửi R cho người yêu cầu ký (B). m = y − s × g r × r mod p 2. a) Người yêu cầu ký B chọn 2 giá trị α , β ∈ Z q và tính Ở đây m là giá trị đại diện của bản tin cần thẩm tra M: m = H (M ) , với H(.) là hàm băm. R = (R' ) × g β mod p . α 2.3.2. Lược đồ chữ ký số mù Nyberg-Rueppel b) B kiểm tra nếu gcd( R ' , q ) = 1 thì tính tiếp giá trị Cũng nhóm tác giả Jan L. Camenisch, Jean-Marc m' = α × m × R '×R −1 mod q rồi gửi m’ cho A. Nếu Piveteau, Markus A. Stadler [8] đã đề xuất một lược đồ chữ ký điều kiện chỉ ra không thỏa mãn, B thực hiện lại bước số mù được phát triển từ lược đồ chữ ký Nyberg-Rueppel với a). thủ tục hình thành chữ ký “mù” bao gồm các bước như sau: 3. Người ký A tính giá trị s ' = ( k × m '+ x × R ' ) mod q rồi 1. Người ký (A) chọn một giá trị k ∈ Z q và tính gửi cho B. r ' = g k mod p rồi gửi cho người yêu cầu ký (B). 4. Người yêu cầu ký B tính các thành phần (r,s) của chữ ký: r = R mod q , s = ( s '× R × (R ' )−1 + β × m ) mod q . 2. a) B chọn ngẫu nhiên giá trị α ∈ Z q , β ∈ Z q* và tính Thủ tục kiểm tra tính hợp lệ của chữ ký hoàn toàn tương r = m × g α × (r ' ) mod p , m' = r × β −1 mod q . β tự như ở lược đồ chữ ký DSA. 2.2.2. Tấn công làm lộ nguồn gốc bản tin được ký b) B kiểm tra nếu m' ∈ Z q* thì gửi m’ cho người ký A. Để tấn công làm lộ nguồn gốc bản tin được ký M, người Ngược lại, B thực hiện lại bước a). ký A cần lưu trữ giá trị các tham số {R’,m’,s’} và IDB ở mỗi 3. A tính giá trị s' = (k + x × m' ) mod q rồi gửi cho B. lần ký. A có thể xác định được danh tính của B bằng Thuật 4. B tính s = ( s '× β + α ) mod q và chữ ký của A lên M là toán 1.2 như sau: Thuật toán 1.2: cặp (r,s). Input: (M,r,s), {(Ri’, mi’,si’,IDBi)| i=0,1,2,…N}. 113
  3. Hội Thảo Quốc Gia 2015 về Điện tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015) Thủ tục kiểm tra tính hợp lệ của chữ ký tương tự như ở 3. Tính giá trị: e∗ = FH (T ∗ || M ) lược đồ chữ ký Nyberg-Rueppel. Nghĩa là: chữ ký (r,s) được coi là hợp lệ nếu thỏa mãn phương trình kiểm tra: 4. Kiểm tra nếu: e∗ = e' thì (e' , s ' ) được công nhận hợp m = y − s × g r × r mod p lệ. Ngược lại, (e' , s ' ) sẽ bị từ chối. Ở đây m là giá trị đại diện của bản tin cần thẩm tra M. 2.4.2. Tấn công làm lộ nguồn gốc bản tin được ký 2.3.3. Tấn công làm lộ nguồn gốc bản tin được ký Để tấn công làm lộ nguồn gốc bản tin được ký M, người ký Để tấn công làm lộ nguồn gốc bản tin được ký M, người ký A cần lưu trữ giá trị các tham số {T,e,s} và IDB ở mỗi lần ký. A cần lưu trữ giá trị các tham số {r’,m’,s’} và IDB ở mỗi lần Từ đó, A có thể xác định được danh tính của B bằng Thuật ký. Từ đó, A có thể xác định được danh tính của B bằng thuật toán 1.4 như sau: toán như sau: Thuật toán 1.4: Thuật toán 1.3: Input: (M,e’,s’), {(ei, si,Ti, IDBi)| i=0,1,2,…N}. Input: (M,r,s), {(ri’, mi’,si’, IDBi)| i=0,1,2,…N}. Output: IDBi. Output: IDBi. [1]. m ← H (M ) , i = 0 [1]. m ← H (M ) , i = 0 [2]. select: (ei , si , Ti , IDBi ) [2]. select: (ri ' , mi ' , si ' , IDBi ) [3]. τ ← (e'−ei ) mod q [3]. β ← r × (mi ' )−1 mod q [4]. ε ← ( s '− si ) mod q [4]. α ← ( s − si '×β ) mod q [5]. T ∗ = Ti × y τ × g ε mod p [5]. r * = m × g α × (ri ' )β mod p [6]. e∗ = FH (T ∗ || M ) [6]. if ( r* ≠ r ) then [7]. if (e∗ ≠ e' ) then [6.1]. i ← i + 1 [7.1]. i ← i + 1 [6.2]. goto [2] [7.2]. goto [2] [7]. return IDBi [8]. return IDBi Nhận xét: Nhận xét: Tương tự như 2 thuật toán ký mù đã xét ở trên, Thuật Tương tự như các thuật toán ký mù đã xét ở trên, Thuật toán 1.3 cho thấy lược đồ chữ ký mù Nyberg-Rueppel là toán 1.4 cho thấy lược đồ chữ ký mù Moldovyan là không an không an toàn nếu số lượng bản tin được ký không đủ lớn, khi toàn nếu số lượng bản tin được ký (N) không đủ lớn, khi đó đó việc xác định nguồn gốc bản tin là có thể thực hiện được. việc xác định nguồn gốc bản tin là có thể thực hiện được. 2.4. Tấn công lược đồ chữ ký số mù Moldovyan 2.4.1. Lược đồ chữ ký số mù Moldovyan III. XÂY DỰNG LƯỢC ĐỒ CHỮ KÝ SỐ MÙ Đây là lược đồ chữ ký số mù được N.A. Modovyvan [9] Qua phân tích các lược đồ chữ ký số mù trên đây đã cho đề xuất trên cơ sở phát triển từ chuẩn chữ ký số của thấy việc làm “mù” bản tin với một tham số bí mật như ở lược Belarusian STB 1176.2-9 [12]. Các tham số hệ thống bao gồm đồ chữ ký số mù RSA, hay với 2 tham số như ở các lược đồ 2 số nguyên tố p, q thỏa mãn: q|(p-1) và phần tử sinh g ∈ Z *p DSA, Nyberg-Rueppal và Moldovyan thì người ký vẫn có thể có bậc là q. Người ký có khóa bí mật x ∈ Z q và khóa công tìm được nguồn gốc thực sự của bản tin được ký (danh tính khai tương ứng là y = g x mod p . Thủ tục hình thành chữ ký của người yêu cầu ký). Mục này đề xuất việc phát triển lược đồ chữ ký số mù từ một lược đồ chữ ký cơ sở được cải tiến từ “mù” bao gồm các bước như sau: lược đồ chữ ký Schnorr [13] và một lược đồ xây dựng trên bài 1. Người ký A chọn ngẫu nhiên một giá trị k thỏa mãn: toán logarit rời rạc – DLP (Discrete Logarithm Problem) [14]. 1 < k < q và tính T = g k mod p rồi gửi T cho người Ưu điểm của các lược đồ mới này là cũng chỉ sử dụng 2 tham yêu cầu ký B. số bí mật như ở các lược đồ mù DSA, Nyberg-Rueppal hay 2. B chọn ngẫu nhiên 2 giá trị τ và ϵ rồi tính: Moldovyan,... nhưng không cho phép người ký hay bất kỳ T ' = T × yτ × g ε mod p , e' = FH (T ' || M ) và e = (e'−τ ) mod q , ở một đối tượng nào khác có thể xác định được nguồn gốc thực đây: FH(.) là hàm băm và “||” là toán tử nối 2 xâu bit . sự của bản tin như ở các lược đồ đã được công bố trước đó [1- Sau đó B gửi e cho A. 5]. 3. A tính giá trị s = ( k − x × e) mod q rồi gửi cho B. 3.1. Xây dựng lược đồ chữ ký cơ sở 4. B tính thành phần thứ 2 của chữ ký: s' = (s + ε ) mod q và 3.1.1. Lược đồ chữ ký cơ sở LD 15.01A chữ ký của A lên M là cặp (e' , s ' ) . Lược đồ chữ ký cơ sở ở đây, ký hiệu LD 15.01A, được Thủ tục kiểm tra tính hợp lệ của chữ ký tương tự như ở cải tiến từ lược đồ chữ ký do C. Schnorr đề xuất vào năm 1991 STB 1176.2-9, như sau: và được sử dụng làm cơ sở để phát triển lược đồ chữ ký số mù 1. Kiểm tra nếu: 1 < s ' < q và 0 < e' < q thì chuyển sang bước ở phần tiếp theo. Lược đồ chữ ký LD 15.01A bao gồm các thuật toán hình thành tham số và khóa, thuật toán hình thành 2. Ngược lại, (e' , s ' ) sẽ bị từ chối về tính hợp lệ. và kiểm tra chữ ký như sau: 2. Tính giá trị: T ∗ = g s ' × y e' mod p a) Thuật toán hình thành tham số và khóa 114
  4. Hội Thảo Quốc Gia 2015 về Điện tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015) Thuật toán 2.1a: Mức độ an toàn của một lược đồ chữ ký số nói chung được Input: p, q|(p-1), x – khóa bí mật của A. đánh giá qua các khả năng: Output: g, y, H(.). - Chống tấn công làm lộ khóa mật. [1]. g ← h ( p −1) / q mod p , 1 < h < p - Chống tấn công giả mạo chữ ký. Về khả năng chống tấn công làm lộ khóa mât: Từ (2.1a) [2]. select H : {0,1} a Z t , q < t < p ∗ cho thấy mức độ an toàn xét theo khả năng chống tấn công [3]. y ← g − x mod p (2.1a) làm lộ khóa mật của lược đồ cơ sở phụ thuộc vào mức độ khó [4]. return {g,y,H(.)} giải của bài toán logarit rời rạc, hoàn toàn tương tự như với các lược đồ chữ ký DSA [9] , GOST R34.10-94 [10] và Schnorr [13]. b) Thuật toán ký Về khả năng chống tấn công giả mạo chữ ký: Từ (2.3a), Thuật toán 2.2a: (2.5a) và (2.6a) của lược đồ cơ sở cho thấy, một cặp (e,s) bất Input: p, q, g, x, k, M – bản tin cần ký. kỳ (không được tạo ra bởi Thuật toán ký 2.2a của lược đồ và Output: (e,s) – chữ ký của A lên M. từ khóa bí mật x của người ký) nhưng vẫn sẽ được công nhận [1]. r ← g k mod p (2.2a) là chữ ký hợp lệ của đối tượng sở hữu khóa công khai y lên bản tin M nếu thỏa mãn điều kiện: [2]. e ← H (r || M ) mod q (2.3a) e = H (( g s × y e mod p) || M ) mod q (2.10a) [3]. s ← ( k + x × e) mod q (2.4a) Tương tự như ở lược đồ chữ ký Schnorr, có thể thấy rằng [4]. return (e,s) (2.10a) là một dạng bài toán khó nếu các tham số p, q và kích Chú thích: thước của dữ liệu đầu ra hàm băm H(.) được chọn đủ lớn. - Toán tử “||” ở đây là phép nối 2 xâu bit. 3.1.2. Lược đồ chữ ký cơ sở LD 15.01B c) Thuật toán kiểm tra Thuật toán 2.3a: Lược đồ chữ ký cơ sở đề xuất ở đây, ký hiệu LD 15.01B, Input: p, q, g, y, M, (e,s). được xây dựng dựa trên tính khó của bài toán DLP và được sử Output: (e,s) = true / false . dụng để phát triển lược đồ chữ ký số mù trong phần tiếp theo. a) Thuật toán hình thành tham số và khóa [1]. u ← g s × y e mod p (2.5a) Thuật toán 21b: [2]. v ← H (u || M ) mod q (2.6a) Input: p, q|(p-1), x – khóa bí mật của A. [3]. if ( v = e ) then {return true } Output: g, y, H(.). else {return false } [1]. g ← h ( p −1) / q mod p , 1 < h < p Chú thích: [2]. select H : {0,1}∗ a Z t , q < t < p - Nếu kết quả trả về true thì chữ ký (e,s) hợp lệ, do đó −1 nguồn gốc và tính toàn vẹn của bản tin cần thẩm tra M được [3]. y ← g x mod p (2.1b) công nhận. [4]. return {g,y,H(.)} - Nếu kết quả trả về là false thì chữ ký (e,s) là giả mạo, hoặc nội dung bản tin M đã bị sửa đổi. b) Thuật toán ký d) Tính đúng đắn của lược đồ cơ sở LD 15.01A Thuật toán 2.2b: Điều cần chứng minh ở đây là: cho p, q là 2 số nguyên tố Input: p, q, g, x, k, M – bản tin cần ký. thỏa mãn điều kiện q | ( p − 1) , g = h ( p −1) / q mod p với: Output: (e,s) – chữ ký của A lên M. 1 < h < p , H : {0,1} a Z t với: q < t < p , ∗ 1 < x, k < q , [1]. r ← g k mod p (2.2b) [2]. e ← H (r || M ) mod q (2.3b) y = g − x mod p , r = g k mod p , e = H (r || M ) mod q , [3]. s ← x × ( k + e ) mod q (2.4b) s = ( k + x × e ) mod q . Nếu: u = g s × y e mod p và [4]. return (e,s) v = H (u || M ) mod q thì: v = e . Thật vậy, từ (2.1a), (2.3a), (2.4a) và (2.5a) ta có: c) Thuật toán kiểm tra u = g s × y e mod p = g k + x.e × g − x.e mod p Thuật toán 2.3b: (2.7a) = g x.e+ k − x.e mod p = g k mod p Input: p, q, g, y, M, (e,s). Từ (2.2a) và (2.7a), suy ra: Output: (e,s) = true / false . u=r (2.8a) [1]. u ← g − e × y s mod p (2.5b) Thay (2.8a) vào (2.6a) ta được: [2]. v ← H (u || M ) mod q (2.6b) v = H (u || M ) mod q = H (r || M ) mod q (2.9a) [3]. if ( v = e ) then {return true } Từ (2.3a) và (2.9a), suy ra: v = e else {return false } Đây là điều cần chứng minh. e) Mức độ an toàn của lược đồ cơ sở d) Tính đúng đắn của lược đồ cơ sở LD 15.01B 115
  5. Hội Thảo Quốc Gia 2015 về Điện tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015) Điều cần chứng minh ở đây là: cho p, q là 2 số nguyên tố Output: (e,s) = true / false . thỏa mãn điều kiện q | ( p − 1) , g = h ( p −1) / q mod p với: [1]. u ← g s × y e mod p (3.7a) 1 < h < p , H : {0,1}∗ a Z t với: q < t < p , 1 < x, k < q , [2]. v ← H (u || M ) mod q (3.8a) −1 y = g x mod p , r = g k mod p , e = H (r || M ) mod q , [3]. if ( v = e ) then {return true } s = x × ( k + e ) mod q . Nếu: u = g − e × y s mod p và else {return false } v = e. v = H (r || M ) mod q thì: Chú thích: - Nếu kết quả trả về true thì tính hợp lệ của chữ ký (e,s) Thật vậy, từ (2.1b), (2.3b), (2.4b) và (2.5b) ta có: −1 được công nhận, do đó tính toàn vẹn của bản tin cần thẩm tra u = g − e × y s mod p = g − e × g x. x .( k + e ) mod p (2.7b) M và danh tính của người ký (A) được khẳng định. =g e +k −e mod p = g mod p k - Nếu kết quả trả về là false thì chữ ký (e,s) là giả mạo, hoặc Từ (2.2b) và (2.7b), suy ra: nội dung bản tin M đã bị sửa đổi. u=r (2.8b) c) Tính đúng đắn của lược đồ LD 15.02A Thay (2.8b) vào (2.6b) ta được: Điều cần chứng minh ở đây là: cho p, q là 2 số nguyên tố v = H (u || M ) mod q = H ( r || M ) mod q (2.9b) thỏa mãn điều kiện q | ( p − 1) , g = h ( p −1) / q mod p với: Từ (2.3b) và (2.9b), suy ra: v = e 1 < h < p , H : {0,1}∗ a Z q , 1 < x, k < q , 1 < α , β < q , Đây là điều cần chứng minh. y = g − x mod p , ra = g mod p , k rb = (ra ) × ( y × g ) mod p , α β e) Mức độ an toàn của lược đồ cơ sở LD 15.01B Tương tự lược đồ LD 15.01A, mức độ an toàn xét theo e = H (rb || M ) mod q , eb = α −1 × ( e − β ) mod q , khả năng chống tấn công làm lộ khóa mật của lược đồ LD- sa = (k + x × eb ) mod q , s = (α × s a + β ) mod q . Nếu: 15.01B phụ thuộc vào mức độ khó giải của bài toán logarit rời u = ( g ) × ( y ) mod p và v = H (u || M ) mod q thì: v = e . s e rạc, còn khả năng chống tấn công giả mạo chữ ký phụ thuộc vào độ khó của việc giải (2.10b): Thật vậy, từ (3.4a), (3.5a), (3.6a) và (3.7a) ta có: e = H (( g − e × y s mod p) || M ) modq (2.10b) u = g s × y e mod p 3.2. Xây dựng lược đồ chữ ký số mù = g (α .sa + β ) × y (α .eb + β ) mod p 3.2.1. Lược đồ chữ ký số mù LD 15.02A = g α .( k + x.eb ) + β × g − x.(α .eb + β ) mod p Lược đồ chữ ký số mù ở đây được phát triển từ lược đồ (3.9a) cơ sở LD 15.01A. Giả sử A là người người ký có khóa công = g k .α × g x.eb .α × g β × g − x.eb .α × g − x.β mod p khai được hình thành theo Thuật toán 2.1a của lược đồ cơ sở và B là người tạo ra bản tin M được ký. Khi đó, thuật toán ký ( ) × (g ) × g mod p = gk α −x β β = (r ) × y × g mod p α β β và kiểm tra chữ ký của lược đồ được chỉ ra như sau: a a) Thuật toán ký α = (ra ) × ( y × g ) β mod p Thuật toán 3.1a: Input: p, q, g, x, y, α, β, k , M. Từ (2.1a), (3.1a) và (3.9a) ta có: Output: (e,s). u = g −β × g −x( ) × (g )β −k α mod p (3.10a) [1]. ra ← g k mod p (3.1a) = (ra ) × g × y mod p α −β β [2]. rb ← (ra )α × ( y × g )β mod p (3.2a) Từ (3.2) và (3.10), suy ra: [3]. e ← H (rb || M ) mod q (3.3a) u = rb (3.11a) [4]. eb ← α × (e − β ) mod q −1 (3.4a) Thay (3.11a) vào (3.8a) ta có: v = H (u || M ) mod q = H (rb || M ) mod q (3.12a) [5]. s a ← (k + x × eb ) mod q (3.5a) Từ (3.2a) và (3.12a), suy ra: v = e . Đây là điều cần chứng [6]. s ← (α × sa + β ) mod q (3.6a) minh. [7]. return (e,s) d) Mức độ an toàn của lược đồ LD 15.02A Chú thích: Tương tự như với lược đồ cơ sở, mức độ an toàn của lược - Các bước [1], [5] do người ký A thực hiện. đồ chữ ký mù mới đề xuất cũng được đánh giá qua các khả - Các bước [2], [3], [4], [6] và [7] do người có bản tin năng: cần ký B thực hiện. - Chống tấn công làm lộ khóa mật. - Tham số k do A lựa chọn thỏa mãn: 1< k < q. - Chống giả mạo chữ ký. - Tham số α, β do B lựa chọn thỏa mãn: 1 < α, β < q. Ngoài ra, với một lược đồ chữ ký số mù, mức độ an toàn - {x,y} là cặp khóa bí mật/công khai của A. của nó còn được đánh giá qua khả năng chống tấn công làm lộ b) Thuật toán kiểm tra nguồn gốc bản tin sau khi được ký. Yêu cầu đặt ra đối với Thuật toán 3.2a: lược đồ mới đề xuất là bản tin M sau khi đã được ký, thì người Input: p, q, g, y, M – bản tin cần thẩm tra, (e,s) – chữ ký A hay bất kỳ một đối tượng sử dụng nào khác cũng hoàn ký của A. 116
  6. Hội Thảo Quốc Gia 2015 về Điện tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015) toàn không thể biết được bản tin M được tạo ra từ đối tượng dụng bản tin đã ký M cùng thành phần thứ nhất e của chữ B. ký, A vẫn có thể xác định được danh tính của B bằng Khả năng chống tấn công làm lộ khóa mật và giả mạo chữ Thuật toán 3.4a như sau: ký Thuật toán 3.4a: Mức độ an toàn của lược đồ chữ ký mù mới đề xuất được Input: {(rai,IDBi)| i=1,2,…N}, (M,e), α, β. thiết lập dựa trên mức độ an toàn của lược đồ cơ sở . Xét theo Output: IDBi. khả năng chống tấn công làm lộ khóa mật và khả năng chống [1]. m ← H (M ) , i = 0 giả mạo chữ ký, có thể thấy rằng mức độ an toàn của 2 lược đồ này là tương đương như nhau. [2]. select: ( rai , IDBi ) Khả năng chống tấn công làm lộ nguồn gốc của bản tin [3]. rbi * ← (rai )α × (g × y )β mod p được ký Thuật toán ký của lược đồ mới đề xuất cho thấy, nếu ở mỗi [4]. e∗ ← H (rbi * || M ) mod q lần ký bằng việc lưu trữ các tham số {sa,ra,eb,k} cùng với định danh của người yêu cầu ký (IDB), người ký A có thể xác định [5]. if e∗ ≠ e then được mối quan hệ giữa {M,(e,s)} với IDB, nghĩa là từ bản tin [5.1]. i ← i + 1 ; M và chữ ký tương ứng (e,s) có thể xác định được danh tính [5.2]. goto [2]; của người yêu cầu ký B, với điều kiện người ký A biết được [6]. return IDBi các tham số (α,β). Thật vậy, khi biết (α,β) người ký A hoàn Trường hợp chỉ lưu giữ các tham số (ra,,IDB) và sử toàn có thể xác định được IDB bằng Thuật toán 3.3a như sau: dụng thành phần thứ nhất e của chữ ký, A vẫn có thể xác Thuật toán 3.3a: định được danh tính của B bằng Thuật toán 3.5a như sau: Input: {(rai,ebi,sai,ki,IDBi)| i=0,1,2,…N}, M, (e,s), α, β. Output: IDBi. Thuật toán 3.5a: Input: {(ebi,IDBi)| i=0,1,2,…N}, e, α, β. [1]. m ← H (M ) , i = 0 Output: IDBi. [2]. select: (rai , ebi , sai , ki , IDBi ) [1]. i = 0 [3]. rbi * ← (rai )α × (g × y )β mod p [2]. select: (ebi , IDBi ) [4]. e∗ ← H (rbi * || M ) mod q [3]. ebi∗ ← α −1 × (e − β ) mod q [5]. if e∗ ≠ e then [4]. ifebi∗ ≠ ebi then [5.1]. i ← i + 1 ; [4.1]. i ← i + 1 ; [5.2]. goto [2]; [4.2]. goto [2]; [5]. return IDBi [6]. ebi∗ ← α −1 × (e − β ) mod q Trường hợp chỉ lưu giữ các tham số (sa,,eb,k,IDB) và [7]. if ebi∗ ≠ ebi then sử dụng thành phần thứ hai s của chữ ký, A xác định được danh tính của B bằng Thuật toán 3.6a như sau: [7.1]. i ← i + 1 ; [7.2]. goto [2]; Thuật toán 3.6a: Input: {(ebi,sai,ki,IDBi)| i=0,1,2,…N}, s, α, β. [8]. sai∗ ← (ki + x × ebi ) mod q Output: IDBi. [9]. if sai∗ ≠ sai then [1]. i = 0 [9.1]. i ← i + 1 ; [2]. select: (ebi , sai , k i , IDBi ) [9.2]. goto [2]; [3]. sai∗ ← (ki + x × ebi ) mod q [10]. s ∗ ← (α × sai + β ) mod q [4]. ifsai∗ ≠ sai then ∗ [11]. if s ≠ s then [4.1]. i ← i + 1 ; [11.1]. i ← i + 1 ; [4.2]. goto [2]; [11.2]. goto [2]; [5]. return IDBi [12]. return IDBi Trường hợp chỉ lưu giữ các tham số (sa,,IDB) và sử dụng Thuật toán 3.3a trên đây có thể xác định được danh thành phần thứ hai s của chữ ký, A xác định được danh tính của B với độ chính xác cao, nhưng đòi hỏi phải lưu tính của B bằng Thuật toán 3.7a như sau: giữ nhiều tham số (sa,ra,eb,k,IDB) và mất nhiều thời gian Thuật toán 3.7a: tính toán. Tuy nhiên, từ thuật toán này có thể chỉ ra sau Input: {(sai,IDBi)| i=0,1,2,…N}, e, α, β. đây một số thuật toán tấn công khác đòi hỏi việc lưu giữ Output: IDBi. tham số và thời gian tính toán ít hơn mà vẫn có thể xác [1]. i = 0 định được danh tính của người yêu cầu ký bản tin B. [2]. select: ( sai , IDBi ) Trường hợp chỉ lưu giữ các tham số (ra,,IDB) và sử 117
  7. Hội Thảo Quốc Gia 2015 về Điện tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015) [3]. s ∗ ← (α × sai + β ) mod q b). Thuật toán kiểm tra [4]. if s ∗ ≠ s then Thuật toán 3.2b: Input: p, q, g, y, M – bản tin cần thẩm tra, (e,s) – [4.1]. i ← i + 1 ; chữ ký của A. [4.2]. goto [1]; Output: (e,s) = true / false . [5]. return IDBi Nhận xét: [1]. u ← g − e × y s mod p (3.7b) [2]. v ← H (u || M ) mod q (3.8b) Các thuật toán từ 3.3a đến 3.7a đều chung đặc điểm là có thể xác định được danh tính của người yêu cầu ký B nếu biết [3]. if ( v = e ) then {return true } được các tham số bí mật (α,β) do B tạo ra. Nói cách khác, mức else {return false } độ an toàn của lược đồ mới đề xuất xét theo khả năng giữ bí Chú thích: mật nguồn gốc của bản tin phụ thuộc vào mức độ khó của việc - Nếu kết quả trả về true thì tính hợp lệ của chữ ký (e,s) tìm được các tham số bí mật (α,β). Từ thuật toán ký của lược được công nhận, do đó tính toàn vẹn của bản tin cần đồ mới đề xuất cho thấy tại thời điểm ký A chỉ biết được các thẩm tra M và danh tính của người ký (A) được khẳng tham số ra, eb, sa. Điều đó có nghĩa là để tính được (α,β), A cần định. phải giải (3.13a): - Nếu kết quả trả về là false thì chữ ký (e,s) là giả mạo, eb = α −1 × ( H ((ra )α × (g × y ) mod p || M ) mod q − β ) mod q β hoặc nội dung bản tin M đã bị sửa đổi. c) Tính đúng đắn của lược đồ LD 15.02B (3.13a) Điều cần chứng minh ở đây là: cho p, q là 2 số nguyên tố Tuy nhiên, từ các kết quả nghiên cứu đã được công bố có thỏa mãn điều kiện q | ( p − 1) , g = h ( p −1) / q mod p với: thể thấy rằng (3.13a) là một dạng bài toán khó chưa có lời giải nếu các tham số p, q được chọn đủ lớn để phương pháp vét 1 < h < p , H : {0,1} a Z t với: q < t < p , ∗ 1 < x, k < q , cạn là không khả thi trong các ứng dụng thực tế. 1 < α, β < q , y = g x mod p , −1 ra = g k mod p , Mặt khác, do mỗi bước thực hiện của thuật toán ký (Thuật rb ← (ra ) × g × y α α .β β mod p , e = H (rb || M ) mod q , toán 3.1) đều sử dụng 2 tham số bí mật (α,β) do B tạo ra nên các dạng tấn công làm lộ nguồn gốc bản tin như các thuật toán eb = α −1 × (e + β ) mod q , sa = x × (k + eb ) mod q , đã chỉ ra ở Mục 2 (Thuật toán 1.1, 1.2, 1.3 và 1.4) là không s = α × (s a + β ) mod q . Nếu: u = g − e × y s mod p và khả thi đối với lược đồ mới đề xuất. 3.2.2. Lược đồ chữ ký số mù LD 15.02B v = H (u || M ) mod q thì: v = e . Lược đồ chữ ký số mù, ký hiệu LD-15.02B, được phát Thật vậy, từ (3.4b), (3.5b), (3.6b) và (3.7b) ta có: triển từ lược đồ cơ sở LD-15.01B. Cũng giả thiết rằng A là u = g − e × y s mod p người ký có khóa công khai được hình thành theo Thuật toán = g β − α . eb × g x −1 .α .( β + s a ) mod p 2.1b của lược đồ cơ sở LD 15.01B và B là người tạo ra bản tin −1 β − α . eb x .α . ( β + x . (k + e b )) M được ký. Khi đó, thuật toán ký và kiểm tra chữ ký của lược =g ×g mod p đồ được chỉ ra như sau: = g ×gβ − eb .α ×g x −1 .α . β × g x .α . x −1 .( k + eb ) mod p a) Thuật toán ký Thuật toán 3.1b: Input: p, q, g, x, y, α, β, k , M. = g β × g −eb .α × g x ( ) −1 α .β × (g k ) × g α .eb mod p (3.9b) α Output: (e,s). = gβ × gx ( ) −1 α .β × (g k ) mod p α [1]. ra ← g k mod p (3.1b) Từ (2.1b), (3.1b) và (3.9b) ta có: [2]. rb ← (ra ) × g × y α β α .β mod p (3.2b) u = gβ × gx ( ) × (g ) −1 α .β k α mod p (3.10b) [3]. e ← H (rb || M ) mod q (3.3b) α = (ra ) × g × y β α .β mod p [4]. eb ← α −1 × ( e + β ) mod q (3.4b) Từ (3.2) và (3.10), suy ra: u = rb (3.11b) [5]. sa ← x × (k + eb ) mod q (3.5b) Thay (3.11) vào (3.8) ta có: [6]. s ← α × (s a + β ) mod q (3.6b) v = H (u || M ) mod q = H (rb || M ) mod q (3.12b) [7]. return (e,s) Từ (3.2b) và (3.12b), suy ra: v = e . Đây là điều cần chứng Chú thích: minh. - Các bước [1], [5] do người ký A thực hiện. d) Mức độ an toàn của lược đồ LD 15.02B - Các bước [2], [3], [4], [6] và [7] do người có bản tin cần ký Tương tự lươc đồ LD 15.02A, khả năng chống tấn công làm B thực hiện. lộ nguồn gốc của bản tin sau khi ký của lược đồ LD-15.02B - Tham số k do A lựa chọn thỏa mãn: 1< k < q. cũng có thể được đánh giá qua phân tích khả năng thực hiện - Tham số α, β do B lựa chọn thỏa mãn: 1 < α, β < q. một số thuật tấn công như sau: - {x,y} là cặp khóa bí mật/công khai của A. Thuật toán 3.3b: 118
  8. Hội Thảo Quốc Gia 2015 về Điện tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015) Input: {(rai,ebi,sai,ki,IDBi)| i=0,1,2,…N}, M, (e,s), α, β. Thuật toán 3.5b: Output: IDBi. Input: {(ebi,IDBi)| i=0,1,2,…N}, e, α, β. [1]. m ← H (M ) , i = 0 Output: IDBi. [2]. select: (rai , ebi , sai , ki , IDBi ) [1]. i = 0 [2]. select: (ebi , IDBi ) [3]. rbi * ← (rai )α × g β × y α . β mod p [3]. ebi∗ ← α −1 × (e + β ) mod q [4]. e∗ ← rbi *×H (M ) mod q [4]. if ebi∗ ≠ ebi then ∗ [5]. if e ≠ e then [4.1]. i ← i + 1 ; [5.1]. i ← i + 1 ; [4.2]. goto [2]; [5.2]. goto [2]; [5]. return IDBi [6]. ebi∗ ← α −1 × (e + β ) mod q Trường hợp 3, A chỉ lưu giữ các tham số (sa,,eb,k,IDB) và sử dụng thành phần thứ hai s của chữ ký, A xác định được [7]. if ebi∗ ≠ ebi then danh tính của B bằng Thuật toán 3.6b như sau: [7.1]. i ← i + 1 ; Thuật toán 3.6b: [7.2]. goto [2]; Input: {(ebi,sai,ki,IDBi)| i=0,1,2,…N}, s, α, β. [8]. sai∗ ← x × (ki + ebi ) mod q Output: IDBi. [1]. i = 0 [9]. if sai∗ ≠ sai then [2]. select: (ebi , sai , k i , IDBi ) [9.1]. i ← i + 1 ; [3]. sai∗ ← x × (k i + ebi ) mod q [9.2]. goto [2]; [10]. s ∗ ← α × (sai + β ) mod q [4]. if sai∗ ≠ sai then [11]. if s ∗ ≠ s then [4.1]. i ← i + 1 ; [4.2]. goto [2]; [11.1]. i ← i + 1 ; [5]. return IDBi [11.2]. goto [2]; Trường hợp 4, A chỉ lưu giữ các tham số (sa,,IDB) và sử [12]. return IDBi dụng thành phần thứ hai s của chữ ký, A xác định được danh Thuật toán 3.3b trên đây có thể xác định được danh tính tính của B bằng Thuật toán 3.7b như sau: của B với độ chính xác cao, nhưng đòi hỏi phải lưu giữ nhiều Thuật toán 3.7b: tham số (sa,ra,eb,k,IDB) và mất nhiều thời gian tính toán. Tuy Input: {(sai,IDBi)| i=0,1,2,…N}, e, α, β. nhiên, từ thuật toán này có thể chỉ ra sau đây một số thuật toán Output: IDBi. tấn công tương ứng với các trường hợp đòi hỏi việc lưu giữ [1]. i = 0 tham số và thời gian tính toán ít hơn mà vẫn có thể xác định được danh tính của người yêu cầu ký bản tin B. [2]. select: ( sai , IDBi ) Trường hợp 1, A chỉ lưu giữ các tham số (ra,,IDB) và sử [3]. s ∗ ← α × (sai + β ) mod q dụng bản tin đã ký M cùng thành phần thứ nhất e của chữ ký, A vẫn có thể xác định được danh tính của B bằng Thuật toán [4]. if s ∗ ≠ s then 3.4b như sau: [4.1]. i ← i + 1 ; Thuật toán 3.4b: [4.2]. goto [1]; Input: {(rai,IDBi)| i=1,2,…N}, (M,e), α, β. [5]. return IDBi Output: IDBi. Nhận xét: [1]. m ← H (M ) , i = 0 Các Thuật toán 3.3b, 34b, 3.5b, 3.6b và 3.7b trên đây cho [2]. select: (rai , IDBi ) phép A có thể xác định được danh tính của B nếu biết được các tham số bí mật (α,β) do B tạo ra. Như vậy, mức độ an toàn [3]. rbi * ← (rai )α × g β × y α . β mod p của lược đồ LD 15.02B xét theo khả năng giữ bí mật nguồn [4]. e∗ ← rbi *×H (M ) mod q gốc của bản tin phụ thuộc vào mức độ khó của việc tìm được các tham số bí mật (α,β). Từ thuật toán ký của lược đồ [5]. if e∗ ≠ e then LD 15.02B cho thấy A chỉ biết được các tham số ra, eb, sa tại [5.1]. i ← i + 1 ; thời điểm ký. Nên để có thể tính (α,β), A cần phải giải được: [5.2]. goto [2]; eb = α −1 × ( H ((( ra ) α × g β × y α . β mod p ) || M ) mod q + β ) mod q [6]. return IDBi Trường hợp 2, A chỉ lưu giữ các tham số (ra,,IDB) và sử (3.13b) dụng thành phần thứ nhất e của chữ ký, A vẫn có thể xác định Có thể thấy rằng, (3.13b) cũng là một dạng bài toán khó được danh tính của B bằng Thuật toán 3.5b như sau: chưa có lời giải nếu các tham số p, q được chọn đủ lớn để 119
  9. Hội Thảo Quốc Gia 2015 về Điện tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015) phương pháp “vét cạn” là không khả thi trong các ứng dụng [5] D. Chaum, B. den Boer, E. van Heyst, S. Mjolsnes, A. Steenbeek, “Efficient Offline Electronic Checks”, Advances in Cryptology, thực tế. Mặt khác, do mỗi bước thực hiện của thuật toán ký Eurocrypt’89, LNCS 434, Springer Verlag, pp. 294-301. (Thuật toán 3.1b) đều sử dụng 2 tham số bí mật (α,β) do B tạo [6] B. C. Rivest R., Shamir A., Adleman L. (1978), “A Method for ra nên các dạng tấn công làm lộ nguồn gốc bản tin như các Obtaining Digital Signatures and Public Key Cryptosystems”, thuật toán đã chỉ ra ở Mục 2 (Thuật toán 1.1, 1.2, 1.3 và 1.4) Communications of the ACM, Vol. 21, No. 2, pp. 120 – 126. là không khả thi đối với lược đồ mới đề xuất. [7] K. Nyberg, R. A. Rueppel, A New Signature Scheme Base on the DSA Giving Message Recovery, 1st ACM conference on Computer and IV. KẾT LUẬN Communications Security, November 3 – 5, Fairfax, Virginia. [8] Jan L. Camenisch, Jean-Marc Piveteau, Markus A. Stadler, Blind Từ việc phân tích điểm yếu của một số lược đồ chữ ký số Signatures Base on Discrete Logarithm Problem, Swiss KWF mù đã được công bố, bài báo đề xuất 2 lược đồ chữ ký số mù Foundation, grant no. 2724.1. mới được phát triển từ các lược đồ chữ ký cơ sở xây dựng dựa [9] Nikolay A. Moldovyan, Blind Collective Signature Protocol, Computer trên tính khó của bài toán logarit rời rạc, 2 lược đồ mới này có Science Journal of Moldova, vol.19, no.1(55), 2011. mức độ an toàn cao hơn các lược đồ đã biết về khả năng chống [10] National Institute of Standards and Technology, NIST FIPS PUB 186-3. Digital Signature Standard, U.S. Department of Commerce, 1994. tấn công làm lộ nguồn gốc của bản tin được ký. Đây là một [11] GOST R 34.10-94. Russian Federation Standard. Information yếu tố quan trọng cho phép lược đồ mới đề xuất có tính khả Technology. Cryptographic data Security. Produce and check thi trong các ứng dụng thực tế. procedures of Electronic Digital Signature based on Asymmetric Cryptographic Algorithm. Government Committee of the Russia for Standards, 1994 (in Russian). TÀI LIỆU THAM KHẢO [12] Kharin Yu.S., Bernik V.I., Matveev G.V., Aguievich S.V. Mathematic and computer foundations of cryptology, Novoe znanie, Minsk, 2003. [1] D. Chaum, Blind Signature Systems, Advances in Cryptology, Crypto’ 381 p. (in Russian). 83, Plenum Press, pp. 153. [13] C. P. Schnorr, “Efficient signature generation by smart cards”, Journal [2] D. Chaum, A. Fiat, M. Naor, “Untraceable Electronic Cash”, Advances of Cryptology, vol. 4, pp. 161 – 174, 1991. in Cryptology,Crypto’ 88, LNCS 403, Springer Verlag, pp. 319-327. [14] T. ElGamal, “ A public key cryptosystem and a signature scheme based [3] D. Chaum, “Privacy Protected Payment”, SMART CARD 2000, Elsevier on discrete logarithms”, IEEE Transactions on Information Theory. Science Publishers B.V., 1989, pp. 69-93. 1985, Vol. IT-31, No. 4. pp.469–472. [4] N. Ferguson, “Single Term Off-line Coins”, Advances in Cryptology, Eurocrypt’93, LNCS 765, Springer Verlag, pp. 318-328. 120
nguon tai.lieu . vn