Phát triển thuật toán chữ ký số dựa trên hệ mã Pohlig - Hellman
Số trang: 6
Loại file: pdf
Dung lượng: 201.99 KB
Lượt xem: 202
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài viết đề xuất xây dựng thuật toán chữ ký số trên cơ sở phát triển hệ mã khóa bí mật Pohlig - Hellman. Thuật toán chữ ký mới đề xuất có nguyên tắc làm việc tương tự thuật toán chữ ký RSA, song cho phép nhiều đối tượng ký có thể cùng sử dụng chung một modulo p trong các thuật toán ký và thuật toán kiểm tra chữ ký.
Nội dung trích xuất từ tài liệu:
Phát triển thuật toán chữ ký số dựa trên hệ mã Pohlig - Hellman Công nghệ thông tin PHÁT TRIỂN THUẬT TOÁN CHỮ KÝ SỐ DỰA TRÊN HỆ MÃ POHLIG - HELLMAN Nguyễn Vĩnh Thái1*, Lưu Hồng Dũng2 Tóm tắt: Bài báo đề xuất xây dựng thuật toán chữ ký số trên cơ sở phát triển hệ mã khóa bí mật Pohlig - Hellman. Thuật toán chữ ký mới đề xuất có nguyên tắc làm việc tương tự thuật toán chữ ký RSA, song cho phép nhiều đối tượng ký có thể cùng sử dụng chung một modulo p trong các thuật toán ký và thuật toán kiểm tra chữ ký. Đồng thời, bài báo cũng phân tích mức độ an toàn của lược đồ mới đề xuất, cho thấy khả năng ứng dụng của nó trong thực tế. Từ khóa: Chữ ký số, Thuật toán chữ ký số, Lược đồ chữ ký số, Hệ mật khóa bí mật, Hệ mã Pohlig - Hellman. 1. ĐẶT VẤN ĐỀ Hệ mã Pohlig - Hellman [1] được đề xuất và công bố bởi S. Pohlig và M. Hellman vào năm 1976. Đây là một hệ mã khóa bí mật được xây dựng theo phương pháp của các hệ mã lũy thừa (RSA [2] , ElGamal [3],...). Hệ mã Pohlig - Hellman có phương pháp mã hóa hoàn toàn như hệ mật RSA. Song do hệ mã Pohlig - Hellman sử dụng modulo p là số nguyên tố nên các khóa mã hóa và giải mã phải được giữ bí mật hoàn toàn, chính vì lý do này mà hệ mã Pohlig - Hellman là một hệ mã khóa bí mật và không thực hiện được chức năng của một hệ chữ ký số như hệ mật RSA. Bài báo đề xuất một thuật toán chữ ký số được phát triển từ hệ mã Pohlig - Hellman, lược đồ mới đề xuất có nguyên tắc làm việc tương tự lược đồ RSA, song lại cho phép các đối tượng ký cùng sử dụng chung một modulo p nguyên tố như các lược đồ DSA trong chuẩn DSS [4] của Hoa Kỳ hay GOST R34.10 - 94 của Liên bang Nga [5]. 2. PHÁT TRIỂN THUẬT TOÁN CHỮ KÝ SỐ DỰA TRÊN HỆ MÃ POHLIG - HELLMAN 2.1. Hệ mã Pohlig - Hellman 2.1.1. Thuật toán hình thành tham số và khóa Thuật toán bao gồm các bước như sau: [1]. Sinh số nguyên tố p lớn, mạnh. [2]. Tính: ( p ) ( p 1) [3]. Chọn khóa mã hóa e là một giá trị ngẫu nhiên thỏa mãn: 1 e ( p ) và: gcd(e, ( p )) 1 [4]. Tính khóa giải mã d theo công thức: d e 1 mod ( p ) [5]. Khóa bí mật chia sẻ giữa đối tượng gửi/mã hóa và nhận/giải mã là các tham số: p, d và e. 2.1.2. Thuật toán mã hóa và giải mã a) Thuật toán mã hóa: Thuật toán bao gồm các bước: [1]. Biểu diễn bản tin cần ký M thành một giá trị m tương ứng trong khoảng [0, p - 1] 180 N. V. Thái, L. H. Dũng, “Phát triển thuật toán chữ ký số dựa trên hệ mã Pohlig - Hellman.” Nghiên cứu khoa học công nghệ [2]. Người gửi sử dụng khóa mã hóa (e) để mã hóa bản tin: C m e mod p Bản mã tương ứng với bản tin M là C. b) Thuật toán giải mã: Thuật toán kiểm tra bao gồm các bước: [1]. Người nhận sử dụng khóa giải mã (d) để giải mã bản tin nhận được: m C d mod p [2]. Chuyển giá trị m thành bản tin ban đầu. Nhận xét: Trong hệ mã Pohlig - Hellman, khóa mã hóa (e) và giải mã (d) là 2 giá trị nghịch đảo nhau theo modul ( p ) . Do p là số nguyên tố, nên ( p ) ( p 1) . Như vậy, chỉ cần biết 1 trong 2 giá trị e hoặc d thì dễ dàng tính được giá trị kia. Vì thế, cả 2 khóa e và d đều phải được giữ bí mật và do đó hệ Pohlig - Hellman là một hệ mã khóa bí mật. Cũng vì lí do đó, hệ Pohlig - Hellman không thể thực hiện vai trò của một hệ chữ ký số như hệ mật RSA. 2.2. Thuật toán chữ ký mới đề xuất MTA 17.3 - 01 Thuật toán chữ ký mới đề xuất, ký hiệu MTA 17.3 - 01, được xây dựng theo nguyên tắc của hệ mã Pohlig - Hellman bao gồm các thuật toán hình thành tham số và khóa, thuật toán ký và kiểm tra chữ ký như sau: 2.2.1. Thuật toán hình thành các tham số hệ thống và khóa a) Hình thành các tham số hệ thống Hình thành tham số bao gồm các bước thực hiện như sau: [1]. Chọn số nguyên tố p lớn sao cho việc giải bài toán logarit rời rạc trên Zp là khó. [2]. Lựa chọn hàm băm (hash function) H: {0,1}* Zn , với: n p . [3]. Công khai: p, H(.). Ghi chú: Trong ứng dụng thực tế, p là tham số hệ thống và do nhà cung cấp dịch vụ chứng thực số tạo ra. b) Thuật toán hình thành khóa Mỗi người dùng U hình thành cặp khóa bí mật và công khai của mình theo các bước như sau: [1]. Chọn giá trị ex thỏa mãn: 1 ex p 1 và: gcd(ex , p 1) 1 1 [2]. Tính giá trị: d x ex mod( p 1) [3]. Sử đụng thuật toán Euclide mở rộng [6] để tính 2 giá trị a và b sao cho: a ex b d x mod( p 1) 1 [4]. Tính giá trị khóa e theo công thức: e ex b mod( p 1) Kiểm tra nếu: gcd(e, p 1) 1 thì thực hiện lại từ bước [3]. [5]. Tính giá trị khóa d theo công thức: d d x a mod( p 1) [6]. Công khai: e ; giữ bí mật: d; hủy và giữ bí mật: a, b, d x , ex . 2.2.2. Thuật toán chữ ký số a) Thuật toán ký Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017 181 Công nghệ thông tin Thuật toán bao gồm các bước: [1]. Tính giá trị đại diện của bản tin cần ký (M): m = H (M) d [2]. Hình thành phần thứ nhất của chữ ký: S m mod p [3]. Chữ ký số tương ứng với bản tin M là S. b) Thuật toán kiểm tra Thuật toán kiểm tra bao gồm các bước: [1]. Tính giá trị đại diện của bản tin cần thẩm tra (M): m = H(M) e [2]. Tính giá trị m theo công thức: m S mod p [3]. Kiểm tra nếu m m 2 mod p thì chữ ký là hợp lệ, nguồn gốc và tính toàn vẹn của bản tin cần thẩm tra được công nhận. 2.2.3. Tính đúng đắn của thuật toán MTA 17.3 - 01 Tính đúng đắn của thuật toán chữ ký mới đề xuất được chứng minh qua các bổ đề và mệnh đề sau đây: Bổ đề: Nếu: p là số nguyên ...
Nội dung trích xuất từ tài liệu:
Phát triển thuật toán chữ ký số dựa trên hệ mã Pohlig - Hellman Công nghệ thông tin PHÁT TRIỂN THUẬT TOÁN CHỮ KÝ SỐ DỰA TRÊN HỆ MÃ POHLIG - HELLMAN Nguyễn Vĩnh Thái1*, Lưu Hồng Dũng2 Tóm tắt: Bài báo đề xuất xây dựng thuật toán chữ ký số trên cơ sở phát triển hệ mã khóa bí mật Pohlig - Hellman. Thuật toán chữ ký mới đề xuất có nguyên tắc làm việc tương tự thuật toán chữ ký RSA, song cho phép nhiều đối tượng ký có thể cùng sử dụng chung một modulo p trong các thuật toán ký và thuật toán kiểm tra chữ ký. Đồng thời, bài báo cũng phân tích mức độ an toàn của lược đồ mới đề xuất, cho thấy khả năng ứng dụng của nó trong thực tế. Từ khóa: Chữ ký số, Thuật toán chữ ký số, Lược đồ chữ ký số, Hệ mật khóa bí mật, Hệ mã Pohlig - Hellman. 1. ĐẶT VẤN ĐỀ Hệ mã Pohlig - Hellman [1] được đề xuất và công bố bởi S. Pohlig và M. Hellman vào năm 1976. Đây là một hệ mã khóa bí mật được xây dựng theo phương pháp của các hệ mã lũy thừa (RSA [2] , ElGamal [3],...). Hệ mã Pohlig - Hellman có phương pháp mã hóa hoàn toàn như hệ mật RSA. Song do hệ mã Pohlig - Hellman sử dụng modulo p là số nguyên tố nên các khóa mã hóa và giải mã phải được giữ bí mật hoàn toàn, chính vì lý do này mà hệ mã Pohlig - Hellman là một hệ mã khóa bí mật và không thực hiện được chức năng của một hệ chữ ký số như hệ mật RSA. Bài báo đề xuất một thuật toán chữ ký số được phát triển từ hệ mã Pohlig - Hellman, lược đồ mới đề xuất có nguyên tắc làm việc tương tự lược đồ RSA, song lại cho phép các đối tượng ký cùng sử dụng chung một modulo p nguyên tố như các lược đồ DSA trong chuẩn DSS [4] của Hoa Kỳ hay GOST R34.10 - 94 của Liên bang Nga [5]. 2. PHÁT TRIỂN THUẬT TOÁN CHỮ KÝ SỐ DỰA TRÊN HỆ MÃ POHLIG - HELLMAN 2.1. Hệ mã Pohlig - Hellman 2.1.1. Thuật toán hình thành tham số và khóa Thuật toán bao gồm các bước như sau: [1]. Sinh số nguyên tố p lớn, mạnh. [2]. Tính: ( p ) ( p 1) [3]. Chọn khóa mã hóa e là một giá trị ngẫu nhiên thỏa mãn: 1 e ( p ) và: gcd(e, ( p )) 1 [4]. Tính khóa giải mã d theo công thức: d e 1 mod ( p ) [5]. Khóa bí mật chia sẻ giữa đối tượng gửi/mã hóa và nhận/giải mã là các tham số: p, d và e. 2.1.2. Thuật toán mã hóa và giải mã a) Thuật toán mã hóa: Thuật toán bao gồm các bước: [1]. Biểu diễn bản tin cần ký M thành một giá trị m tương ứng trong khoảng [0, p - 1] 180 N. V. Thái, L. H. Dũng, “Phát triển thuật toán chữ ký số dựa trên hệ mã Pohlig - Hellman.” Nghiên cứu khoa học công nghệ [2]. Người gửi sử dụng khóa mã hóa (e) để mã hóa bản tin: C m e mod p Bản mã tương ứng với bản tin M là C. b) Thuật toán giải mã: Thuật toán kiểm tra bao gồm các bước: [1]. Người nhận sử dụng khóa giải mã (d) để giải mã bản tin nhận được: m C d mod p [2]. Chuyển giá trị m thành bản tin ban đầu. Nhận xét: Trong hệ mã Pohlig - Hellman, khóa mã hóa (e) và giải mã (d) là 2 giá trị nghịch đảo nhau theo modul ( p ) . Do p là số nguyên tố, nên ( p ) ( p 1) . Như vậy, chỉ cần biết 1 trong 2 giá trị e hoặc d thì dễ dàng tính được giá trị kia. Vì thế, cả 2 khóa e và d đều phải được giữ bí mật và do đó hệ Pohlig - Hellman là một hệ mã khóa bí mật. Cũng vì lí do đó, hệ Pohlig - Hellman không thể thực hiện vai trò của một hệ chữ ký số như hệ mật RSA. 2.2. Thuật toán chữ ký mới đề xuất MTA 17.3 - 01 Thuật toán chữ ký mới đề xuất, ký hiệu MTA 17.3 - 01, được xây dựng theo nguyên tắc của hệ mã Pohlig - Hellman bao gồm các thuật toán hình thành tham số và khóa, thuật toán ký và kiểm tra chữ ký như sau: 2.2.1. Thuật toán hình thành các tham số hệ thống và khóa a) Hình thành các tham số hệ thống Hình thành tham số bao gồm các bước thực hiện như sau: [1]. Chọn số nguyên tố p lớn sao cho việc giải bài toán logarit rời rạc trên Zp là khó. [2]. Lựa chọn hàm băm (hash function) H: {0,1}* Zn , với: n p . [3]. Công khai: p, H(.). Ghi chú: Trong ứng dụng thực tế, p là tham số hệ thống và do nhà cung cấp dịch vụ chứng thực số tạo ra. b) Thuật toán hình thành khóa Mỗi người dùng U hình thành cặp khóa bí mật và công khai của mình theo các bước như sau: [1]. Chọn giá trị ex thỏa mãn: 1 ex p 1 và: gcd(ex , p 1) 1 1 [2]. Tính giá trị: d x ex mod( p 1) [3]. Sử đụng thuật toán Euclide mở rộng [6] để tính 2 giá trị a và b sao cho: a ex b d x mod( p 1) 1 [4]. Tính giá trị khóa e theo công thức: e ex b mod( p 1) Kiểm tra nếu: gcd(e, p 1) 1 thì thực hiện lại từ bước [3]. [5]. Tính giá trị khóa d theo công thức: d d x a mod( p 1) [6]. Công khai: e ; giữ bí mật: d; hủy và giữ bí mật: a, b, d x , ex . 2.2.2. Thuật toán chữ ký số a) Thuật toán ký Tạp chí Nghiên cứu KH&CN quân sự, Số Đặc san CNTT, 12 - 2017 181 Công nghệ thông tin Thuật toán bao gồm các bước: [1]. Tính giá trị đại diện của bản tin cần ký (M): m = H (M) d [2]. Hình thành phần thứ nhất của chữ ký: S m mod p [3]. Chữ ký số tương ứng với bản tin M là S. b) Thuật toán kiểm tra Thuật toán kiểm tra bao gồm các bước: [1]. Tính giá trị đại diện của bản tin cần thẩm tra (M): m = H(M) e [2]. Tính giá trị m theo công thức: m S mod p [3]. Kiểm tra nếu m m 2 mod p thì chữ ký là hợp lệ, nguồn gốc và tính toàn vẹn của bản tin cần thẩm tra được công nhận. 2.2.3. Tính đúng đắn của thuật toán MTA 17.3 - 01 Tính đúng đắn của thuật toán chữ ký mới đề xuất được chứng minh qua các bổ đề và mệnh đề sau đây: Bổ đề: Nếu: p là số nguyên ...
Tìm kiếm theo từ khóa liên quan:
Chữ ký số Thuật toán chữ ký số Lược đồ chữ ký số Hệ mật khóa bí mật Hệ mã Pohlig - HellmanTài liệu có liên quan:
-
Tóm tắt luận án Tiến sĩ: Nghiên cứu, phát triển các lược đồ chữ ký sô tập thể
24 trang 95 0 0 -
Xây dựng lược đồ chữ ký số dựa trên bài toán logarit rời rạc kết hợp khai căn trên Zp
5 trang 74 0 0 -
15 trang 56 1 0
-
Xây dựng lược đồ chữ ký số an toàn từ các lược đồ định danh
9 trang 49 0 0 -
Xây dựng thuật toán chữ ký số dựa trên một dạng bài toán khó mới
8 trang 46 0 0 -
Thông tư Số: 05/2010/TT-BNV của Bộ nội vụ
11 trang 38 0 0 -
Đồ án tốt nghiệp ngành Công nghệ thông tin: Chữ ký số và dịch vụ chứng thực chữ ký số
51 trang 37 0 0 -
4 trang 36 0 0
-
Phát triển một dạng lược đồ chữ ký số mới dựa trên bài toán RSA
6 trang 36 0 0 -
Bài giảng Pháp luật về thương mại điện tử: Chương 2 - ThS. Trương Kim Phụng
31 trang 35 0 0