Nghiên Cứu Xây Dựng Chương Trình Thực Thi Hệ Mã Có Xác Thực Dựa Trên Đường Cong Elliptic (Ecies) (Luận Văn Thạc Sĩ) LỜI CAM ĐOAN ii MỤC LỤC iii CÁC KÝ HIỆU, CHỮ VIẾT TẮT v DANH MỤC BẢNG BIỂU vi DANH MỤC HÌNH VẼ vii MỞ ĐẦU 1 CHƯƠNG I NGHIÊN CỨU TỔNG QUAN VỀ MẬT MÃ DỰA TRÊN ĐƯỜNG CONG ELLIPTIC 1.1. Khái quát về mật mã học 3 1.2. Các lược đồ dựa trên bài toán logarit rời rạc 8 1.3. Cơ sở toán học hệ mật đường cong Elliptic 12 1.3.1. Các định nghĩa 12 1.3.2. Các phép toán trên đường cong Elliptic 15 1.3.3. Lược đồ mật mã dựa trên đường cong elliptic 18 1.3.4. Luật nhóm trên các điểm đường cong elliptic 22 1.4. Kết luận chương 1 26 CHƯƠNG II NGHIÊN CỨU TÌM HIỂU THỰC THI HỆ MÃ CÓ XÁC THỰC DỰA TRÊN ĐƯỜNG CONG ELLIPTIC (ECIES) 2.1. Giới thiệu chung về ECIES 27 2.2. Các thuật toán sử dụng cho ECIES 31 2.3. So sánh một số phiên bản ECIES 34 2.4. Một số phân tích về ECIES 37 2.5. Kết luận chương 2 38 CHƯƠNG III XÂY DỰNG MÔ ĐUN CHƯƠNG TRÌNH THỰC THI HỆ MÃ CÓ XÁC THỰC DỰA TRÊN ĐƯỜNG CONG ELLIPTIC (ECIES) 3.1. Các khai báo, định nghĩa 40 3.2. Xây dựng các hàm phụ trợ 42 3.2.1. Hàm ecurve_init 42 3.2.2. Hàm epoint_set 43 3.2.3. Hàm epoint_x 44 3.2.4. Hàm epoint_get 45 3.2.5. Hàm epoint_copy 45 3.2.6. Hàm epoint_comp 46 3.2.7. Hàm ecurve_add 47 3.2.9. Hàm epoint_negate 49 3.2.10. Hàm ecurve_sub 49 3.2.11. Hàm ecurve_double_add 50 3.2.12. Thủ tục ecurve_mult 51 3.3. Xây dựng các module chương trình mã hóa và giải mã ECIES trên trường GF(p) " 52 3.3.1. Module mã hóa ECIES (Thực hiện Thuật toán 11) 52 3.3.2. Module giải mã ECIES (Thực hiện Thuật toán 12) 57 3.4. Thử nghiệm, đánh giá kết quả thực thi chương trình Chữ ký số RSA ra đời đã đáp ứng được nhu cầu sử dụng chữ ký số để bảo vệ thông tin truyền trên môi trường mạng. Các nghiên cứu đã chỉ ra rằng để đảm bảo an toàn lược đồ chữ ký số RSA yêu cầu kích thước khóa phải rất lớn và không được nhỏ hơn 1024-bit (hiện nay để đảm bảo an toàn cho các thông tin trên mạng, một số tổ chức an ninh thế giới đã khuyến nghị sử dụng chữ ký RSA có độ dài khóa 2048-bit). Việc sử dụng lược đồ chữ ký số RSA có khóa lớn như vậy gây khó khăn cho việc sinh khóa cho lược đồ, thời gian ký và xác minh chữ ký lâu hơn ảnh hưởng đến một số lĩnh vực. Trong những năm gần đây, mật mã elliptic nói chung và chữ ký số trên đường cong elliptic nói riêng được quan tâm nghiên cứu và ứng dụng khá rộng rãi trên nhiều lĩnh vực dựa vào ưu thế độ dài khóa nhỏ (cùng mức độ an toàn khóa của ECC ngắn hơn rất nhiều so với RSA, ví dụ ECC 160-bit có khóa mức bảo mật tương đương RSA 1024-bit. ECC 224-bit có khóa mức bảo mật tương đương RSA 2048-bit khóa) cài đặt ECC sử dụng tài nguyên hệ thống ít hơn, năng lượng tiêu thụ nhỏ hơn. Từ những thực tế trên tôi lựa chọn đề tài “nghiên cứu xây dựng chương trình thực thi hệ mã có xác thực dựa trên đường cong elliptic (ECIES)” làm đồ án của mình với mục tiêu tìm hiểu về mật mã đường cong elliptic trên trường hữu hạn F p, tập trung phân tích, đánh giá mức độ an toàn ECIES, xây dựng chương trình các thuật toán thực thi hệ mã có xác thực (ECIES). Nội dung của đồ án được chia thành 3 chương: Chương 1: Nghiên cứu tổng quan về mật mã dựa trên đường cong elliptic. Chương này trình bày một số nghiên cứu tổng quan về mật mã dựa trên đường cong elliptic: một số khái niệm cơ bản về mật mã hiện đại, mật mã dựa trên đường cong elliptic. Chương 2: Nghiên cứu tìm hiểu các thuật toán thực thi hệ mã có xác thực dựa trên đường cong elliptic (ECIES) Chương này trình bày về những nghiên cứu, tìm hiểu các thuật toán thực thi hệ mã có xác thực dựa trên đường cong elliptic (ECIES): thuật toán mã hóa và giải mã, một số phân tích về tính an toàn. Chương 3: Xây dựng chương trình các thuật toán thực thi hệ mã có xác thực dựa trên đường cong elliptic (ECIES) Chương này trình bày về xây dựng các mô đun chương trình thực hiện các thuật toán thực thi hệ mã có xác thực dựa trên đường cong elliptic (ECIES).
Trang 11
Viện Công Nghệ Thông Tin Và Truyền Thông
ĐẠI HỌC BÁCH KHOA HÀ NỘI
Luận Văn Thạc Sĩ
NGHIÊN CỨU XÂY DỰNG CHƯƠNG TRÌNH THỰC THI HỆ MÃ CÓ XÁC THỰC DỰA TRÊN
ĐƯỜNG CONG ELLIPTIC (ECIES)
Nguyen Thanh Long
Ha Noi, 2023
Trang 22
MỤC LỤC
LỜI CAM ĐOAN ii
MỤC LỤC iii
CÁC KÝ HIỆU, CHỮ VIẾT TẮT v
DANH MỤC BẢNG BIỂU vi
DANH MỤC HÌNH VẼ vii
MỞ ĐẦU 1
CHƯƠNG I NGHIÊN CỨU TỔNG QUAN VỀ MẬT MÃ DỰA TRÊN ĐƯỜNG CONG ELLIPTIC 1.1 Khái quát về mật mã học 3
1.2 Các lược đồ dựa trên bài toán logarit rời rạc 8
1.3 Cơ sở toán học hệ mật đường cong Elliptic 12
1.3.1 Các định nghĩa 12
1.3.2 Các phép toán trên đường cong Elliptic 15
1.3.3 Lược đồ mật mã dựa trên đường cong elliptic 18
1.3.4 Luật nhóm trên các điểm đường cong elliptic 22
1.4 Kết luận chương 1 26
CHƯƠNG II NGHIÊN CỨU TÌM HIỂU THỰC THI HỆ MÃ CÓ XÁC THỰC DỰA TRÊN ĐƯỜNG CONG ELLIPTIC (ECIES) 2.1 Giới thiệu chung về ECIES 27
2.2 Các thuật toán sử dụng cho ECIES 31
Trang 33
2.3 So sánh một số phiên bản ECIES 34
2.4 Một số phân tích về ECIES 37
2.5 Kết luận chương 2 38
CHƯƠNG III XÂY DỰNG MÔ ĐUN CHƯƠNG TRÌNH THỰC THI HỆ MÃ CÓ XÁC THỰC DỰA TRÊN ĐƯỜNG CONG ELLIPTIC (ECIES) 3.1 Các khai báo, định nghĩa 40
3.2 Xây dựng các hàm phụ trợ 42
3.2.1 Hàm ecurve_init 42
3.2.2 Hàm epoint_set 43
3.2.3 Hàm epoint_x 44
3.2.4 Hàm epoint_get 45
3.2.5 Hàm epoint_copy 45
3.2.6 Hàm epoint_comp 46
3.2.7 Hàm ecurve_add 47
3.2.9 Hàm epoint_negate 49
3.2.10 Hàm ecurve_sub 49
3.2.11 Hàm ecurve_double_add 50
3.2.12 Thủ tục ecurve_mult 51
3.3 Xây dựng các module chương trình mã hóa và giải mã ECIES trên trường GF(p) " 52
3.3.1 Module mã hóa ECIES (Thực hiện Thuật toán 11) 52
3.3.2 Module giải mã ECIES (Thực hiện Thuật toán 12) 57
3.4 Thử nghiệm, đánh giá kết quả thực thi chương trình 62
KẾT LUẬN 63
Trang 44
TÀI LIỆU THAM KHẢO 64
PHỤ LỤC 1
Trang 55
CÁC KÝ HIỆU, CHỮ VIẾT TẮT
AES Advanced Encryption Standard Chuẩn mã hóa cao cấp
DES Data Encyption Standard Chuẩn mã hóa dữ liệu
DLP Discrete Logarithm Problem Bài toán logarithm rời rạc DSA Digital Signature Algoritm Thuật toán chữ ký số DSS Digital Signature Standard Chuẩn chữ ký số
ECC Elliptic curve Cryptography Mật mã đường cong elliptic
RSA Ron Rivest, Adi Shamir, Adleman
Thuật toán mã hóa khóa công
khai RSA
Trang 61
MỞ ĐẦU
Sự phát triển mạnh mẽ của công nghệ thông tin và viễn thông đã tạo điều kiện thuận lợi cho việc truyền tải thông tin ở các loại hình khác nhau Tuy nhiên việc truyền tải thông tin trong môi truờng mạng nói chung tiềm ẩn một số vấn đề nhu: mất mát dữ liệu, giả mạo dữ liệu Trong một số trường hợp người sử dụng không thể phát hiện gây hậu quả xấu cho các cá nhân và tổ chức Lược đồ chữ
ký số ra đời là giải pháp hiệu quả nhất để đảm bảo tính xác thực và tính toàn vẹn đối với thông tin truyền trên mạng
Chữ ký số RSA ra đời đã đáp ứng được nhu cầu sử dụng chữ ký số để bảo
vệ thông tin truyền trên môi trường mạng Các nghiên cứu đã chỉ ra rằng để đảm bảo an toàn lược đồ chữ ký số RSA yêu cầu kích thước khóa phải rất lớn và không được nhỏ hơn 1024-bit (hiện nay để đảm bảo an toàn cho các thông tin trên mạng, một số tổ chức an ninh thế giới đã khuyến nghị sử dụng chữ ký RSA
có độ dài khóa 2048-bit) Việc sử dụng lược đồ chữ ký số RSA có khóa lớn như vậy gây khó khăn cho việc sinh khóa cho lược đồ, thời gian ký và xác minh chữ
ký lâu hơn ảnh hưởng đến một số lĩnh vực
Trong những năm gần đây, mật mã elliptic nói chung và chữ ký số trên đường cong elliptic nói riêng được quan tâm nghiên cứu và ứng dụng khá rộng rãi trên nhiều lĩnh vực dựa vào ưu thế độ dài khóa nhỏ (cùng mức độ an toàn khóa của ECC ngắn hơn rất nhiều so với RSA, ví dụ ECC 160-bit có khóa mức bảo mật tương đương RSA 1024-bit ECC 224-bit có khóa mức bảo mật tương đương RSA 2048-bit khóa) cài đặt ECC sử dụng tài nguyên hệ thống ít hơn, năng lượng tiêu thụ nhỏ hơn
Từ những thực tế trên tôi lựa chọn đề tài “nghiên cứu xây dựng chương trình thực thi hệ mã có xác thực dựa trên đường cong elliptic (ECIES)” làm đồ
án của mình với mục tiêu tìm hiểu về mật mã đường cong elliptic trên trường
Trang 72
hữu hạn F p, tập trung phân tích, đánh giá mức độ an toàn ECIES, xây dựng chương trình các thuật toán thực thi hệ mã có xác thực (ECIES)
Nội dung của đồ án được chia thành 3 chương:
Chương 1: Nghiên cứu tổng quan về mật mã dựa trên đường cong elliptic
Chương này trình bày một số nghiên cứu tổng quan về mật mã dựa trên đường cong elliptic: một số khái niệm cơ bản về mật mã hiện đại, mật mã dựa trên đường cong elliptic
Chương 2: Nghiên cứu tìm hiểu các thuật toán thực thi hệ mã có xác thực dựa trên đường cong elliptic (ECIES)
Chương này trình bày về những nghiên cứu, tìm hiểu các thuật toán thực thi hệ mã có xác thực dựa trên đường cong elliptic (ECIES): thuật toán mã hóa
và giải mã, một số phân tích về tính an toàn
Chương 3: Xây dựng chương trình các thuật toán thực thi hệ mã có xác thực dựa trên đường cong elliptic (ECIES)
Chương này trình bày về xây dựng các mô đun chương trình thực hiện các thuật toán thực thi hệ mã có xác thực dựa trên đường cong elliptic (ECIES)
Trang 83
CHƯƠNG I NGHIÊN CỨU TỔNG QUAN VỀ MẬT MÃ DựA TRÊN
ĐƯỜNG CONG ELLIPTIC
1.1 Khái quát về mật mã học
Mật mã học là nghiên cứu các kỹ thuật toán học giúp cho việc trao đổi thông tin an toàn truớc kẻ thù
- Mô hình truyền thông cơ bản
Hình 1.1, A (Alice) và B (Bob) trao đổi thông tin qua một kênh truyền tin không an toàn Giả định rằng tất cả các thông tin liên lạc diễn ra khi có mặt của
kẻ thù E (Eve), E có mục tiêu phá vỡ bất kỳ dịch vụ an toàn nào đuợc cung cấp cho A và B
Hình 1.1 Mô hình truyền thông cơ bản
Trang 9❖ Mô hình đối kháng
Trong mô hình các mối đe dọa thực tế mà A và B phải đối mặt Ngoài việc
có thể đọc tất cả dữ liệu truyền qua kênh, E có thể sửa đổi dữ liệu truyền và chèn
dữ liệu của chính mình Hơn thế nữa, E có khả năng tính toán đáng kể theo ý mình Cuối cùng, mô tả đầy đủ các giao thức truyền thông và bất kỳ cơ chế mật
mã được triển khai (trừ thông tin khoá bí mật) được biết bởi E Thách thức đối với các nhà mật mã là thiết kế các cơ chế để đảm bảo truyền thông đối mặt với những
kẻ thù như vậy
❖ Mật mã khóa đối xứng
Các hệ thống mật mã có thể được chia thành hai loại Trong mô hình khóa đối xứng, được mô tả trong Hình 1.2 (a), đầu tiên, các thực thể truyền thông thỏa thuận về các nguyên liệu bí mật và xác thực Sau đó, sử dụng một lược đồ mã hóa khóa đối xứng như Chuẩn hóa dữ liệu (DES), RC4 hoặc Chuẩn mã dữ liệu tiên
Trang 105
tiến (Advanced Encryption Standard - AES) để bảo mật Hơn nữa, có thể sử dụng thuật toán mã xác thực thông báo (MAC) như HMAC để kiểm tra được tính toàn vẹn dữ liệu và xác thực nguồn gốc dữ liệu
Ví dụ, nếu muốn giữ bí mật và khoá bí mật được chia sẻ bởi A và B là k, sau đó A sẽ mã hóa một bản rõ m sử dụng một hàm mã hoá ENC và khoá k và truyền bản mã kết quả c = ENc k (m) sang B Khi nhận c, B sẽ dùng hàm DEC và khóa k để phục hồi m = DEc k (c) Nếu muốn tính toàn vẹn dữ liệu và xác thực
nguồn gốc dữ liệu, thì A và B đầu tiên sẽ đồng ý với một khoá bí mật k, sau đó A
sẽ tính toán thẻ xác thực t = MA c k (m) của một bản rõ m sử dụng thuật toán MAC
và khóa k A sau đó sẽ gửi m và t đến B Khi nhận m và t, B sẽ sử dụng thuật toán
MAC và cùng một khoá k để tính lại t ' = MAc k (m) của m và chấp nhận thông điệp
là có nguồn gốc từ A nếu t = t'
* Phân phối và quản lý khóa
Ưu điểm chính của mật mã khóa đối xứng là hiệu quả cao; tuy nhiên, có những hạn chế đáng kể đối với các hệ thống này Một nhược điểm chính là vấn đề phân phối - gọi là vấn đề phân phối khóa chính - yêu cầu về một kênh vừa bí mật vừa chứng thực cho việc phân phối khoá Trong một số ứng dụng, phân phối này
có thể được thực hiện một cách thuận tiện bằng cách sử dụng một kênh an toàn vật lý như chuyển phát nhanh đáng tin cậy Một cách khác là sử dụng các dịch vụ của một bên thứ ba tin cậy trực tuyến thiết lập các khóa bí mật với tất cả các thực
Trang 116
thể trong mạng và sau đó sử dụng các khoá này để phân phối một cách an toàn khoá tới các thực thể liên lạc khi được yêu cầu Các giải pháp như vậy có thể phù hợp với các môi trường có cơ quan trung ương được chấp nhận và đáng tin cậy nhưng rõ ràng là không thực tế trong các ứng dụng như email trên Internet
Hạn chế thứ hai là vấn đề quản lý khóa - trong mạng của các thực thể N , mỗi thực thể có thể phải duy trì các tài liệu khóa khác nhau với mỗi N — 1 thực
thể khác Vấn đề này có thể được giảm bớt bằng cách sử dụng các dịch vụ của một bên thứ ba đáng tin cậy trực tuyến phân phối tài liệu khóa theo yêu cầu, qua
đó giảm sự cần thiết cho các thực thể để lưu trữ an toàn nhiều khóa Một lần nữa, tuy nhiên, các giải pháp như vậy là không thực tế Cuối cùng, vì khóa được chia
sẻ giữa hai thực thể (hoặc nhiều hơn), không thể sử dụng được các kỹ thuật khóa đối xứng để tạo ra các chữ ký số cung cấp các dịch vụ chống chối bỏ
❖ Mật mã khóa công khai
Khái niệm về mật mã khoá công khai, được mô tả trong Hình 1.2 (b), được Diffie-Hellman và Merkle giới thiệu vào năm 1975 để giải quyết các thiếu sót nói trên của mật mã khóa đối xứng Ngược lại với mật mã khóa đối xứng, mật mã khoá công khai chỉ yêu cầu rằng các thực thể trao đổi các tài liệu (nhưng không bí
mật) Mỗi thực thể chọn một cặp khóa duy nhất ( e, d) bao gồm một khóa công khai e, và một khóa cá nhân tương ứng d (mà thực thể phải giữ bí mật)
Tính bí mật: Nếu thực thể A muốn gửi thực thể B một thông điệp bí mật
m, A có đuợc một bản sao khóa công khai e B chính xác của B và sử dụng chức
năng mã hóa ENC của một chuơng trình mã hóa khóa công khai để tính bản mã c
= EN c eB (m) A sau đó truyền c đến B, sử dụng các chức năng giải mã DEC và
d B cá nhân của mình để phục hồi các bản rõ: m = DEc d (c) Giả định rằng đối thủ
chỉ có kiến thức về eB (nhung không phải là dB không thể giải mã đuợc c) Luu ý rằng không có yêu cầu về tính bí mật trên eB Điều quan trọng là chỉ có A nhận
Trang 127
đuợc một bản sao đích thực của eB - nếu không A mã hóa m bằng cách sử dụng
khóa công khai e E của E thay vì của B, thì m sẽ đuợc phục hồi bởi E
Tính chống chối bỏ: Các luợc đồ chữ ký số có thể đuợc tạo ra để xác thực
nguồn gốc dữ liệu và toàn vẹn dữ liệu, và để tạo thuận lợi cho việc cung cấp các dịch vụ chống chối bỏ Một thực thể A sẽ sử dụng thuật toán tạo chữ ký SIGN của
một luợc đồ chữ ký số và khóa cá nhân d A để tính chữ ký của một thông điệp: s = sỊGN d (m) Khi nhận m và s, một thực thể B có bản sao của khóa công khai
của sử dụng một thuật toán xác minh chữ ký để xác
nhận rằng s đã thực sự đuợc tạo ra từ m và d A Vì dA chỉ đuợc biết bởi A , B chắc chắn rằng thông điệp thực sự bắt nguồn từ A Hơn nữa, chữ ký của m cũng có thể đuợc xác minh bởi một bên thứ ba có thể giải quyết tranh chấp nếu từ chối có ký tên Không giống nhu chữ ký viết tay, chữ ký số của phụ thuộc vào thông điệp m đang đuợc ký kết Mặc dù không có yêu cầu về bí mật đối với khóa công khai eA, điều quan trọng là nguời kiểm tra nên sử dụng một bản sao của khi xác minh các chữ ký đuợc tạo ra bởi
Bằng cách này, mật mã khóa công khai cung cấp giải pháp khắc phục điểm yếu của mật mã hóa đối xứng, cụ thể là phân phối khóa, quản lý khóa và cung cấp tính chống chối bỏ Cần phải chỉ ra rằng mặc dù yêu cầu về một kênh bí mật để phân phối tài liệu khoá đã được loại bỏ, việc triển khai cơ sở hạ tầng khóa công khai (PKI) để phân phối và quản lý khóa công khai có thể là một thách thức lớn trong thực tế Ngoài ra, hoạt động của khoá công khai thường chậm hơn đáng kể
so với các khóa đối xứng Do đó, các hệ thống lai ghép thường sử dụng tính một cách hiệu quả kết hợp giữa các thuật toán khoá đối xứng và các thuật toán khoá công khai
1.2 Các lược đồ dựa trên bài toán logarit rời rạc
Đầu tiên, lược đồ dựa trên bài toán logarit rời rạc (DL) là giao thức thỏa
Trang 138
thuận quan trọng được đề xuất bởi Diffie và Hellman năm 1976 Vào năm 1984, ElGamal đã mô tả các chương trình mã hóa và khoá công khai của DL Kể từ đó, nhiều biến thể của đề án đã được đề xuất Ở đây chúng tôi trình bày sơ đồ cơ bản của ElGamal và thuật toán Chữ kí Số (Digital Signature Algorithm - DSA)
* Sinh khóa DL
Trong các hệ thống logarit rời rạc, một cặp khóa được liên kết với một tập
các tham số miền (p, q, g) Ở đây, p là số nguyên tố, q là ước lượng nguyên tố của
p — 1 , và g E [1, p — 1 ] có trật tự q (nghĩa là, t = q là số nguyên dương nhỏ nhất
đáp ứng g = 1(mod p)) Khóa bí mật là một số nguyên X được chọn thống nhất
ngẫu nhiên từ khoảng thời gian [1, q — 1 ] (thao tác này được biểu thị X e R [1, q
— 1 ]), và khoá công khai tương ứng là y = g x mod p Vấn đề xác định các tham số miền X (p , q, g) và y là vấn đề logarit rời rạc (DLP) Chúng tôi tóm tắt việc tạo ra
tham số miền DL và các thủ tục tạo cặp quan trọng trong các Thuật toán 1,6 và 1,7
Thuật toán 1 Tạo tham số miền DL
Đầu vào: Các tham số bảo mật ,
Đầu ra: Các thông số miền DL (p q g)
1 Chọn một số nguyên tố í-bit và một số nguyên tố /-bit p sao cho q chia p —
Thuật toán 2 Sinh cặp khoá DL
Đầu vào: Các tham số miền DL (p , q, g)
Trang 14y là khóa công khai của người nhận, thì một bản rõ m được mã hóa bằng cách
nhân nó bằng yk mod p trong đó k được chọn ngẫu nhiên bởi người gửi Người
gửi chuyển c2 = my k mod p và c1 = g k mod p cho người nhận sử dụng khóa riêng của mình để tính toán
C* — g kx = y k (mod p)
và phân chia c2 bởi số lượng này để phục hồi m Bên thứ 3 muốn khôi phục m cần phải tính toán yk (mod p) Nhiệm vụ này cần tính toán yk (mod p)từ các thông số
miền (p, q, g), y, và c = g k (mod p) được gọi là vấn đề Diffie- Hellman (DHP) Các
DHP được giả định (và đã được chứng minh trong một số trường hợp) để độ phức tạp như là bài toán logarithm rời rạc
Thuật toán 3 Mã hóa ElGamal cơ bản
ĐÀU VÀO: các thông số miền DL (p , q , g), khóa công khai y, bản rõ m e
[0, p — 1 ]
ĐÀU RA: bản mã ( C 1 , C2)
1 Chọn k e R[1, q —1 ]
2 Tính c = g mod p
Trang 1510
3 Tính c2 = m.y mod p
4 Trả về (c1, c2)
Thuật toán 4 Giải mã ElGamal cơ bản
ĐÀU VÀO: Các thông số miền DL (p , q,g), khoá bí mật X, bản mã ( C 1 ,
Một thực thể A với khóa bí mật X ký một thông điệp bằng cáchchọn
một số nguyên ngẫu nhiên k từ khoảng [1, q — 1 ], và tính toán
T = gk mod p, r = T mod q và
s = k ~1(h +xr) (mo d q) (1.2)
Trong đó h = H(m) là thôngbáo A là chữký trên m cặp (r, s) Để xác minh chữ ký, một thực thể phải kiểm tra xem (r , s) đáp ứng phuơng trình
(1.2) Kể từ khi nguời kiểm tra biết không phải khoá bí mật X hay k, phuơng
trình này không thể đuợc xác minh trực tiếp Luu ý, tuy nhiên, phuơng trình (1.2) tuơng đuơng với
k = s ~ 1 (h + rx) (mo d q ) (1.3)
Trang 1611
Nâng g lên cả hai mặt của (1.3) tạo ra sự tuơng đồng tuơng đuơng
T — <g hs-1yrs-1(mod p)
Nguời kiểm tra có thể tính T và kiểm tra r = T mod q
Thuật toán 5 Tạo chữ ký DSA
ĐÀU VÀO: các thông số miền DL (p, q, g), khóa bí mật X, thông báo m ĐÀU RA: Chữ ký (r , s)
Thuật toán 6 Xác minh chữ ký DSA
ĐÀU VÀO: các thông số miền DL (p, q, g), khoá công khai y, thông báo
m, chữ ký (r , s)
ĐÀU RA: Chấp nhận hoặc từ chối chữ ký
1 Xác minh rằng r và s là số nguyên trong khoảng [1, q — 1 ] Nếu bất kỳ
xác minh nào không thành công thì trả lại ("Từ chối chữ ký")
Trang 17Gọi f (x, y) = x3 + Ax + B - y2 Một điểm P(x,y) E E được gọi là điểm không kì
dị nếu có ít nhất một trong hai đạo hàmf hoặc khác 0 Điều dy dx
này có nghĩa là nếu cả hai đạo hàm này bằng 0 thì điểm P sẽ được coi là điểm kì
dị
- Định nghĩa 4:
Đường cong Elliptic E được coi là đường cong không kì dị nếu tất cả các
Trang 18đôi biến x = u x + r;y = uy + su x +1 thì E biến thành E’
Có hai giá trị đặc biệt của j - bất biến là:
+ j=0: Khi đó đường cong Elliptic có dạng y2 = x3 + B
+ j = 1728: Đường cong Elliptic có dạng y 1 = x3 + Ax
- Định nghĩa 7:
Nếu hai đường cong Elliptic khác nhau được xác định trên một đường K
có cùng một j - bất biến thì ta gọi chúng là “xoắn đôi” (twist) của nhau
Đường cong xoắn đôi với đường cong với j - bất biến là j có dạng:
y2 = x 3 + _ 3 x + _ 2 _; j * 0,1728
1728 - j 1728 - j
- Định nghĩa 8:
Trang 1914
Đường cong Elliptic E định nghĩa trên thỏa mãn E(Fp )=p được gọi
là các đường cong bất quy tắc
Xét trên đường cong E trên đường nguyên tố hữu hạn F p (p nguyên tố, p>3)
với công thức biến đôi như sau:
Y2 = X3 + aX + b
Hình 1.2 Một ví dụ về đường cong Elliptic
- Tính chất của đường cong Elliptic:
Nếu hai điểm P 1 (X ! + y-Ị_) và P 2 (X2 + y 2 ) với X ! ^ X2 nằm trên đường cùng
một đường cong Elliptic E, thì đường thẳng qua hai điểm P 1 và P2 sẽ cắt một điểm duy nhất P3(X 3 y 3 ) có thể xác định thông qua P 1 và P2 nằm trên đường cong E
Tiếp tuyến của đường cong tại điểm bất kỳ P ( X, y) trên đường cong E cũng cắt đường cong Elliptic E tại một điểm duy nhất nằm trên đường cong E điểm này cũng có thể xác định được thông qua P
1.3.2 Các phép toán trên đường cong Elliptic
Trang 2015
❖ Phép cộng
Giả sử P = (x r ^ỵ) và Q = (x 2 ,y 2 ) là hai điểm của F nếu X ỵ = X 2 thì ta định
nghĩa P+Q=O Ngược lại thì P+Q= (x 3 ,y 3 ) e Etrong đó:
Trang 2217
❖ Phép nhân
Phép nhân một số nguyên k với một điểm P thuộc đường cong elliptic E là
điểm Q được xác định bằng cách cộng k lần điểm P và dĩ nhiên
Q E E: k X P = P + P + P + P ( k phép cộng điểm P)
Vì vậy nếu G là một điểm thuộc đường cong elliptic E thì với mỗi số
nguyên dương k luôn dễ dàng xác định được điểm Q = k *G
MỆNH ĐÊ : Cho E là một đường cong elliptic xác định bởi phương trình
y2 =■ V3 + Ax + B Gọi Pi(%i,yi) và p 2 (x 2 ,y 2 ) là các điểm trên E với p 1 , p 2 ^ 0 Khi
đó p 1 + p 2 = p 3 = (x 3 , y 3 ) với x 3 , y 3 được tính như sau :
a (Công thức cộng điểm) Nếu x 1 E x 2 thì
Trang 2318
Hình 1.4 Ví dụ phép nhân đôi trên đường cong Elliptic
1.3.3 Lược đồ mật mã dựa trên đường cong elliptic
Các hệ thống logarit rời rạc được trình bày có thể được mô tả trong thiết lập trừu tượng của một nhóm cyclic hữu hạn Chúng tôi giới thiệu một số khái niệm cơ bản từ lý thuyết nhóm và giải thích khái quát này Sau đó chúng ta nhìn vào các nhóm đường cong hình elip và chỉ ra cách chúng có thể được sử dụng để thực hiện các hệ thống lôgarít rời rạc
(iv) (Hoán vị) a * b = b * a cho tất cả a, b e G
Hoạt động nhóm thường được gọi là cộng (+) hoặc nhân (•) Trong trường
Trang 2419
hợp đầu tiên, nhóm được gọi là một nhóm cộng, phần tử nhận dạng (số cộng)
thường được biểu thị bởi 0, và nghịch đảo của a được biểu hiện bởi —a Trong
trường hợp thứ hai, nhóm này được gọi là nhóm đa nhân, các yếu tố nhận dạng (nhân) thường được biểu hiện bằng 1, và phép nhân (số nhân) của a được biểu
hiện bằng a-1 Nhóm này là hữu hạn nếu G là một tập hữu hạn, trong trường hợp này, số lượng các phần tử trong G được gọi là trật tự của G
Bây giờ, nếu G là một nhóm hữu hạn hữu hạn thứ tự n và g e G, sau đó là số
nguyên dương nhỏ nhất t sao cho g = 1 được gọi là thứ tự của g; một t như vậy luôn luôn tồn tại và là một ước của n Tập hợp (g) = {gl : 0 - l - t -1} của tất cả các quyền hạn của g là một nhóm dưới cùng hoạt động như G, và được gọi là nhóm con tuần hoàn của G sinh ra bởi g Câu tương tự là đúng nếu G được viết bổ sung Trong trường hợp đó, thứ tự của g e G là ước tích dương nhỏ nhất t sao cho
(g ) = {ig:0 — l —t —1} Ở đây, tg biểu thị các phần tử thu được bằng cách thêm các bản sao của g Nếu G có một phần tử g của n, sau đó G được gọi là một nhóm
cyclic và g được gọi là bộ tạo của G Ví dụ, với các tham số miền DL (p, q,g)
được định nghĩa như trong §1.2.2, nhóm nhân ( F*, •) là một nhóm cyclic của trật
tự p — 1 Hơn nữa, (g) là một phân nhóm theo thứ tự q
* Các nhóm đường cong elliptic
Cho p là số nguyên tố, và để Fp biểu diễn trường số nguyên modulo p Một
đường cong elliptic E trên F p được xác định bởi một phương trình
y2 = X 3 + 2x + 4 trong đó a, b e Fp thoả mãn 4a3 +
27 b 2 ^ 0(mod p) Một cặp (x, y), trong đó x, y e Fp,
là một điểm trên đường cong nếu (x, y) đáp ứng phương trình (1.4) Điểm ở vô cực, được biểu thị bởi ro, cũng được
cho là nằm trên đường cong Tập của tất cả các điểm trên E được ký hiệu là E(Fp) Ví dụ, nếu E là một đường cong
(1.4)
Trang 2520
elliptic trên F 7 với phương trình xác định
y2= X 3 + 2x + 4
sau đó các điểm trên E là E( F 7) = {ro, 0,2, 0,5, 1,0, 2,3, 2,4, 3,3, 3,4, (6,1), (6,6)}
Bây giờ, có một phương pháp nổi tiếng để thêm hai điểm đường cong elliptic (x !_ ,yx) và (x 2, y2) để tạo điểm thứ ba trên đường cong elliptic (xem
§3.1) Quy tắc bổ sung yêu cầu một vài phép tính số học (cộng, trừ, nhân và đảo) trong Fp với tọa độ x !_ ,yn x2,y 2 Với quy tắc bổ sung này, tập các điểm E( Fp) tạo thành một nhóm (cộng) abelian với ro phục vụ như là yếu tố nhận dạng Như vậy các nhóm con tuần hoàn của các nhóm đường cong elliptic bây giờ có thể được sử dụng để thực hiện các hệ thống lôgarít rời rạc
* Sinh khóa đường cong elliptic
Cho E là đường cong elliptic trường F p Cho p là một điểm trong E( Fp), và
giả sử rằng p có bậc nguyên tố n Sau đó, nhóm con cyclic của E( Fp) tạo ra bởi p
là
(p) = { 00 ,p ,2 p, 3 p , .,(n —l) p } Nguyên tố p, phương trình của đường cong elliptic E, và điểm p thứ tự n của nó,
là các tham số miền Khóa bí mật là một số nguyên d được chọn thống nhất ngẫu
nhiên từ khoảng [1, n — l ], và khoá công khai tương ứng là ọ = dp
Bài toán xác định d cho các tham số miền và Q là đường cong elliptic rời rạc
logarithm (ECDLP)
Thuật toán 7 Sinh cặp khóa cho đường cong elliptic
ĐÀU VÀO: Các tham số miền đường cong Elliptic (p, E, p, n)
ĐÀU RA: Khóa công khai Q và khóa riêng d
1 Chọn d e R [1, n-1 ]
2 Tính Q = dp
Trang 2621
3 Trả về ( Q ,d)
❖ Sơ đồ mã hóa đường cong Elliptic
Chúng tôi trình bày các thủ tục mã hóa và giải mã đối với đường cong elliptic tương tự sơ đồ mã hóa ElGamal cơ bản theo các Thuật toán 8 và 9 Đầu
tiền một bản rõ m được biểu diễn như một điểm M, và sau đó mã hóa bằng cách thêm nó vào kQ trong đó k là một số nguyên ngẫu nhiên được chọn, và Q là khóa công khai của người nhận Người gửi chuyển các điểm C 1 = kp và c 2 = M + kQ
tới người nhận sử dụng khóa cá nhân d của mình để tính toán
dc ± = d(kP) = k(dP) = kQ
và sau đó hồi phục M = C2 - kQ Người nghe trộm muốn khôi phục lại M cần
phải tính k Q Nhiệm vụ tính toán k Q từ các tham số miền, Q, và C1 = kP , là đường cong elliptic tương tự với bài toán Diffie-Hellman
Thuật toán 8 Mã hóa đường cong elliptic ElGamal cơ bản
ĐÀU VÀO: Các thông số miền đường cong Elliptic (p , E, p, n), khóa công
Thuật toán 9 Giải mã đường cong elliptic ElGamal cơ bản
ĐÀU VÀO: Các thông số miền (p,E,P,n), khoá cá nhân d, bản mã ( Ci, C2)
Trang 2722
ĐÀU RA: bản rõ m
1 Tính M = c2 — d Cỵ , và lấy m từ M
2 Trả về (m)
1.3.4 Luật nhóm trên các điểm đường cong elliptic
Cho E là một đường cong elliptic được xác định trên trường K Có một
nguyên tắc chèn tiếp tuyến để thêm hai điểm vào E ( K) để cho điểm thứ ba trong
E ( K) Cùng với hoạt động bổ sung này, tập các điểm E ( K) hình thành một nhóm abelian với ro như là nhận dạng của nó Đây là nhóm được sử dụng trong việc xây dựng các hệ thống mã hóa đường cong hình elip
Nguyên tắc bổ sung được giải thích rõ nhất về hình học Cho P = (x i , yi) và
Q = (x 2 , y 2 ) là hai điểm riêng biệt trên một đường cong elliptic E Sau đó tổng R,
của P và ọ, được định nghĩa như sau Đầu tiên vẽ một đường thẳng qua P và Ọ; đường này giao cắt đường cong elliptic tại điểm thứ ba R là sự phản xạ của điểm này về trục x
2 R, của p , được định nghĩa như sau Đầu tiên vẽ đường tiếp tuyến đến
đường cong elliptic tại p Dòng này giao cắt đường cong elliptic tại điểm thứ hai
R là sự phản xạ của điểm này với trục X
Công thức đại số cho luật nhóm có thể được bắt nguồn từ mô tả hình học
Các công thức này được trình bày tiếp theo cho các đường cong elliptic E dạng
đơn giản hóa Weierstrass (3.4) trong tọa độ affine khi đặc trưng của trường cơ sở
K không phải là 2 hoặc 3 (ví dụ, K = Fp với p > 3 là số nguyên tố) đối với các đường cong elliptic không suy biến E ở dạng (3.5) trên K = F 2 m và đối với các đường cong elliptic suy biến E có dạng (3.6) trên K — p2m
Trang 2823
(a) Cộng điểm: p + Q = R (b) Tăng gấp đôi điểm:
Luật nhóm cho E / K: y 2 = X3 + ax + b, ch ar K ^ 2,3
1 Phép giao hoán p + ro = ro + p = p cho tất cả các p e E (K)
2 Phủ định Nếu p = (x,y) E E(K) , thì (x,y) + (x, — y) = ro Điểm (x, —y) được ký hiệu là — p và được gọi là âm của P; lưu ý rằng — p là một điểm trong E ( K) Ngoài ra, —00 = 00
3 Cộng điểm Cho p = (x 1 ,y 1 ) E E(K) và Q = (x 2 ,y x ) E E(K) trong đó p T5 ± Q Sau đó p + Q = (x 3 , y3) , trong đó
Trang 2924
20, và xem xét đường cong elliptic
E-.y 2 = X 3 + 4% + 20 được định nghĩa qua F2 9 Lưu ý rằng A = — 1 6 (4 a3 + 2 7 b2) = — 1 76896 í 0 (mod 29), do đó E thực sự là một đường cong elliptic Các điểm trong E ( F 2 9) là như sau:
ro (2,6) (4,19) (8,10) (13,23) (16,2) (19,16) (27,2) (0,7) (2,23) (5,7) (8,19) (14,6) (16,27) (20,3) (27,27) (0,22) (3,1) (5,22) (10,4) (14,23) (17,10) (20,26)
(1,5) (3,28) (6,12) (10,25) (15,2) (17,19) (24,7)
(1,24) (4,10) (6,17) (13,6) (15,27) (19,13) (24,22)
Các ví dụ về cộng đường cong elliptic là (5,22) + (16,27) = (13,6), và 2 (5,22) = (14,6)
Trang 3025
Luật nhóm cho £■/ F2 m : y2 + xy = X3 + ax 2 + b không suy biến
1 Phép giao hoán p + ro = ro + p = p cho tất cả các p G E(F2 m)
2 Phủ định Nếu p = (x,y) G E( F2 m), khi đó (x, y) + (x, x + y) = ro
Điểm (x, x + y) được ký hiệu là — p và được gọi là âm của p;lưu ý rằng — p là một điểm trong E( F 2 m), Ngoài ra, — 00 = 00
3 Nhân điểm Cho p = (x 1 ,y 1 ) G E(F 2 m ) và Q = (x2,y2) G E( F 2 m), trong đó (p
^ ± Q ) Khi đó p + Q = (x3 , y3) , trong đó
x 3 = Ả 2 + Ả + X Ấ + x 2 + a và y3 = A(Xi + x3 ) + x 3 +y ±
Với Ả = x 1 + y 1 / x 1
Ví dụ 3.6 (đường cong elliptic không suy biến trên F 2 4 ) Xem xét trường hữu hạn
F 2 4 như đại diện của đa thức giảm f (x) = <4 + < + 1 (xem ví dụ 2.2) Một yếu tố
a 3 ^ 3 +a 2 ^ 2 + a 0 E F 24 được biểu diễn bởi chuỗi bit (ư3ư2ư1ư0) chiều dài 4; ví dụ, (0101) thể hiện £2 + 1 Cho a = £3 , b = £3 + 1 và xem xét đường cong elliptic không suy biến
(1000,0001) (1000,1001) (1001,0110) (1001,1111) (1011,0010)
(1100,0000) (1100,1100) (1111,0100) (1111,1011)
Trang 3126
Các ví dụ về phép cộng đường cong elliptic là (0010,1111) + (1100,1100)
= (0001,0001), và 2 (0010,1111) = (1011,0010)
Luật nhóm cho E /F2 m : y2 + cy = X3 + ax + b suy biến
Tính chất giao hoán p + ro = ro + p = p cho tất cả các p E E(F2 m)
Phủ định Nếu p = (x,y) E E(F2 m), sau đó (x, y) + (x,y + c) = ro Điểm (x,y + c) được ký hiệu là — p và được gọi là âm của p; lưu ý rằng — p là một
điểm trong E( F 2 m) Ngoài ra, — 00 = 00
Nhân điểm Cho p = (x1, y± ) E E(F 2 m) và Q = (x2,y2) E E(F 2 m), trong đó p
Trang 3227
CHƯƠNG II NGHIÊN CỨU TÌM HIÊU THỰC THI HỆ MÃ CÓ XÁC THỰC DỰA TRÊN ĐƯỜNG CONG ELLIPTIC (ECIES)
2.1 Giới thiệu chung về ECIES
Việc sử dụng đường cong elliptic trong việc thiết kế các giao thức mật mã cho ta hai lược đồ nổi tiếng được ứng dụng rộng rãi trong thực tế cũng như được đưa vào trong các chuẩn mật mã trên thế giới Đó là hệ chữ ký số ECDSA và hệ
mã hóa ECIES tích hợp đường cong elliptic
Hệ chữ ký số ECDSA là phiên bản sử dụng đường cong elliptic của thuật toán chữ ký số quen thuộc DSA Nó là là lược đồ chữ ký số dựa trên đường cong elliptic chuẩn hóa phổ biến nhất, có trong các chuẩn ANSI X9.62, FIPS 186-2, IEEE 1363-2000 và ISO/IEC 15946-2
Hệ mã hóa ECIES dựa trên giao thức DHAES/DHIES của Abdalla, Bellare và Rogaway, nó là một biến thể của lược đồ mã hóa khóa công khai ElGamal Hệ mã hóa này đã được chuẩn hóa trong ANSI X9.63 và ISO/IEC 15946-3
Như tên của nó cho biết, ECIES là một chương trình mã hóa tích hợp sử dụng các chức năng sau:
• Thỏa thuận khóa (KA): Sử dụng để tạo ra một bí mật được chia sẻ bởi hai bên
• Chức năng dẫn xuất khóa (KDF): Cơ chế tạo ra một bộ khóa từ bộ sinh khóa và một số thông số tùy chọn
• Mã hóa (ENC): Thuật toán mã hóa đối xứng
• Mã xác thực thông báo (MAC): Dữ liệu được sử dụng để xác thực thông
Trang 33Alice sẽ được đại diện là u và u, tương ứng Tương tự, chúng tôi sẽ đề cập đến các khóa riêng và công khai của Bob dưới dạng V và V tương ứng
Trong ECC, khóa riêng là phần tử của trường hữu hạn, hoặc G F (p ) hoặc
G F ( 2 m ) , trong khi khóa công khai là các điểm thuộc đường cong elliptic và
được tính là sản phẩm của khóa riêng và bộ tạo G của đường cong elliptic Các bước (thể hiện trong hình 2) mà Alice phải hoàn thành như sau:
1) Alice phải tạo một cặp khóa tạm thời bao gồm trong phần tử hữu hạn
trường u và đường cong elip điểm u = u.G Cặp khóa đó sẽ được tạo ra giả ngẫu
nhiên cho quy trình hiện tại
2) Sau khi các khóa tạm thời u và u được tạo ra, Alice sẽ sử dụng chức năng Thỏa thuận khóa, KA, để tạo ra một giá trị bí mật được chia sẻ, là kết quả của phép nhân u V, xem như các giá trị đầu vào và khóa công khai của Bob V 3) Sau đó, Alice phải lấy giá trị bí mật được chia sẻ u V và các tham số tùy chọn khác (ví dụ: biểu diễn nhị phân của khóa công khai tạm thời u) làm dữ liệu đầu vào cho chức năng sinh khóa, KDF Đầu ra của hàm này là sự liên kết của khóa mã hóa đối xứng, kENC và khóa MAC, kMAC
4) Với phần tử kENC và thông báo, m, Alice sẽ sử dụng thuật toán mã hóa đối
xứng, ENC, để tạo ra thông báo được mã hóa, c
5) Lấy thông báo được mã hóa c, kMAC và các tham số tùy chọn khác, chẳng hạn như chuỗi văn bản được cả hai bên đồng ý trước đó, Alice phải sử dụng hàm
Trang 3429
MAC đã chọn để tạo thẻ
6) Cuối cùng, Alice sẽ lấy khóa công khai tạm thời u, thẻ và thông báo được
mã hóa c, và sẽ gửi mật mã ( u || tag || c) bao gồm ba phần tử nối đó vào Bob
Hình 2.1 Sơ đô chức năng mã hóa ECIES
Về quá trình giải mã, các bước mà Bob phải thực hiện (như Hình 2.2)
Trang 3530
Hình 2.2 Sơ đồ chức năng giải mã ECIES
1) Sau khi nhận được mật mã ( u || tag || c) từ Alice, Bob phải truy xuất khóa công khai tạm thời u, thẻ và thông điệp được mã hóa c, để anh ta có thể xử lý riêng
các phần tử đó
2) Sử dụng khóa công khai tạm thời u và khóa riêng của mình V, Bob sẽ nhân
cả hai phần tử để tạo ra giá trị bí mật được chia sẻ V u, do kết quả của tính toán
này giống với sản phẩm u V, đó là cốt lõi của thuật toán Diffie- Hellman ([1] và
[7])
3) Dùng như đầu vào giá trị bí mật được chia sẻ u V và các tham số tùy chọn tương tự mà Alice đã sử dụng, Bob phải tạo cùng mã hóa và các khóa MAC bằng phương thức của quy trình KDF
4) Với khóa MAC k MAc , thông điệp được mã hóa c và các tham số tùy chọn được sử dụng bởi Alice, Bob sẽ tính toán tag * đầu tiên, và sau đó anh ta sẽ so sánh giá trị của nó với thẻ mà anh ta nhận được như một phần của mật mã Nếu các giá trị khác nhau, Bob phải từ chối mật mã do lỗi trong quy trình xác minh MAC
5) Nếu giá trị tag do Bob tạo ra là đúng, thì anh ta sẽ tiếp tục quá trình bằng