1
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
2
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
3
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 tố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
4
TÀI LIỆU THAM KHẢO ........................................................................... 64
PHỤ LỤC ...................................................................................................... 1
5
Viết tắt
CÁC KÝ HIỆU, CHỮ VIẾT TẮT
Tiếng anh
Tiếng việt
AES
Advanced Encryption Standard
Chuẩn mã hóa cao cấp
DEC
Decryption
Giải mã
DES
Data Encyption Standard
Chuẩn mã hóa dữ liệu
DL
Discrete logarithm
Logarit rời rạc
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
Elliptic Curve Discrete Logarithm
Bài toán logarithm rời rạc trên
Problem
đường cong elliptic
Elliptic Curve Integrated
Lược đồ mã hóa tích hợp đường
ECIES
Encryption Scheme
cong elliptic
ENC
Encryption
Mã hóa
ECDLP
Institude Of Electronics Engineers Tổ chức đánh giá của cộng đồng
IEEE
khoa học kỹ thuật
Thuật tốn mã hóa khóa cơng
RSA
Ron Rivest, Adi Shamir, Adleman
khai RSA
1
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 tồ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 tồ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
2
hữu hạn F p, tập trung phân tích, đánh giá mức độ an tồn ECIES, xây dựng
chương trình các thuật tố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 tố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 tố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 tồn.
Chương 3: Xây dựng chương trình các thuật tố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 tốn thực thi hệ mã có xác thực dựa trên đường cong elliptic (ECIES).
3
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 tồ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 tồ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 tồ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
4
❖ Mục tiêu an ninh
1. Bảo mật: giữ bí mật dữ liệu, trừ những người có thẩm quyền để xem thơng
điệp đó (các thư gửi từ A tới B sẽ khơng thể đọc được bởi E).
2. Tính tồn vẹn dữ liệu: bảo đảm rằng dữ liệu không bị thay đổi bởi bên thứ 3
(B sẽ có thể phát hiện khi dữ liệu được gửi bởi A đã được sửa đổi bởi E).
3. Xác thực nguồn gốc dữ liệu: xác thực nguồn gốc dữ liệu (B sẽ có thể xác
minh rằng dữ liệu được cho là đã gửi bởi A thực sự có nguồn gốc với A).
4. Xác thực định danh: xác thực danh tính của một thực thể (B phải được xác
thực về danh tính của thực thể giao tiếp khác).
5. Chống chối bỏ: ngăn chặn một thực thể từ chối các cam kết hoặc hành động
trước đó (khi B nhận được một thơng điệp có chủ ý từ A, B không chỉ xác thực
rằng thông điệp bắt nguồn từ A, nhưng B có thể xác thực bên thứ ba trung lập về
điều này; do đó A khơng thể phủ nhận đã gửi tin nhắn đến B).
❖ 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. Ngồ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 tố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 khố 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 ngun 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
5
tiến (Advanced Encryption Standard - AES) để bảo mật. Hơn nữa, có thể sử dụng
thuật tốn mã xác thực thơng báo (MAC) như HMAC để kiểm tra được tính tồ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à khố 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 = ENck(m) sang B. Khi nhận c, B sẽ dùng hàm DEC và
khóa k để phục hồi m = DEck (c) . Nếu muốn tính tồ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 tốn thẻ xác thực t = MA ck (m) của một bản rõ m sử dụng thuật tố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 khố 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 - 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 khố. 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
6
thể trong mạng và sau đó sử dụng các khố này để phân phối một cách an tồn
khố 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ã khố 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ã
khố cơng khai chỉ 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 eB 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à
dB 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ó u cầu về tính bí mật trên e B. Điều quan trọng là chỉ có A nhận
7
đ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 eE 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 dA để 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 tốn xác minh chữ ký để xác
nhận rằng s đã thực sự đuợc tạo ra từ m và dA. 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ó u cầu về bí mật đối với khóa cơng khai e A,
đ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 khố đã đượ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ế. Ngồi ra, hoạt động của khố 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 tốn khố
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
8
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à khố 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 tố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ố ngun 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à khố cơng khai tương ứng là y = gxmod 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 —
1.
2. Chọn một phần tử g của trật tự q:
3. Chọn tùy ý h E [1, p — 1 ] và tính g = hP~Ỵ')'q mod p
4. Nếu g = 1 thì đi tới bước 2.1.
5. Trả về (p ,q ,g ).
Thuật toán 2. Sinh cặp khoá DL
Đầu vào: Các tham số miền DL (p , q, g).
9
Đầu ra: Khóa cơng khai y và khóa bí mật X.
1. Chọn X E R [1, q —1 ].
2. Tính y = gx mod p
3. Trả về (y , X)
* Sơ đồ mã hóa DL
Chúng tơi trình bày các thủ tục mã hóa và giải mã cho (cơ bản) khóa cơng
khai ElGamal chương trình mã hóa như các thuật tốn 1.8 và 1.9, tương ứng. Nếu
y 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 = myk mod p và c1 = gk mod p cho người nhận sử dụng khóa riêng
của mình để tính tốn
C* — gkx = yk (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 tốn yk (mod p). Nhiệm vụ này cần tính tốn yk (mod p)từ các thông số
miền (p, q, g), y, và c = gk (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 tốn logarithm rời rạc.
Thuật tố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ã ( C1, C2).
1. Chọn k e R[1, q —1 ].
2. Tính c = g mod p .
10
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), khố bí mật X, bản mã ( C1,
C2).
ĐÀU RA: bản rõ m.
1. Tính m = c2 .c~x mod p
2. Trả về (m).
❖ Sơ đồ chữ ký DL
Thuật toán chữ ký số (DSA) được đề xuất vào năm 1991 bởi Hoa Kỳ Viện
Tiêu chuẩn và Công nghệ Quốc gia (NIST) và được chỉ định ở Hoa Kỳ Tiêu
chuẩn xử lý thông tin liên bang (FIPS 186) được gọi là Tiêu chuẩn Chữ số Kỹ
thuật số (DSS). Chúng tơi tóm tắt các thủ tục kí kết và kiểm tra trong các Thuật
tốn 1.10 và 1.11.
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 tốn
T = gk mod p, r = T mod q và
s = k~ 1(h +xr) (mo d q)
Trong đó h
= H(m) là thơngbáo. A là chữký trên m cặp (r,
(1.2)
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 khố 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)
11
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 —
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).
1. Chọn k e R [1, q —1 ].
2. Tính T = gk mod p
3. Tính r = T mod q. Nếu r = 0 thì đi đến buớc 1.
4. Tính h = H(m).
5. Tính 5 = k \h + xr) mod q. Nếu s = 0 thì đi đến buớc 1.
6. Trả về (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), khố 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ý").
2. Tính h = H(m).
3. Tính w=s 1 mod q
-
4. Tính u = hw mod q và u2 = rw mod q.
5. Tính T = gu1 yu2 mod p
6. Tính r = T mod q
12
7. Nếu r = r sau đó trả về ("Chấp nhận chữ ký");
Không trả về ("Từ chối chữ ký").
1.3. Cơ sở toán học hệ mật đường cong Elliptic
1.3.1. Các định nghĩa
- Định nghĩa 1:
Một đường cong Elliptic dạng Weierstrass đầy đủ là tập hợp tất cả các
điểm với 3 tọa độ x, y, z thỏa mãn phương trình:
y2 z + axyz + ayz3 = x3 + apX z+a4xz2 + a6z3
với @1,
@2, a3, @4, @6 E K
Phương trình đường cong Elliptic dạng Weierstrass rút gọn sẽ được biểu
diễn bởi phương trình:
E : y y + Ax + B ; với A,B e FP
- Định nghĩa 2:
Biệt thức của đường cong E được xác định bởi công thức:
A= -16(4 A3 + 27 B2)
- Định nghĩa 3:
Gọi f (x, y) = x3 + Ax + B - y . Một điểm P(x,y) E E được gọi là điểm khơng kì
2
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
13
điểm của nó là khơng kì dị. Ngược lại, nếu có ít nhất một điểm kì dị thì đường
cong được coi là đường cong kì dị.
- Định nghĩa 5:
Đại lượng j-bất biến của đường cong E khi A/(.) là:
4r
j = j(E) = 1728 4
4 A3 + 27 B B
- Định nghĩa 6:
Hai đường cong E và E’ xác định bởi phương trình Weierstrass rút gọn với
các biến số tương ứng là (x, y) và (x’, y’) được gọi là đẳng cấu trên trường k nếu
và chỉ nếu tồn tại các hằng số r, s, t E K và uEK* sao cho khi thực hiện
2
'
3
'
2
'.,.<>
đô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 y1 = 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 = x3 + _3
- Định nghĩa 8:
. x + _2
_; j * 0,1728
1728 - j 1728 - j
14
Đườ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 nguyên tố, p>3)
p
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 P1 (X! + y-Ị_) và P2 (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 P1 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 P1 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 tốn trên đường cong Elliptic
15
❖ Phép cộng
Giả sử P = (xr^ỵ) và Q = (x2,y2) là hai điểm của F nếu Xỵ = X2 thì ta định
nghĩa P+Q=O. Ngược lại thì P+Q= (x3,y3) e Etrong đó:
16
x = Ằ2 - x - x, y = Ằ(x1 - x) - y
Với:
X= (y2 -y1) / (x2 - x1), khi P # Q (nếu x1 = x2 thì X là hệ số góc đường thẳng
qua P và Q
(3x2 + a) / 2yj, khi P = Q (X là đạo hàm của đường cong tại P)
Hình 1.3. Phép cộng trên đường cong Elliptic
Tính chất:
• Dễ thấy rằng tập E với phép tốn cộng đó tạo thành một nhóm Abelian:
• Tính đóng: Nếu P, Q E E thì P + Q E E.
• Tính kết hợp: Nếu P, Q, R GE thì P + ( Q + R) = R + ( Q + P).
• Tồn tại phần tử trung hồ O: với mọi P ■ E thì P + O = O + P = P (theo
định nghĩa).
• Tồn tại phần tử nghịch đảo: với mỗi P(x, y) E E thì ln tồn tạ phần tử
-P(x, -y) e E để P + (-P) = O.
• Tính chất giao hốn Nếu P, Q E E thì P + Q = Q + P.
17
❖ 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ố
ngun dương k ln 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à p2(x2,y2) là các điểm trên E với p1, p2 ^ 0. Khi
đó p1 + p2 = p3 = (x3, y3) với x3, y3 được tính như sau :
a. (Cơng thức cộng điểm) Nếu x1 E x2 thì
x3 = Ấ2 — X1 — x2
y3 = Ả(x1-x3) - y 1
Với
b. Nếu
nhưng
, thì
c. (Cơng thức nhân đơi điểm) Nếu p1 = p2 và y 1 ^ 0 , thì
x3 = Ả2 — 2x±
y3 = k(x± - x3) - yẤ
Với Ằ = ( 3 xị + A ) I 2 y x
d. Nếu p1 = p2 và y 1 = 0, p} + p2 = 0
18
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 qt 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.
❖ Các nhóm
Một nhóm abelian (G, *) bao gồm một tập G với một phép toán nhị phân
*: G X G ^ G đáp ứng các tính chất sau:
(i)
(Tính kết hợp) a * (b * c) = (a * b) * c cho tất cả a, b, c e G.
(ii)
(Tồn tại một nhận dạng) tồn tại một phần tử e e G sao cho a * e = e * a = a
cho tất cả a e G.
(iii)
(Tồn tại phần tử nghịch đảo) Với mỗi một a e G, tồn tại một phần tử b E G,
được gọi là nghịch đảo của a, sao cho a * b = b * a = e.
(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
19
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 hồ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
0, và
tg =
(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 mt 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 = X3 + 2x + 4 trong đó a, b e Fp thoả mãn 4a3 + (1.4)
27 b2 ^ 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
20
elliptic trên F 7 với phương trình xác định
y2 = X3 + 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 hồ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à khố cơng khai tương ứng là ọ = dp.
Bài tố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.