Bài viết tập trung phân tích điểm yếu có thể tấn công làm lộ nguồn gốc bản tin được ký của một số lược đồ chữ ký số mù đã được công bố, từ đó đề xuất xây dựng một lược đồ mới có độ an toàn cao hơn về khả năng giữ bí mật nguồn gốc của bản tin được ký có thể đáp ứng các yêu cầu mà thực tế đặt ra.
Hội Thảo Quốc Gia 2015 Điện tử, Truyền Thông 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 lược đồ chữ ký số mù từ việc phát triển lược đồ chữ ký số sở toán logarithm rời rạc Các lược đồ đề xuất có mức độ an tồn cao khả chống công làm lộ nguồn gốc tin ký so với số lược đồ biết trước thực tế Từ khóa- Digital Signature, Blind Signature, Digital Signature Scheme, Blind Signature Scheme I ĐẶT VẤN ĐỀ Khái niệm chữ ký số mù đề xuất D Chaum vào năm 1983 [1], loại chữ ký số sử dụng để xác thực tính tồn vẹn tin điện tử danh tính người ký, khơng cho phép xác thực nguồn gốc thực tin ký Nói cách khác, loại chữ ký cho phép ẩn danh người tạo tin ký Trong [2-4] ứng dụng loại chữ ký cần bảo vệ tính riêng tư khách hàng hệ thống toán điện tử hay vấn đề ẩn danh cử tri việc tổ chức bầu cử trực tuyến [5] Một điểm cần ý là, với loại chữ ký số thơng thường người ký người tạo tin ký, với chữ ký số mù người ký người tạo tin ký đối tượng hoàn toàn khác Đây tính chất đặc trưng chữ ký số mù tiêu chí quan trọng để đánh giá mức độ an toàn loại chữ ký số Trong [1-5] tác giả đề xuất số lược đồ chữ ký số mù ứng dụng cần bảo vệ tính riêng tư khách hàng hệ thống toán điện tử hay vấn đề ẩn danh cử tri việc tổ chức bầu cử trực tuyến Tuy nhiên, điểm yếu chung lược đồ khơng có khả chống lại kiểu công làm lộ nguồn gốc tin ký, khả ứng dụng lược đồ thực tế hạn chế Nội dung báo tập trung phân tích điểm yếu cơng làm lộ nguồn gốc tin ký số lược đồ chữ ký số mù cơng bố, từ đề xuất xây dựng lược đồ có độ an tồn cao khả giữ bí mật nguồn gốc tin ký đáp ứng yêu cầu mà thực tế đặt II TẤN CÔNG LÀM LỘ NGUỒN GỐC BẢN TIN ĐỐI VỚI MỘT SỐ LƯỢC ĐỒ CHỮ KÝ SỐ MÙ 2.1 Tấn công lược đồ chữ ký số mù RSA 2.1.1 Lược đồ chữ ký số mù RSA Lược đồ chữ ký số mù RSA phát triển từ lược đồ chữ ký số RSA [6] Lược đồ chữ ký số mù RSA mơ tả ISBN: 978-604-67-0635-9 sau: Giả sử A người ký có khóa bí mật (d), cơng khai (n,e) hình thành theo lược đồ chữ ký RSA B người tạo tin M yêu cầu A ký lên M (người yêu cầu ký) Để che dấu danh tính B sau tin M ký, thủ tục hình thành chữ ký (“ký mù”) thực qua bước sau: Bước 1: B làm “mù” tin M cách chọn ngẫu nhiên giá trị k thỏa mãn: < k < n k nguyên tố với n (gcd(k,n) = 1), sau B tính: m ' = m × k e mod n , đây: m = H (M ) giá trị đại diện tin cần ký M H(.) hàm băm kháng va chạm B gửi tin làm mù (m’) cho A Bước 2: A ký lên m’ thuật toán ký lược đồ RSA: s' = (m' ) d mod n gửi lại s’ cho B Bước 3: B “xóa mù” s’ nhận chữ ký s sau: s = s'×k −1 mod n Việc kiểm tra tính hợp lệ s tính tồn vẹn M thực lược đồ RSA Vấn đề là, đối tượng kiểm tra tính hợp lệ s, từ khẳng định tính tồn vẹn M danh tính người ký thuật tốn kiểm tra RSA, xác định tin M tạo Nghĩa danh tính B giấu kín 2.1.2 Tấn cơng làm lộ nguồn gốc tin ký Với lược đồ chữ ký số mù RSA mô tả trên, việc xác định danh tính người tạo tin ký M thực Bởi thời điểm ký, người ký (A) khơng biết nội dung M, danh tính B A hồn tồn biết rõ, điều hiển nhiên A ký biết rõ B Giả sử danh tính B ký hiệu IDB, để xác định danh tính người yêu cầu ký từ tin M chữ ký s tương ứng sau thời điểm ký (khi M s công khai), lần ký cần A lưu trữ giá trị s’ IDB sở liệu Từ đó, việc xác định danh tính người yêu cầu ký IDB từ tin ký M chữ ký s hoàn toàn thực thuật tốn sau: Thuật toán 1.1: Input: (M,s), {(si’, IDBi)| i=0,1,2,…N} Output: IDBi [1] m ← H (M ) , i = [2] select: ( si ' , IDBi ) [3] k ∗ ← si '×m − d mod n [4] if gcd(k ∗ , n) ≠ then 112 Hội Thảo Quốc Gia 2015 Điện tử, Truyền Thông Công Nghệ Thông Tin (ECIT 2015) ( [4.1] i ← i + [4.2] goto [2] [5] s ∗ ← si '×(k ∗ ) −1 mod n [5] R ← (Ri ' ) × g mod p α β [6] r ∗ ← R modq ( s ∗ ≠ s ) then [6.1] i ← i + [6] if [7] if (r ≠ r ) then ∗ [6.2] goto [2] [7] return IDBi Nhận xét: Từ Thuật toán 1.1 cho thấy, N khơng đủ lớn việc xác định danh tính người yêu cầu ký (người tạo tin ký) hồn tồn thực Nói cách khác, lược đồ chữ ký số mù RSA khơng an tồn số lượng tin ký không đủ lớn 2.2 Tấn công lược đồ chữ ký số mù DSA 2.2.1 Lược đồ chữ ký số mù DSA Từ lược đồ chữ ký số DSA [8], nhóm tác giả Jan L Camenisch, Jean-Marc Piveteau, Markus A Stadler đề xuất lược đồ chữ ký số mù [8] với thủ tục hình thành tham số hệ thống bao gồm số nguyên tố p, số nguyên tố q ước (p-1) phần tử sinh ) [4] β ← m −1 × s − si '×r × (R ' )−1 mod q g ∈ Z *p có bậc q Người ký có khóa bí mật x ∈ Z q khóa cơng khai tương ứng y = g x mod p Thủ tục hình thành chữ ký “mù” bao gồm bước sau: a) Người ký (A) chọn giá trị k ∈ Z q tính R ' = g k mod p b) A kiểm tra gcd( R ' , q ) ≠ thực lại bước a) Ngược lại, A gửi R cho người yêu cầu ký (B) a) Người yêu cầu ký B chọn giá trị α , β ∈ Z q tính R = (R ' ) × g β mod p α b) B kiểm tra gcd( R ' , q ) = tính tiếp giá trị m' = α × m × R'×R −1 mod q gửi m’ cho A Nếu điều kiện không thỏa mãn, B thực lại bước a) Người ký A tính giá trị s ' = ( k × m ' + x × R ' ) mod q gửi cho B Người yêu cầu ký B tính thành phần (r,s) chữ ký: r = R mod q , s = ( s '× R × (R ' )−1 + β × m ) mod q Thủ tục kiểm tra tính hợp lệ chữ ký hoàn toàn tương tự lược đồ chữ ký DSA 2.2.2 Tấn công làm lộ nguồn gốc tin ký Để công làm lộ nguồn gốc tin ký M, người ký A cần lưu trữ giá trị tham số {R’,m’,s’} IDB lần ký A xác định danh tính B Thuật tốn 1.2 sau: Thuật toán 1.2: Input: (M,r,s), {(Ri’, mi’,si’,IDBi)| i=0,1,2,…N} Output: IDBi [1] m ← H (M ) , i = [2] select: ( Ri ' , mi ' , si ' , IDBi ) [3] α ← mi '×m −1 × r × (R ')−1 mod q ISBN: 978-604-67-0635-9 [7.1] i ← i + [7.2] goto [2] [8] return IDBi Nhận xét: Tương tự với lược đồ chữ ký mù RSA, từ Thuật toán 1.2 cho thấ y, N khơng đủ lớn việc xác định danh tính người yêu cầu ký (người tạo tin ký) hồn tồn thực Nói cách khác, lược đồ chữ ký số mù DSA khơng an tồn xét theo khía cạnh chống công làm lộ nguồn gốc tin số lượng tin ký không đủ lớn 2.3 Tấn công lược đồ chữ ký số mù Nyberg-Rueppel 2.3.1 Lược đồ chữ ký số Nyberg-Rueppel Tham số hệ thống lược đồ chữ ký số K Nyberg R A Rueppel đề xuất [7] lựa chọn tương tự lược đồ DSA Để ký lên tin M có giá trị đại diện m ∈ Z p , người ký chọn ngẫu nhiên giá trị k ∈ Z q tính: r = m × g k mod p s = k + x.r mod q Chữ ký lên tin M cặp (r,s) Chữ ký coi hợp lệ thỏa mãn phương trình kiểm tra: m = y − s × g r × r mod p Ở m giá trị đại diện tin cần thẩm tra M: m = H (M ) , với H(.) hàm băm 2.3.2 Lược đồ chữ ký số mù Nyberg-Rueppel Cũng nhóm tác giả Jan L Camenisch, Jean-Marc Piveteau, Markus A Stadler [8] đề xuất lược đồ chữ ký số mù phát triển từ lược đồ chữ ký Nyberg-Rueppel với thủ tục hình thành chữ ký “mù” bao gồm bước sau: Người ký (A) chọn giá trị k ∈ Z q tính r ' = g k mod p gửi cho người yêu cầu ký (B) a) B chọn ngẫu nhiên giá trị α ∈ Z q , β ∈ Z q* tính r = m × g α × (r ' ) mod p , m ' = r × β −1 mod q β b) B kiểm tra m' ∈ Z q* gửi m’ cho người ký A Ngược lại, B thực lại bước a) A tính giá trị s' = (k + x × m' ) mod q gửi cho B B tính s = ( s'×β + α ) mod q chữ ký A lên M cặp (r,s) Thủ tục kiểm tra tính hợp lệ chữ ký tương tự lược đồ chữ ký Nyberg-Rueppel Nghĩa là: chữ ký (r,s) coi hợp lệ thỏa mãn phương trình kiểm tra: m = y − s × g r × r mod p Ở m giá trị đại diện tin cần thẩm tra M 2.3.3 Tấn công làm lộ nguồn gốc tin ký Để công làm lộ nguồn gốc tin ký M, người ký A cần lưu trữ giá trị tham số {r’,m’,s’} IDB lần 113 Hội Thảo Quốc Gia 2015 Điện tử, Truyền Thông Cơng Nghệ Thơng Tin (ECIT 2015) ký Từ đó, A xác định danh tính B thuật toán sau: Thuật toán 1.3: Input: (M,r,s), {(ri’, mi’,si’, IDBi)| i=0,1,2,…N} Output: IDBi [1] m ← H (M ) , i = [2] select: (ri ' , mi ' , si ' , IDBi ) [3] β ← r × (mi ' )−1 mod q [4] α ← ( s − si '×β ) mod q [5] r * = m × g α × (ri ')β mod p [6] if ( r* ≠ r ) then [6.1] i ← i + [6.2] goto [2] [7] return IDBi Nhận xét: Tương tự 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 khơng an tồn số lượng tin ký khơng đủ lớn, việc xác định nguồn gốc tin thực 2.4 Tấn công lược đồ chữ ký số mù Moldovyan 2.4.1 Lược đồ chữ ký số mù Moldovyan Đây lược đồ chữ ký số mù N.A Modovyvan [9] đề xuất sở phát triển từ chuẩn chữ ký số Belarusian STB 1176.2-9 [12] Các tham số hệ thống bao gồm số nguyên tố p, q thỏa mãn: q|(p-1) phần tử sinh g ∈ Z *p có bậc q Người ký có khóa bí mật x ∈ Z q khóa cơng khai tương ứng y = g x mod p Thủ tục hình thành chữ ký “mù” bao gồm bước sau: Người ký A chọn ngẫu nhiên giá trị k thỏa mãn: < k < q tính T = g k mod p gửi T cho người yêu cầu ký B B chọn ngẫu nhiên giá trị τ ϵ tính: T ' = T × yτ × g ε mod p , e' = FH (T ' || M ) e = (e'−τ ) mod q , đây: FH(.) hàm băm “||” toán tử nối xâu bit Sau B gửi e cho A A tính giá trị s = (k − x × e) mod q gửi cho B B tính thành phần thứ chữ ký: s' = ( s + ε ) mod q chữ ký A lên M cặp (e' , s ' ) Thủ tục kiểm tra tính hợp lệ chữ ký tương tự STB 1176.2-9, sau: Kiểm tra nếu: < s ' < q < e' < q chuyển sang bước Ngược lại, (e' , s ' ) bị từ chối tính hợp lệ Tính giá trị: T ∗ = g s ' × y e' mod p Tính giá trị: e∗ = FH (T ∗ || M ) Kiểm tra nếu: e∗ = e' (e' , s' ) công nhận hợp lệ Ngược lại, (e' , s ' ) bị từ chối 2.4.2 Tấn công làm lộ nguồn gốc tin ký Để công làm lộ nguồn gốc tin ký M, người ký A cần lưu trữ giá trị tham số {T,e,s} IDB lần ký Từ đó, A xác định danh tính B Thuật tốn 1.4 sau: ISBN: 978-604-67-0635-9 Thuật toán 1.4: Input: (M,e’,s’), {(ei, si,Ti, IDBi)| i=0,1,2,…N} Output: IDBi [1] m ← H (M ) , i = [2] select: (ei , si , Ti , IDBi ) [3] τ ← (e'−ei ) mod q [4] ε ← ( s '− si ) mod q [5] T ∗ = Ti × yτ × g ε mod p [6] e∗ = FH (T ∗ || M ) [7] if (e∗ ≠ e' ) then [7.1] i ← i + [7.2] goto [2] [8] return IDBi Nhận xét: Tương tự thuật toán ký mù xét trên, Thuật toán 1.4 cho thấ y lược đồ chữ ký mù Moldovyan khơng an tồn số lượng tin ký (N) không đủ lớn, việc xác định nguồn gốc tin thực III XÂY DỰNG LƯỢC ĐỒ CHỮ KÝ SỐ MÙ Qua phân tích lược đồ chữ ký số mù cho thấ y việc làm “mù” tin với tham số bí mật lược đồ chữ ký số mù RSA, hay với tham số lược đồ DSA, Nyberg-Rueppal Moldovyan người ký tìm nguồn gốc thực tin ký (danh tính người yêu cầu ký) Mục đề xuất việc phát triển lược đồ chữ ký số mù từ lược đồ chữ ký sở cải tiến từ lược đồ chữ ký Schnorr [13] lược đồ xây dựng toán logarit rời rạc – DLP (Discrete Logarithm Problem) [14] Ưu điểm lược đồ sử dụng tham số bí mật lược đồ mù DSA, Nyberg-Rueppal hay Moldovyan, không cho phép người ký hay đối tượng khác xác định nguồn gốc thực tin lược đồ công bố trước [1-5] 3.1 Xây dựng lược đồ chữ ký sở 3.1.1 Lược đồ chữ ký sở LD 15.01A Lược đồ chữ ký sở đây, ký hiệu LD 15.01A, cải tiến từ lược đồ chữ ký C Schnorr đề xuất vào năm 1991 sử dụng làm sở để phát triển lược đồ chữ ký số mù phần Lược đồ chữ ký LD 15.01A bao gồm thuật tốn hình thành tham số khóa, thuật tốn hình thành kiểm tra chữ ký sau: a) Thuật tốn hình thành tham số khóa Thuật tốn 2.1a: Input: p, q|(p-1), x – khóa bí mật A Output: g, y, H(.) [1] g ← h ( p −1) / q mod p , < h < p ∗ [2] select H : {0,1} a Z t , q < t < p [3] y ← g − x mod p [4] return {g,y,H(.)} b) Thuật toán ký Thuật toán 2.2a: 114 (2.1a) Hội Thảo Quốc Gia 2015 Điện tử, Truyền Thông Công Nghệ Thông Tin (ECIT 2015) Input: p, q, g, x, k, M – tin cần ký Output: (e,s) – chữ ký A lên M [1] r ← g k mod p (2.2a) [2] e ← H (r || M ) mod q (2.3a) [3] s ← ( k + x × e) mod q (2.4a) [4] return (e,s) Chú thích: - Toán tử “||” phép nối xâu bit c) Thuật toán kiểm tra Thuật toán 2.3a: Input: p, q, g, y, M, (e,s) Output: (e,s) = true / false [1] u ← g s × y e mod p (2.5a) [2] v ← H (u || M ) mod q (2.6a) [3] if ( v = e ) then {return true } else {return false } Chú thích: - Nếu kết trả true chữ ký (e,s) hợp lệ, nguồn gốc tính tồn vẹn tin cần thẩm tra M công nhận - Nếu kết trả false chữ ký (e,s) giả mạo, nội dung tin M bị sửa đổi d) Tính đắn lược đồ sở LD 15.01A Điều cần chứng minh là: cho p, q số nguyên tố thỏa mãn điều kiện q | ( p − 1) , g = h ( p −1) / q mod p với: < x, k < q , < h < p , H : {0,1}∗ a Z t với: q < t < p , r = g k mod p , e = H (r || M ) mod q , Nếu: u = g s × y e mod p s = ( k + x × e ) mod q v = H (u || M ) mod q thì: v = e Thật vậy, từ (2.1a), (2.3a), (2.4a) (2.5a) ta có: u = g s × y e mod p = g k + x.e × g − x.e mod p (2.7a) y = g − x mod p , = g x.e+ k − x.e mod p = g k mod p Từ (2.2a) (2.7a), suy ra: u=r (2.8a) Thay (2.8a) vào (2.6a) ta được: (2.9a) v = H (u || M ) mod q = H ( r || M ) mod q Từ (2.3a) (2.9a), suy ra: v = e Đây điều cần chứng minh e) Mức độ an toàn lược đồ sở Mức độ an tồn lược đồ chữ ký số nói chung đánh giá qua khả năng: - Chống cơng làm lộ khóa mật - Chống cơng giả mạo chữ ký Về khả chống công làm lộ khóa mât: Từ (2.1a) cho thấy mức độ an tồn xét theo khả chống cơng làm lộ khóa mật lược đồ sở phụ thuộc vào mức độ khó giải tốn logarit rời rạc, hoàn toàn tương tự với lược đồ chữ ký DSA [9] , GOST R34.10-94 [10] Schnorr [13] Về khả chống công giả mạo chữ ký: Từ (2.3a), (2.5a) (2.6a) lược đồ sở cho thấy, cặp (e,s) (không tạo Thuật toán ký 2.2a lược đồ từ khóa bí mật x người ký) công nhận ISBN: 978-604-67-0635-9 chữ ký hợp lệ đối tượng sở hữu khóa cơng khai y lên tin M thỏa mãn điều kiện: (2.10a) e = H ((g s × y e mod p) || M ) mod q Tương tự lược đồ chữ ký Schnorr, thấy (2.10a) dạng tốn khó tham số p, q kích thước liệu đầu hàm băm H(.) chọn đủ lớn 3.1.2 Lược đồ chữ ký sở LD 15.01B Lược đồ chữ ký sở đề xuất đây, ký hiệu LD 15.01B, xây dựng dựa tính khó tốn DLP sử dụng để phát triển lược đồ chữ ký số mù phần a) Thuật toán hình thành tham số khóa Thuật tốn 21b: Input: p, q|(p-1), x – khóa bí mật A Output: g, y, H(.) [1] g ← h ( p −1) / q mod p , < h < p [2] select H : {0,1}∗ a Z t , q < t < p −1 [3] y ← g x mod p [4] return {g,y,H(.)} b) Thuật toán ký Thuật toán 2.2b: Input: p, q, g, x, k, M – tin cần ký Output: (e,s) – chữ ký A lên M [1] r ← g k mod p [2] e ← H (r || M ) mod q [3] s ← x × ( k + e ) mod q [4] return (e,s) c) Thuật toán kiểm tra Thuật toán 2.3b: Input: p, q, g, y, M, (e,s) Output: (e,s) = true / false (2.1b) (2.2b) (2.3b) (2.4b) [1] u ← g −e × y s mod p (2.5b) [2] v ← H (u || M ) mod q (2.6b) [3] if ( v = e ) then {return true } else {return false } d) Tính đắn lược đồ sở LD 15.01B Điều cần chứng minh là: cho p, q số nguyên tố thỏa mãn điều kiện q | ( p − 1) , g = h ( p −1) / q mod p với: ∗ < h < p , H : {0,1} a Z t với: q < t < p , x −1 < x, k < q , y = g mod p , r = g mod p , e = H ( r || M ) mod q , Nếu: s = x × ( k + e ) mod q u = g − e × y s mod p v = H (r || M )mod q thì: v = e Thật vậ y, từ (2.1b), (2.3b), (2.4b) (2.5b) ta có: u = g − e × y s mod p = g − e × g x x ( k +e ) mod p (2.7b) k −1 = g e + k −e mod p = g k mod p Từ (2.2b) (2.7b), suy ra: u = r Thay (2.8b) vào (2.6b) ta được: (2.8b) v = H (u || M ) mod q = H (r || M ) mod q (2.9b) Từ (2.3b) (2.9b), suy ra: v = e Đây điều cần chứng minh e) Mức độ an toàn lược đồ sở LD 15.01B 115 Hội Thảo Quốc Gia 2015 Điện tử, Truyền Thông Công Nghệ Thông Tin (ECIT 2015) Tương tự lược đồ LD 15.01A, mức độ an toàn xét theo khả chống cơng làm lộ khóa mật lược đồ LD15.01B phụ thuộc vào mức độ khó giải tốn logarit rời rạc, cịn khả chống cơng giả mạo chữ ký phụ thuộc vào độ khó việc giải (2.10b): (2.10b) e = H ((g −e × y s mod p) || M ) modq 3.2 Xây dựng lược đồ chữ ký số mù 3.2.1 Lược đồ chữ ký số mù LD 15.02A Lược đồ chữ ký số mù phát triển từ lược đồ sở LD 15.01A Giả sử A người người ký có khóa cơng khai hình thành theo Thuật toán 2.1a lược đồ sở B người tạo tin M ký Khi đó, thuật toán ký kiểm tra chữ ký lược đồ sau: a) Thuật toán ký Thuật toán 3.1a: Input: p, q, g, x, y, α, β, k , M Output: (e,s) [1] ← g k mod p (3.1a) [2] rb ← (ra )α × ( y × g )β mod p [3] e ← H (rb || M ) mod q [4] eb ← α −1 × (e − β ) mod q [5] s a ← (k + x × eb ) mod q (3.2a) (3.3a) (3.4a) (3.5a) [6] s ← (α × sa + β ) mod q (3.6a) [7] return (e,s) Chú thích: - Các bước [1], [5] người ký A thực - Các bước [2], [3], [4], [6] [7] người có tin cần ký B thực - Tham số k A lựa chọn thỏa mãn: 1< k < q - Tham số α, β B lựa chọn thỏa mãn: < α, β < q - {x,y} cặp khóa bí mật/cơng khai A b) Thuật toán kiểm tra Thuật toán 3.2a: Input: p, q, g, y, M – tin cần thẩm tra, (e,s) – chữ ký A Output: (e,s) = true / false [1] u ← g s × y e mod p (3.7a) (3.8a) [2] v ← H (u || M ) mod q [3] if ( v = e ) then {return true } else {return false } Chú thích: - Nếu kết trả true tính hợp lệ chữ ký (e,s) cơng nhận, tính tồn vẹn tin cần thẩm tra M danh tính người ký (A) khẳng định - Nếu kết trả false chữ ký (e,s) giả mạo, nội dung tin M bị sửa đổi c) Tính đắn lược đồ LD 15.02A Điều cần chứng minh là: cho p, q số nguyên tố thỏa mãn điều kiện q | ( p − 1) , g = h ( p −1) / q mod p với: 1< h < p , H : {0,1} a Z q y = g − x mod p , e = H (rb || M ) mod q ∗ , < x, k < q , = g k mod p , , ISBN: 978-604-67-0635-9 < α, β < q , α β rb = (ra ) × ( y × g ) mod p , −1 , eb = α × (e − β ) mod q s a = (k + x × eb ) mod q , s = (α × s a + β ) mod q Nếu: u = ( g ) s × ( y ) mod p v = H (u || M ) mod q thì: v = e Thật vậy, từ (3.4a), (3.5a), (3.6a) (3.7a) ta có: e u = g s × y e mod p = g (α s a + β ) × y (α eb + β ) mod p = g α ( k + x.eb ) + β × g − x.(α eb + β ) mod p (3.9a) = g k α × g x.eb α × g β × g − x.eb α × g − x.β mod p ( ) × (g ) × g mod p = (r ) × y × g mod p = (r ) = gk α α −x β β β α β a a × ( y × g ) β mod p Từ (2.1a), (3.1a) (3.9a) ta có: ( ) × (g ) u = g −β × g − x β −k α mod p (3.10a) = (ra ) × g − β × y β mod p α Từ (3.2) (3.10), suy ra: u = rb (3.11a) Thay (3.11a) vào (3.8a) ta có: (3.12a) v = H (u || M ) mod q = H (rb || M ) mod q Từ (3.2a) (3.12a), suy ra: v = e Đây điều cần chứng minh d) Mức độ an toàn lược đồ LD 15.02A Tương tự với lược đồ sở, mức độ an toàn lược đồ chữ ký mù đề xuất đánh giá qua khả năng: - Chống cơng làm lộ khóa mật - Chống giả mạo chữ ký Ngoài ra, với lược đồ chữ ký số mù, mức độ an tồn cịn đánh giá qua khả chống công làm lộ nguồn gốc tin sau ký Yêu cầu đặt lược đồ đề xuất tin M sau ký, người ký A hay đối tượng sử dụng khác hồn tồn khơng thể biết tin M tạo từ đối tượng B Khả chống cơng làm lộ khóa mật giả mạo chữ ký Mức độ an toàn lược đồ chữ ký mù đề xuất thiết lập dựa mức độ an toàn lược đồ sở Xét theo khả chống công làm lộ khóa mật khả chống giả mạo chữ ký, thấy mức độ an tồn lược đồ tương đương Khả chống công làm lộ nguồn gốc tin ký Thuật toán ký lược đồ đề xuất cho thấy, lần ký việc lưu trữ tham số {sa,ra,eb,k} với định danh người yêu cầu ký (IDB), người ký A xác định mối quan hệ {M,(e,s)} với IDB, nghĩa từ tin M chữ ký tương ứng (e,s) xác định danh tính người yêu cầu ký B, với điều kiện người ký A biết tham số (α,β) Thật vậy, biết (α,β) người ký A hồn tồn xác định IDB Thuật toán 3.3a sau: Thuật toán 3.3a: Input: {(rai,ebi,sai,ki,IDBi)| i=0,1,2,…N}, M, (e,s), α, β Output: IDBi [1] m ← H (M ) , i = [2] select: (rai , ebi , sai , ki , IDBi ) [3] rbi * ← (rai )α × (g × y )β mod p 116 Hội Thảo Quốc Gia 2015 Điện tử, Truyền Thông Công Nghệ Thông Tin (ECIT 2015) [3] e ← H ( rb || M ) mod q [4] eb ← α −1 × (e + β ) mod q [4] e∗ ← H (rbi * || M ) mod q ∗ [5] if e ≠ e then [5] s a ← x × (k + eb ) mod q (3.5b) [6] s ← α × (s a + β ) mod q (3.6b) [7] return (e,s) Chú thích: - Các bước [1], [5] người ký A thực - Các bước [2], [3], [4], [6] [7] người có tin cần ký B thực - Tham số k A lựa chọn thỏa mãn: 1< k < q - Tham số α, β B lựa chọn thỏa mãn: < α, β < q - {x,y} cặp khóa bí mật/cơng khai A b) Thuật toán kiểm tra [5.1] i ← i + ; [5.2] goto [2]; [6] ebi∗ ← α −1 × (e − β ) mod q [7] if ebi∗ ≠ ebi then [7.1] i ← i + ; [7.2] goto [2]; [8] sai∗ ← (ki + x × ebi ) mod q ∗ [9] if sai ≠ sai then [9.1] i ← i + ; [9.2] goto [2]; [10] s ∗ ← (α × sai + β ) mod q [11] if s ∗ ≠ s then [11.1] i ← i + ; [11.2] goto [2]; [12] return IDBi Nhận xét: Thuật tốn 3.3a xác định danh tính người yêu cầu ký B biết tham số bí mật (α,β) B tạo Nói cách khác, mức độ an tồn lược đồ đề xuất xét theo khả giữ bí mật nguồn gốc tin phụ thuộc vào mức độ khó việc tìm tham số bí mật (α,β) Từ thuật tốn ký lược đồ đề xuất cho thấy thời điểm ký A biết tham số ra, eb, sa Điều có nghĩa để tính (α,β), A cần phải giải (3.13a): eb = α −1 × ( H ((ra )α × (g × y ) mod p || M ) mod q − β ) mod q β (3.13a) Tuy nhiên, từ kết nghiên cứu cơng bố thấy (3.13a) dạng tốn khó chưa có lời giải tham số p, q chọn đủ lớn để phương pháp vét cạn không khả thi ứng dụng thực tế Mặt khác, bước thực thuật toán ký (Thuật toán 3.1) sử dụng tham số bí mật (α,β) B tạo nên dạng công làm lộ nguồn gốc tin thuật toán Mục (Thuật toán 1.1, 1.2, 1.3 1.4) không khả thi lược đồ đề xuất 3.2.2 Lược đồ chữ ký số mù LD 15.02B Lược đồ chữ ký số mù, ký hiệu LD-15.02B, phát triển từ lược đồ sở LD-15.01B Cũng giả thiết A người ký có khóa cơng khai hình thành theo Thuật tốn 2.1b lược đồ sở LD 15.01B B người tạo tin M ký Khi đó, thuật tốn ký kiểm tra chữ ký lược đồ sau: a) Thuật toán ký Thuật toán 3.1b: Input: p, q, g, x, y, α, β, k , M Output: (e,s) [1] ← g k mod p (3.1b) [2] rb ← (ra )α × g β × y α β mod p ISBN: 978-604-67-0635-9 (3.3b) (3.4b) Thuật toán 3.2b: Input: p, q, g, y, M – tin cần thẩm tra, (e,s) – chữ ký A Output: (e,s) = true / false [1] u ← g − e × y s mod p (3.7b) [2] v ← H (u || M ) mod q (3.8b) [3] if ( v = e ) then {return true } else {return false } Chú thích: - Nếu kết trả true tính hợp lệ chữ ký (e,s) cơng nhận, tính tồn vẹn tin cần thẩm tra M danh tính người ký (A) khẳng định - Nếu kết trả false chữ ký (e,s) giả mạo, nội dung tin M bị sửa đổi c) Tính đắn lược đồ LD 15.02B Điều cần chứng minh là: cho p, q số nguyên tố thỏa mãn điều kiện q | ( p − 1) , g = h ( p −1) / q mod p với: < h < p , với: H : {0,1} a Z t ∗ y=g x −1 mod p , q