CÁC KÝ HIỆU VIẾT TẮT Alice Người gửi tin hoặc người thực hiện việc ký Ban ĐK Ban đăng ký Ban KP Ban kiểm phiếu Ban KT Ban kiểm tra Bob Người nhận tin hoặc người yêu cầu ký EC Đường cong
Trang 1MỤC LỤC
LỜI CAM ĐOAN ii
CÁC KÝ HIỆU VIẾT TẮT iii
CÁC KÝ HIỆU TOÁN HỌC iv
MỞ ĐẦU 1
1 Chương 1 CÁC KHÁI NIỆM CƠ BẢN 5
1.1 Số nguyên 5
1.2 Nhóm 8
1.3 Vành 10
1.4 Ánh xạ 10
1.5 Trường 10
1.6 Không gian vector 12
1.7 Vành tuyến tính 13
1.8 Trường hữu hạn 14
1.9 Không gian chiếu 16
2 Chương 2 ĐƯỜNG CONG ELLIPTIC 17
2.1 Khái niệm đường cong Elliptic 17
2.1.1 Khái niệm 17
2.1.2 Đường cong Elliptic trên trường nguyên tố hữu hạn Fp 17
2.1.3 Đường cong Elliptic trên trường nhị phân hữu hạn GF(2 m ) 18
2.1.4 Các phép toán 19
2.2 Bài toán Logarith rời rạc 20
2.3 Đếm số điểm của đường cong elliptic trên trường Fq .20
2.4 Tính chất đồng cấu của đường cong elliptic 21
3 Chương 3 CÁC HỆ MẬT TRÊN ĐƯỜNG CONG ELLIPTIC 22
3.1 Lịch sử 22
3.2 Nhúng bản rõ vào các đường cong Elliptic 23
3.2.1 Imbeding 23
Trang 23.2.2 Mask 24
3.3 Một số hệ mã hóa trên đường cong elliptic 24
3.3.1 Hệ mã hóa “tựa” Elgamal 24
3.3.2 Hệ mã hóa Menezes-Vanstone 25
3.4 Một số sơ đồ chữ ký trên đường cong elliptic 27
3.4.1 Sơ đồ chữ ký ECDSA 27
3.4.2 Sơ đồ chữ ký Nyberg - Rueppel 28
3.4.3 Sơ đồ chữ ký mù Harn trên EC 29
3.4.4 Sơ đồ đa chữ ký mù Harn trên EC 32
3.5 Một số phương pháp tấn công các hệ ECC 34
3.5.1 Phương pháp tấn công “baby-step giant - step” 34
3.5.2 Phương pháp tấn công MOV 35
3.5.3 Các thuật toán tấn công khác 38
3.6 Lựa chọn đường cong Elliptic phù hợp 38
3.6.1 Trường K 38
3.6.2 Dạng của đường cong elliptic 39
3.6.3 Phương pháp lựa chọn 40
3.7 Một số chuẩn sử dụng hệ mật ECC 41
3.8 So sánh RSA và ECC 43
4 Chương 4 ỨNG DỤNG CỦA ECC TRONG BỎ PHIẾU ĐIỆN TỬ 46
4.1 Khái niệm chung về bỏ phiếu điện tử 46
4.1.1 Các thành phần trong hệ thống bỏ phiếu điện tử 46
4.1.2 Các giai đoạn bỏ phiếu điện tử 47
4.1.3 Tính chất của bỏ phiếu điện tử 47
4.2 Các kỹ thuật bỏ phiếu điện tử 48
4.2.1 Kỹ thuật chữ ký mù 48
4.2.2 Kỹ thuật mã hóa đồng cấu 51
4.2.3 Kỹ thuật trộn phiếu 53
Trang 34.3.1 Chuẩn bị 56
4.3.2 Cấp quyền bầu cử 57
4.3.3 Bỏ phiếu 59
4.3.4 Kiểm phiếu 61
4.4 Quy trình Bỏ phiếu dựa trên ECC 62
4.4.1 Cấp quyền bầu cử 62
4.4.2 Bỏ phiếu 63
4.4.3 Kiểm phiếu 63
5 KẾT LUẬN 64
DANH MỤC CÔNG TRÌNH CỦA TÁC GIẢ 66
TÀI LIỆU THAM KHẢO 67
Trang 4LỜI CAM ĐOAN
Tôi xin cam đoan kết quả đạt được trong luận văn là sản phẩm của riêng
cá nhân, không sao chép lại của người khác Trong toàn bộ nội dung của luận văn, những điều được trình bày hoặc là của cá nhân hoặc là được tổng hợp từ nhiều nguồn tài liệu Tất cả các tài liệu tham khảo đều có xuất xứ rõ ràng và được trích dẫn hợp pháp
Tôi xin hoàn toàn chịu trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho lời cam đoan của mình
Hà Nội, ngày 30 tháng 04 năm 2006
Trương Thị Thu Hiền
Trang 5CÁC KÝ HIỆU VIẾT TẮT
Alice Người gửi tin hoặc người thực hiện việc ký
Ban ĐK Ban đăng ký
Ban KP Ban kiểm phiếu
Ban KT Ban kiểm tra
Bob Người nhận tin hoặc người yêu cầu ký
EC Đường cong Elliptic (Elliptic Curve)
ECC Mã hóa đường cong Elliptic (Elliptic Curve Cryptosystem) ECDSA Thuật toán ký trên EC
EDLP Bài toán Logarith rời rạc trên EC
E-Voting Bỏ phiếu điện tử (Electronic Voting)
gcd Ước số chung lớn nhất (Greatest Common Divisor)
GF Trường hữu hạn (Galois Field)
IEEE Institute of Electrical and Electronics Engineers
IETF Internet Engineer Task Force
IFP Bài toán ước số nguyên (Integer Factorization Problem) lcm Bội số chung nhỏ nhất (Least Common Multiple)
MOV Phương pháp tấn công Menezes – Okamoto - Vanstone NIST National Institute of Standards
RFC Request For Comments
RIPEMD-160 Hàm băm 160 bit
RSA Hệ mã hóa khóa công khai Rivest – Shamir – Adleman TOF Hàm cửa sập một chiều (Trapdoor One-way Function)
Trang 6CÁC KÝ HIỆU TOÁN HỌC
g Nhóm cyclic được sinh bởi g
#E Số phần tử của đường cong elliptic
C Tập các bản mã có thể
d K Thuật toán giải mã
E Đường cong elliptic
e K Thuật toán mã hóa
F* Nhóm nhân trên trường F
F q Trường hữu hạn với q phần tử
G Điểm cơ sở của E
K Không gian các khóa
O Phần tử trung hòa của E
sig K Thuật toán ký số
ver K Thuật toán kiểm tra chữ ký
Z p Vành các số nguyên dương p
φ(n) Hàm phi Euler các số nguyên trong Z n nguyên tố cùng nhau với n
Trang 7MỞ ĐẦU
1 Bỏ phiếu điện tử - Thực trạng
Trong suốt nhiều thế kỉ gần đây trong lịch sử thế giới, các cuộc bầu cử đã giữ một vai trò quan trọng trong việc xác lập các thể chế chính trị của các quốc gia từ lớn đến nhỏ Trong thế giới hiện đại, việc bỏ phiếu bầu quốc hội (đơn vị tương ứng ở Anh,
Mỹ là Hạ Nghị Viện, ở Nga là Duma quốc gia) là một trong số những sự kiện quan trọng nhất của đất nước Từ những năm 1990, khi Internet bùng nổ, một câu hỏi
đã được quan tâm là: liệu một ngày nào đó, có thể thực hiện việc bỏ phiếu qua Internet? Nhiều nước ở Châu Âu đã chuẩn bị các nghiên cứu với nhiều dự án cùng nhiều chiến lược khác nhau, dưới nhiều góc độ: Kỹ thuật, Luật, Chính sách, Xã hội Ngoài ra,
bỏ phiếu điện tử cũng được nghiên cứu và thử nghiệm ở những nước khác như Mỹ, Braxin, Mêhicô, Nga, Ấn Độ (xem [11])
Người ta đã bỏ rất nhiều công sức vào việc cải tiến các phương thức bầu cử, khiến cho các cuộc bầu cử ngày càng trở nên "tốt" hơn Các phương thức này được thay đổi theo từng thời kì, theo sự tiến bộ của xã hội Trong xu thế thực hiện
"chính phủ điện tử" thì việc số hoá cuộc bầu cử để thay thế cho phương thức truyền thống là điều sẽ phải diễn ra trong tương lai gần
Trong các ứng dụng an toàn thông tin, thì bỏ phiếu điện tử (E-Voting) là ứng dụng đòi hỏi tính bảo mật cao nhất Nó quan trọng vì sự thất bại của nó có những ảnh hưởng nghiệm trọng đến các lĩnh vực khác Ngay cả những giải pháp bảo mật tốt nhất hiện nay cũng chưa giải quyết triệt để bài toán này Người ta quan tâm tới E-voting dưới các góc nhìn về luật (các luật đã đủ chưa để có thể cho phép tiến hành E-Voting?), giải pháp công nghệ (các kỹ thuật hiện có đã đáp ứng đầy đủ các yêu cầu của E-Voting
và có phù hợp với các luật không?) và tâm lý (các cử tri có thực sự mong muốn thực hiện bỏ phiếu bằng E-Voting? Và nếu có, họ có hài lòng với một hệ thống E-Voting đã thiết kế và thử nghiệm không?)
Trang 8Như đã nói ở trên, theo thời gian thì các phương thức bỏ phiếu cũng thay đổi,
và phương thức gần đây nhất là bỏ phiếu bằng máy tính điện tử thông qua các mạng công khai (Internet, LAN,…) Với phương thức này thì mật mã học thực sự là công cụ đảm bảo an toàn cho các “lá phiếu điện tử”
mã khóa bí mật gồm 2 hàm: e k :M C, d k :C M , k Ksao cho d k(e k(m)) m
với mọi m M và k K Trong hệ mật mã này, người gửi (giả sử là Alice) và người nhận (Bob) cùng thỏa thuận một khóa bí mật, bằng cách gặp mặt nhau trực tiếp hoặc nhờ một trung tâm tin cậy phân phối khóa Nếu Alice muốn gửi cho Bob một thông điệp m M, cô ấy sẽ gửi bản mã ce k (m)cho Bob Bob sẽ khôi phục bản rõ m
bằng việc dùng hàm giải mã d k Hệ mật mã khóa bí mật phải đảm bảo rằng các hàm
k
e và d k phải dễ áp dụng nhưng vẫn an toàn trước kẻ tấn công, khi có bản mã c vẫn khó tính được m (hoặc khóa k) Dù hệ mật mã khóa bí mật vẫn đang được dùng trong nhiều
ứng dụng, nhưng vẫn còn một số nhược điểm như vấn đề phân phối khóa, vấn đề quản
lý khóa và nó không hỗ trợ việc tạo chữ ký điện tử
Ý tưởng chính của các thuật toán khóa công khai là sử dụng 2 khóa khác nhau cho 2 quá trình mã hóa và giải mã Ý tưởng này được phát minh bởi Whitfield Diffie
và Martin Hellman (1976), độc lập với Ralph Merkle (1978) Từ đó, nhiều hệ mật mã khóa công khai được đưa ra, nhưng hầu hết chúng đều hoặc không an toàn hoặc không khả thi Các thuật toán khóa công khai đều chậm hơn rất nhiều so với các thuật toán khóa bí mật
Trang 9Thuật toán RSA chậm hơn 1000 lần so với các thuật toán khóa bí mật phổ biến như DES khi triển khai trong các thiết bị phần cứng; và chậm hơn 100 lần trong các phần mềm mã hóa khi mã hóa cùng một khối lượng dữ liệu như nhau Tuy nhiên, hệ mật mã khóa công khai có một ưu điểm nổi trội là cho phép tạo chữ ký điện tử Khóa riêng được người sở hữu giữ bí mật và nó được sử dụng để tạo chữ ký điện tử hoặc để giải mã các thông điệp đã được mã hóa bằng khóa công khai Khóa công khai không cần thiết phải giữ bí mật do tính chất “khó tính được khóa riêng từ khóa công khai” của cặp khóa Vì vậy, người dùng có thể công bố khóa công khai trên các kênh công cộng cho những ai muốn gửi thông tin cho họ hoặc xác minh chữ ký của họ
Trong lịch sử hơn 20 năm của mật mã khóa công khai, đã có nhiều bài toán
“khó” được đưa ra xem xét để ứng dụng cho các vấn đề mật mã học Trong đó có 2 bài toán nổi bật nhất là bài toán logarith rời rạc trên trường hữu hạn và bài toán tìm ước số nguyên tố Năm 1985, Neal Koblitz và V.S.Miller đã độc lập nhau cùng đề xuất việc
sử dụng các đường cong elliptic cho các hệ mã hóa khóa công khai Họ không phát minh ra thuật toán mã hóa mới với các đường cong elliptic trên trường hữu hạn,
mà họ dùng những thuật toán đã có như Diffie – Hellman, sử dụng các đường cong elliptic Các đường cong Elliptic có thể dùng trong nhiều ứng dụng như kiểm thử
số nguyên tố hoặc bài toán tìm ước số nguyên tố Các hệ mật mã trên đường cong elliptic (ECC) được dự báo là sẽ phổ biến hơn RSA do khóa nhỏ gọn hơn nhiều (khoảng 163 bit) so với RSA (1024 bit); vì vậy, tốc độ mã hóa nhanh hơn so với RSA
Việc thương mại hóa ECC đã được một số nơi thực hiện như công ty Certicom
và công ty RSA đã hỗ trợ mã hóa ECC trong các bộ công cụ phát triển Tuy nhiên, một vấn đề có thể ảnh hưởng đến sự chấp nhận ECC rộng rãi như một phần của cơ sở hạ tầng khóa công khai là các kỹ thuật thực thi đường cong elliptic, thói quen, các thuật toán, và các giao thức ECC đòi hỏi các thủ tục toán học phức tạp trong việc khởi tạo các đường cong Các chuyên gia công nghệ thông tin vẫn chưa hiểu thấu đáo để thiết
kế các hệ thống bảo mật dựa trên mật mã học, trong khi hệ RSA thì không quá phức tạp và khó hiểu
Trang 103 Bỏ phiếu điện tử và ECC
ECC không phải là một khái niệm mới Kể từ khi được phát minh độc lập bởi Miller và Koblitz, nó đã được nghiên cứu rộng rãi về tính an toàn cũng như tính hiệu quả Hội nghị quốc tế mới nhất về ECC được tổ chức tại Toronto – Canada (09/2005) với chủ đề “ECC và ứng dụng” đã là một bằng chứng cho việc ECC thực sự đang được quan tâm Cho đến thời điểm hiện tại, 2 hệ mật mã chính là RSA và Elgamal vẫn đang được sử dụng rộng rãi và chưa hề có một phương pháp tấn công hiệu quả nào để phá
vỡ chúng Câu hỏi đặt ra là tại sao chúng ta cần một hệ mật mã mới Đó là vì sự phát triển nhanh chóng của công nghệ Có thể thấy các máy tính ngày nay khác rất xa các máy tính trước đây Chúng ta sử dụng các thiết bị cầm tay như điện thoại di động, pocketPC và hiển nhiên sẽ cần những phương pháp truyền tin an toàn cho các thiết bị này Tuy nhiên, các thiết bị này lại bị giới hạn về bộ nhớ, năng lực tính toán, băng thông truyền Chúng ta cần một hệ mật mã mới có kích thước khóa cũng như độ dài chữ ký ngắn hơn ECC đáp ứng các yêu cầu đó
Bỏ phiếu điện tử muốn được ứng dụng rộng rãi thì cần cho phép thực hiện trên nhiều thiết bị khác nhau, từ máy tính đến các thiết bị cầm tay Với mục đích giảm các yêu cầu về năng lực tính toán (tức là giảm chi phí), tăng độ an toàn, hướng tiếp cận ECC là một giải pháp hiệu quả
Trong phạm vi trình bày của luận văn, một số kiến thức sau xem như đã biết trước:
1 Độ phức tạp thuật toán
2 Phân lớp bài toán
3 Bài tóan “dễ”, bài toán “khó”, bài toán không giải được
4 Hàm một chiều, hàm một chiều có cửa sập
5 Mã hóa, chữ ký điện tử, hàm băm, đại diện thông điệp
Trang 111 Chương 1 CÁC KHÁI NIỆM CƠ BẢN
Với ~ là một quan hệ tương đương trên tập A Gọi P = {[a] | a A}, trong đó
[a] = {b A | a ~ b} là một phân hoạch của A, khi đó:
Một phần tử S P là một lớp tương đương trên phân hoạch P
Định lý 1.1 (Thuật toán tìm ước số chung của Euclid)
Với mọi a, b Z, b 0, tồn tại duy nhất q, r Z để: a = bq + r, 0 r |b|
Nếu r = 0 thì b|a Ngược lại thì b a Với a1, …, a k Z, nếu b|a i (i = 1,…, k) thì
b gọi là ước chung của a1,…, a k Ước chung lớn nhất của a1, …, a k ký hiệu là
gcd(a1, …, a k ) và a, b Z là nguyên tố cùng nhau khi và chỉ khi gcd(a, b) = 1
Định lý 1.2
Nếu a, b Z và khác 0 thì d = gcd(a, b) là phần tử nhỏ nhất trong tất cả các số
nguyên dương có dạng ax + by (x, y Z)
Trang 12Nếu r 0 thì nó phải thuộc C và điều này mâu thuẫn với lựa chọn e Vì vậy, e|a
Tương tự, e|b; do đó e d Mặt khác, e = ax 0 + by 0 và d|a, d|b, suy ra d|e
Nếu a = ed, b = fd, thì rõ ràng d|c Mặt khác nếu d|c, đặt kd = c
Vì tồn tại x 0 , y 0 Z để ax 0 + by 0 = d, nên a(kx 0 ) + b(ky 0 ) = kd = c
Với mọi a, b, m Z ta định nghĩa
a b mod m khi và chỉ khi m|(a - b)
Dễ nhận thấy, với m cố định, đây là một quan hệ tương đương trên Z Vì vậy, Z được phân hoạch thành các lớp tương đương: Z m = {[a] | a Z}, với [a] = {b Z | a b mod m} Mỗi lớp tương đương [a] được thể hiện bằng các phần tử của nó Ví dụ, Z m = {0, 1, 2, …, m – 1}
Định lý 1.4
Với a, m Z, tồn tại x Z thỏa mãn ax 1 mod m khi và chỉ khi gcd(a, m) = 1
Trang 13Chứng minh
x Z để ax 1 mod m có x, y Z thỏa mãn ax – my = 1
Theo hệ quả 1.3, định lý hoàn toàn được chứng minh
p N được gọi là nguyên tố khi và chỉ khi p > 1 và a p với mọi
a Z, 1 < a < p Nói cách khác, p N, p > 1, p là nguyên tố khi và chỉ khi với mọi
a, b Z, p|ab p|a hoặc p|b
i i
i M y a
1
mod M trong đó M i = M/m i và M i y i 1 mod m i
Chứng minh
Chú ý rằng M i là tích của tất cả các m j với j i Vì vậy, nếu j i thì
M i 0 mod m j Chú ý, gcd(M i , m i ) = 1, theo định lý 1.4, M i y i 1 mod m i
Trang 14Định lý 1.6
ф(m) = #{a Z m | ab 1 mod m với b Z m}
Chứng minh Dựa vào định lý 1.1, ta có điều phải chứng minh
3 Với mỗi a G, tồn tại một phần tử b G thỏa mãn b * a = a * b = e
(b là duy nhất và được gọi là phần tử nghịch đảo của a)
Ký hiệu G,* là nhóm nhân và G, là nhóm cộng Trong nhóm cộng, phần tử
trung hòa là 0 và phần tử nghịch đảo của a là –a Trong nhóm nhân, phần tử trung hòa
là 1 và phần tử nghịch đảo của a là a -1
,*
G được gọi là nhóm Abel nếu a * b = b * a với mọi a, b thuộc G
Giả G,* là nhóm và H là tập con của G Cấu trúc H, được gọi là nhóm con
Trang 15Nếu G,* là nhóm hữu hạn thì số các phần tử của G,* được gọi là bậc của G
và ký hiệu là |G| Nếu G,* là nhóm nhân hữu hạn, bậc của một phần tử a G là
số nguyên dương nhỏ nhất m thỏa mãn a m = 1 Trong nhóm nhân, với mọi phần tử
thuộc nhóm, m luôn tồn tại
(2) Bậc của mọi phần tử a G chia hết cho |G|
Nếu a G có bậc m thì H = {a k | k Z }là nhóm con của G và có bậc m Nếu G
có một phần tử a có bậc n = |G| thì G = {a k | k Z} và G được gọi là một nhóm cylic,
a được gọi là phần tử sinh của G Ví dụ, tập hợp Z n = {0, 1, 2,…, n – 1} là một nhóm cylic bậc n với toán tử cộng modulo n
Định lý 1.9 (Euler)
Với a, m Z thỏa mãn gcd(a, m) = 1,
1 )
Trang 16(1) Vì ф(p) = p – 1 nên đây là trường hợp đặc biệt của định lý Euler
(2) Dễ dàng thấy nếu a 0 mod p là hiển nhiên, ngược lại theo (1)
Với 2 toán tử hai ngôi * và trên các tập A và B, ta định nghĩa một ánh xạ
f : A B nếu với mọi a, b A ta có: f(a * b) = f(a) f(b)
Giả sử A và B là 2 nhóm (hoặc 2 trường), ta gọi h: A B là một đẳng cấu
từ A đến B nếu h có các phép toán giống các phép toán của các toán tử trên nhóm A
1.5 Trường
Trường F là vành với phần tử đơn vị e 0 và F* = {a F | a 0 } là một nhóm nhân
Trang 17Z x sẽ luôn tồn tại nghịch đảo x-1 Với a, b Z p và
*
p
Z
x , nếu xa xb mod p thì a b mod p a – b 0 mod p
vì p|x(a – b) p|x hoặc p|a – b và *
p
Z x tức là p x Điều này suy ra
xZ p = {xa | a Z p } = Z p trong đó xa = 1 với a Z p vì luôn tồn tại phần tử 1 trong Z p Vậy mỗi *
p
Z x luôn có phần tử nghịch đảo
Định nghĩa
Cho F là một trường Tập con K của F cũng là một trường với các toán tử của F, được gọi là trường con của F, hay F là một trường mở rộng của K Nếu K F thì K được gọi là một trường con hợp lệ của F Trường là tối giản nếu nó không có trường con hợp lệ nào Với trường F bất kỳ, giao F0 của tất cả các trường con hợp lệ là trường
tối giản Trường F được gọi là có đặc số 0 nếu F0 Q nghĩa là F chứa Q như một
trường con Trường F được gọi là có đặc số p nếu F0 Z p
Trường hữu hạn là trường chứa hữu hạn các phần tử Mọi trường hữu hạn có
một số nguyên tố là đặc số của trường Một trường F có đặc số thì với mọi a F,
pa =
p
a
a = 0
Trang 18Nếu H là trường con của K thì H và K có cùng đặc số
F là trường mở rộng của trường K Ký hiệu F = K( ) nếu F là trường mở rộng nhỏ nhất của K chứa Nếu F là trường hữu hạn đặc số p thì nhóm nhân F* = F \ {0}
là nhóm cylic và F = Z p( ) với là phần tử sinh của nhóm F* và được gọi là phần
tử nguyên thủy của F
1.6 Không gian vector
K là trường và V là nhóm cộng Abel V được gọi là không gian vector
trên trường K nếu một toán tử ánh xạ từ K x V V được định nghĩa thỏa mãn các điều
V có dạng c1v1 + c2v2 + …+ c m v m với c i K (i = 1, …, m) là tổ hợp tuyến tính của
v1, …, v m Tập hợp tất cả các tổ hợp tuyến tính gọi là span của v1, …, v m và ký hiệu là
span(v1, …, v m)
Trang 19V là không gian vector trên trường K Các vector v1, …, v m V được gọi là
độc lập tuyến tính trên K, nếu không có các vô hướng c1,…, c m K thỏa mãn:
c 1 v 1 + c 2 v 2 + …+ c m v m = 0
Tập S = {u1, u2,…,u n } của các vector tạo thành cơ sở của V khi và chỉ khi (u1, u2,…,u n ) là độc lập tuyến tính và là span của V Nếu S là một cơ sở của V thì mọi phần tử của V được biểu diễn duy nhất dưới dạng tổ hợp tuyến tính của các phần tử của
S Nếu không gian vector V có cơ sở là một số hữu hạn các vector thì bất kỳ cơ sở nào
của V cũng sẽ có cùng số phần tử Khi đó nó chính là chiều của V trên K
Nếu F là trường mở rộng của trường K thì F là một không gian vector trên K Chiều của F trên K được gọi là bậc mở rộng của F trên K
i
i x a a x a x a
x f
) (
với n là số nguyên dương, các hệ số a i F (0i n)
f
0 )
g
0 ) (
i b x a
x g x f
0
) (
) ( ) (
f
0 )
g
0 ) (
g x f
0 ) ( )
i i j k
j i
k a b c
0 , 0
Vành được tạo thành bởi tất cả các đa thức trên F với toán tử thông thường là cộng và nhân được gọi là vành đa thức trên F và ký hiệu là F[x]
Trang 20Định lý 1.12 (Thuật toán chia cho F[x])
Giả sử f(x) và g(x) F[x] có bậc nguyên dương, tồn tại duy nhất đa thức q(x),
r(x) F[x] thỏa mãn
f(x) = g(x) q(x) + r(x)
với bậc của r(x) nhỏ hơn bậc của g(x)
Nếu r(x) là đa thức 0 thì g(x) được gọi là ước của f(x) Đa thức bất định f(x) trong F[x] là tối giản nếu nó không có ước có bậc thấp hơn f(x) trong F[x] a F là
nghiệm của f(x) F[x] nếu f(a) = 0
Hệ quả
Phần tử a F là nghiệm của đa thức f(x) F[x] khi và chỉ khi x – a là ước của f(x) trong F[x]
Chứng minh
Vì a là nghiệm nên f(a) = 0 Vì f(x) = (x –a).g(x) + r(x) nên bậc của r(x) nhỏ hơn
1, tức là r(x) = c F Vì vậy, c = f(a) = 0 Ngược lại, nếu f(x) = (x – a) q(x) thì f(a) = 0
Trang 21Nếu F là trường hữu hạn có đặc số p thì F có p n phần tử với n nguyên dương
Vì vậy, mọi trường hữu hạn là một mở rộng của trường đẳng cấu Z p với p là đặc số của F
Định lý 1.15
Trường hữu hạn F = F p n là một trường mở rộng của Z p bậc n và mọi phần tử
của F p nlà một nghiệm của đa thức x p n x trên Z p
Chứng minh
Đặc số của F p n là p Tập hợp F* = F \ {0} tạo thành nhóm nhân bậc
p n -1 Với F*, bậc của trong nhóm chia hết cho bậc của F*, p n – 1 Vì vậy, với mọi
Trường F2r chứa F 2 (hoặc Z 2) Nếu viết toán tử cộng trong F2r như là
phép cộng vector và viết phép nhân k và v (k, v F2r ) là một tích vô hướng của k F 2
và v F2r Khi đó F2r được xem là không gian vector trên F 2 với chiều r Ký hiệu d là
chiều của không gian vector này Có thể thực hiện ánh xạ 1 – 1 giữa các phần tử trong
không gian vector d chiều và các d-tuple của các phần tử trong F 2 Vì vậy, có 2 d
phần tử trong không gian vector này Vì d = r, F2r là không gian vector r chiều
Trang 22q
F là một mở rộng của F q 2 phần tử ,F q m là liên hợp trên F q nếu và
là các nghiệm của cùng một đa thức tối giản bậc m trên F q 2 1
, ,,
1.9 Không gian chiếu
Xét L = K n+1 \{0} với K là một trường Với A = (a 0 , a 1 , …, a n ), B = {b 0 , b 1, …,
b n} L, định nghĩa một quan hệ A ~ B gồm A, B và gốc O = (0, 0,…,0) là cộng tuyến,
nghĩa là tồn tại K thỏa mãn a i b i , (i = 0, 1, …, n)
Quan hệ ~ là quan hệ tương đương và định nghĩa một phân hoạch của L Tập thương số
là không gian chiếu ký hiệu là P n (K)
Mặt phẳng chiếu là tập các lớp tương đương của bộ ba (X, Y, Z) với
((X,Y,Z)) ~ (X, Y, Z) (K ) Mỗi lớp tương đương (X, Y, Z) được gọi là một điểm chiếu trên mặt phẳng chiếu Nếu một điểm chiếu có Z 0, thì (x, y, 1) là một thể hiện của lớp tương đương với x =
Trang 232 Chương 2 ĐƯỜNG CONG ELLIPTIC
2.1 Khái niệm đường cong Elliptic
Phương trình trên đúng cho các đường cong trong trường bất kỳ Trong mật mã
học, chúng ta chỉ xét các trường hữu hạn Hai trường được xét là F p với p là số nguyên
tố và F q mvới các phần tử q p r
Xét trường F p (p nguyên tố, p > 3) với công thức đổi biến như sau:
3 2
a X
Khi đó phương trình Weierstrass có dạng:
Thay thế cho Y ở vế trái (2.1):
4/2/4
/
)2/)(
()2/)(
()
2/)(
(
2 3 3
1 2
2 1 2
3 1 3
3 1 1
2 3 1
a X a a X
a Y
a X a Y a a
X a Y X a a
X a Y
Cả XY và Y đều triệt tiêu nên các hệ số a1 và a3 đều phải bằng 0 Vế trái còn lại Y2
Thay thế cho X ở vế phải (2.1):
6 4 2
3 2 4
2 3
6 2
4
2 2 2
3 2
3/27/2)9/(
)3/(
)3/(
)3/(
a a a a
X a a
X
a a
X a a
X a a
Trang 24Y2 3 , a ,b F p, và ( 4a3 27b2 ) 0 (2.3)
Trong phương trình trên, dấu “=” được hiểu là “” Trong toàn bộ luận văn này, quy ước viết ngắn gọn “”là “=”
Xét trường GF(2 m) có đặc số khác 2 Có thể thực hiện phép đổi biến như sau:
1
3 2 1
a
a X a
1
2 3 4
2 1 3 1
a
a a a Y a
Trang 252.1.4 Các phép toán
Giả sử E là đường cong elliptic trên trường F p hoặc F2m và P, Q là 2 điểm trên E
Xét các phép toán sau trên E:
1 Phần tử không: Ký hiệu là O Nếu P là điểm O thì –P cũng là O Với mọi điểm
Q ta định nghĩa O + Q bằng Q
2 Phần tử nghịch đảo: Trong F p , định nghĩa phần tử nghịch đảo của P = (x, y) là
Trong trường F2m ta định nghĩa -P = (x, x+y)
3 P + Q: Nếu P Q, gọi đường thẳng l = P Q giao với E tại một điểm R Khi đó
P + Q bằng –R
4 2P: l là tiếp tuyến với E tại P, R là giao điểm của l với E, định nghĩa 2P = -R
5 kP: kPE(Z p ) với k là số nguyên được tính bằng cách cộng P với chính nó k lần
liên tiếp Để tăng tốc độ tính toán có thể áp dụng thuật toán “nhân đôi và cộng”
Hình 2.1 Phép cộng 2 điểm P + Q = R
Trang 26Hình 2.2 Phép cộng P với chính nó P + P = 2P = R
2.2 Bài toán Logarith rời rạc
Cho nhóm G, giả sử ,G Bài toán logarith rời rạc (DLP) là tìm x để
DLP vì những thuật toán tốt nhất để giải DLP không hiệu quả khi áp dụng cho EDLP
2.3 Đếm số điểm của đường cong elliptic trên trường Fq
Việc xây dựng các hệ mật mã trên đường cong elliptic bao gồm việc lựa chọn
đường cong E thích hợp và một điểm G trên E gọi là điểm cơ sở Xét trường K là F q
Định lý (Hasse)
N là số điểm của E trên trường F q (trường hữu hạn q phần tử) Khi đó:
|N – (q + 1)|2 q Từ định lý Hasse suy ra #E(F q ) = q + 1 – t trong đó |t|2 q
Định nghĩa Bậc của một đường cong elliptic là số điểm của đường cong đó
Bậc của điểm G thuộc E là số k sao cho kG = O; khi k = #E(F q ) thì G là điểm cơ sở của E
Trang 272.4 Tính chất đồng cấu của đường cong elliptic
Xét đường cong elliptic trên trường F q , E(F q ) là nhóm Abel Vì vậy, E(F q) đồng cấu với Z n1x Z n2 trong đó n 2 chia hết cho n 1 và q – 1 với các số n1 và n2 duy nhất
Z n là ký hiệu của nhóm cyclic bậc n Nếu n2 = 1 thì E(F q) là cyclic Trong trường hợp
này E(F q) là đồng cấu với Z n1 Khi đó, tồn tại một điểm G E(F q) thỏa mãn
E(F q ) = {kG : 0 k n1 1}; điểm G được gọi là phần tử sinh của E(F q)
Ví dụ
Xét đường cong elliptic E trên trường F p với p = 23 có phương trình
y2 = x3 + x + 4 Theo dạng y 2 = ax 3 + bx + c với điều kiện 4a 3 + 27b 2 0 (mod p)
ta thấy 4a3 + 27b2 = 4 + 432 = 436 22 (mod 23)
Theo định lý Hasse, #E(F23) = 29, là một số nguyên tố nên E(F23) là cylic và bất kỳ
điểm nào khác O đều là phần tử sinh của E(F23) Ví dụ, G = (0, 2) là phần tử sinh với các tập điểm của E(F23) như sau:
Bảng 2.1 Các điểm trên E(Z 23 )
Trang 283 Chương 3 CÁC HỆ MẬT TRÊN ĐƯỜNG CONG ELLIPTIC
3.1 Giới thiệu
Năm 1976, Diffie và Hellman giới thiệu hệ mã hóa khóa công khai đầu tiên mà
sự an toàn của nó dựa trên độ khó của bài toán DLP Họ đã đưa ra khái niệm hàm cửa sập một chiều (TOF) Năm 1985, Lenstra thành công trong việc sử dụng các đường cong elliptic cho các số nguyên Kết quả này mang lại khả năng áp dụng các đường cong elliptic trong các hệ mật mã khóa công khai
Miller và Koblitz giới thiệu những hệ mật mã elliptic đầu tiên Họ không phát minh ra các thuật toán mới nhưng đã có đóng góp lớn là chỉ ra việc áp dụng elliptic cho các hệ khóa công khai Miller đề xuất một giao thức trao đổi khóa tựa như Diffie – Hellman vào năm 1985 (nhanh hơn 20% so với giao thức Diffie - Helman) Koblitz đưa ra thuật toán mã hóa tương tự như hệ Elgamal và Massey – Omura vào năm 1987 Sơ đồ đầu tiên tương tự như sơ đồ RSA và 3 hàm một chiều (có cửa sập)mới dựa trên các đường cong Elliptic được đưa ra năm 1991 bởi Koyama, Maurer, Okamoto và Vanstone (thuật toán này tốc độ thực hiện nhanh gấp 6 lần so với RSA) Cùng thời điểm đó, Kaliski chứng minh rằng các hàm cửa sập một chiều đòi hỏi thời gian là hàm mũ để thực hiện phép tính nghịch đảo Menezes, Okamoto và Vanstone đã đưa ra một phương pháp tấn công MOV để giải bài toán EDLP trong một số trường hợp riêng Ngay sau đó, Miyaji đã tìm được các điều kiện để tránh khỏi tấn công MOV
và đề xuất một ứng dụng thực tế của các đường cong elliptic cho các sơ đồ chữ ký và định danh trên Smart Card
Trang 29Năm 1993, Demytko đưa ra một thuật toán mới tương tự như RSA cho các
đường cong Elliptic trên vành Z n vượt qua các hạn chế của các phiên bản trước, và Menezes và Vanstone đã đưa ra phương pháp thực thi trên các thiết bị cứng có thể cải thiện các tính toán trên elliptic trên một trường hữu hạn Những năm 1997, 1998 việc tìm các hệ mật mã trên các đường cong Elliptic ngày càng thu hút nhiều sự chú ý và một số thuật toán đã được đưa thành các chuẩn trong các RFC
3.2 Nhúng bản rõ vào các đường cong Elliptic
Nhúng một bản rõ lên E là biểu diễn lại bản rõ đó như là các điểm trên E mà nhờ đó chúng ta có thể thực hiện được các tính toán trên E Có một số phương pháp đế
thực hiện việc này Trong đó có 2 phương pháp chính là imbeding và mask
Cách 1
Để nhúng m lên E(Z p ) với p là số nguyên tố, chẳng hạn p 3 (mod 4)
Giả sử E(Z p ) được cho bởi phương trình (2.1) và giả sử m là số nguyên thỏa mãn
1 1000
/
0 m p Thêm 3 chữ số vào m được x thỏa mãn 1000m x 1000 (m 1 ) p
Chúng ta sẽ bổ sung các chữ số khác nhau cho đến khi tìm được x sao cho f(x) = x3 +
ax + b là một số chính phương trong Z p và y (với f(x) = y 2 mod p ) thỏa mãn
p
y 1 mod Điểm P m được tạo thành khi nhúng m lên E là:
)) ( , (x f x
P m
Có thể dễ dàng khôi phục lại m từ P m E(Z p)bằng cách loại bỏ 3 chữ số cuối
của tọa độ x của điểm P m
Trang 30Cách 2
Bước 1 Sử dụng bảng chữ cái gồm N ký tự Chia bản rõ thành các khối có
độ dài cố định l Các ký tự được đánh số là 0,…, N-1 Một khối văn bản w cùng với các
2 1
1 0 1
a a
w N
x
0
Bước 2 Chọn một giá trị k thích hợp sao cho kN l < q Với mỗi j là phần tử của
F q tính kx w + j Lấy điểm P w đầu tiên mà tọa độ x kx w , j 0 , ví dụ
3.3 Một số hệ mã hóa trên đường cong elliptic
Hệ mã hóa đường cong elliptic (ECC) có thể được thực thi tương tự như các
hệ mật mã khác trên trường số nguyên, thay vào đó là các điểm trên đường cong elliptic
Hệ Elgamal làm việc với nhóm cyclic hữu hạn Năm 1987, Koblitz đã đưa ra một hệ trên ECC dựa trên hệ Elgamal
Trang 31Ta có trường số Z p và đường cong elliptic E trên Z p là E(Z p) cùng
điểm cơ sở GE Mỗi người dùng sẽ chọn một số a X làm khóa bí mật, và a X G là
khóa công khai
Giả sử Alice cần gửi một thông điệp m cho Bob Đầu tiên cô ấy nhúng văn bản
m lên E, chẳng hạn m được thể hiện bằng một điểm P mE Khi đó cô ta phải mã hóa
P m Ký hiệu a B là khóa bí mật của Bob, vì vậy khóa công khai của Bob là a B G
Alice chọn một số ngẫu nhiên k và gửi cho Bob cặp điểm trên E:
(C 1 , C 2 ) = (kG, P m + k(a B G))
Để giải mã, Bob tính: C 2 – a B (C 1 ) = P m + k(a B G) – a B (kG) = P m
Tính bảo mật
Nếu kẻ tấn công giữa đường, Oscar, có thể giải bài toán EDLP thì anh ta có thể
biết được khóa bí mật a B của Bob từ các thông tin công khai G và a B G, và có thể
giải mã được thông điệp mà Alice gửi Như vậy, độ an toàn (bảo mật) của thuật toán trên dựa vào độ khó của bài toán EDLP
Sự khác biệt của hệ này với hệ tựa Elgamal là Alice áp dụng kỹ thuật Masking
thay vì Imbeding khi biểu diễn bản rõ thành điểm trên E
E là đường cong elliptic trên trường nguyên tố Z p (p > 3) sao cho E chứa một nhóm con cyclic H, mà trong đó bài toán EDLP là khó Z p , E(Z p ) và điểm GE là công
khai Mỗi người dùng chọn một số nguyên ngẫu nhiên a X làm khóa bí mật và khóa
công khai là a X G
Giả sử rằng Alice cần gửi thông điệp M = (x1, x2) * *
p
p xZ Z
cho Bob
Giả sử a B là khóa bí mật của Bob Alice chọn số ngẫu nhiên kZ |H| và gửi:
(y0, y1, y2) = (kG, c1x1 mod p, c2x2 mod p) với (c1, c2) = k(a B G)
Để giải mã, Bob tính:
(y1c1-1 mod p, y2c2-1 mod p) = (x1, x2) với a B y0 = (c1, c2)
Trang 32Việc giải mã là đúng đắn vì:
y0 = kG, Bob có thể tính: a B y0 = a B (kG) = k(a B G) = (c1, c2)
vì vậy:
p x
c x c c
y1 11 ( 1 1) 11 1mod
p x
c x c c
y2 22 ( 2 2) 22 2mod
Ví dụ
Xét đường cong E có phương trình dạng: y2 = x3 + x + 13
Trên trường nguyên tố Z 31 Như vậy, E có đặc số 2, 3 Chọn điểm cơ sở
G = (9, 10) #E(Z31) = 34 và P là phần tử bậc 34 Các điểm trên E được liệt kê như sau:
Bảng 3.1 Các điểm trên E(Z31)
Chúng ta sử dụng phương pháp masking thay cho imbeding nên không gian
bản rõ là Z 34 * xZ 34 *.Giả sử mỗi bản rõ (x 1 , x 2) thể hiện bằng 2 chữ cái trong đó “a” là 1,
“b” là 2, …, “z” là 26 Phép tính nghịch đảo modulo được thực hiện bằng thuật toán
Euclid mở rộng Phép tính kG sử dụng các phép toán nhân đôi và cộng
Trang 333.4 Một số sơ đồ chữ ký trên đường cong elliptic
Để thiết lập sơ đồ chữ ký ECDSA, cần xác định các tham số: lựa chọn đường
cong E trên trường hữu hạn F q với đặc số p sao cho phù hợp, điểm cơ sở G E(F q)
Một số khuyến nghị khi lựa chọn các tham số:
1 Kích thước q của trường, hoặc q = p (p > 2) hoặc q = 2 m
2 Hai phần tử a, b thuộc F q xác định phương trình đường cong elliptic:
y2 = x3 + ax + b (p>2) hoặc y2 + xy = x3 + ax2 + b (p =2)
3 Hai phần tử x G và y G thuộc F q xác định điểm cơ sở G = (x G , y G)
4 Bậc n của điểm G với n > 2160 và n 4 q
Sinh khóa
1 Chọn số ngẫu nhiên d trong khoảng [2, n – 1] làm khóa bí mật
2 Tính Q = dG làm khóa công khai
5 Tính s = k-1 (m + dr) mod n Nếu s = 0, quay lại bước 1
6 Chữ ký trên thông điệp m là (r, s)
Kiểm tra chữ ký
1 Kiểm tra r và s có là các số tự nhiên trong khoảng [2, n – 1] không
2 Tính w = s-1 mod n
3 Tính u1 = mw mod n và u2 = rw mod n
Trang 34Giả sử E là một đường cong Elliptic trên trường Z p (p>3 và nguyên tố) sao cho
E chứa một nhóm con cyclic H trong đó bài toán logarith rời rạc là “khó”
C , ta định nghĩa: K {(E,,a,) : a}với
E
Các giá trị và là công khai, a là bí mật
Với K (E,,a,) , chọn một số ngẫu nhiên k Z |H| Khi đó, với
*
* 2
y , ) ( 1 2
p x
hash y
c 1 ( ) mod
p ac k
d mod
e x hash true
d c x ver K( , , ) ( )
c d y
y , ) ( 1 2
p y
c
e 1mod
Trang 35Tất cả các sơ đồ chữ ký đều yêu cầu phải băm văn bản trước khi ký Chuẩn P1363 của IEEE khuyến nghị dùng SHA-1, được định nghĩa bởi NIST, hoặc RIPEMD-160, được định nghĩa bởi ISO-IEC Lý do để sử dụng các hàm băm là việc chúng giúp khó tìm được 2 văn bản có cùng giá trị băm, hàm băm giúp chữ ký trên văn bản gốc gọn nhẹ hơn rất nhiều.
Năm 1994, Harn đã công bố một sơ đồ chữ ký mù tựa như sơ đồ ECDSA Chữ
ký mù là chữ ký thực hiện trên một văn bản mà người ký hoàn toàn không biết nội dung Điều này thực hiện được vì người trình ký đã sử dụng một phương pháp nào đó
để che dấu nội dung của văn bản gốc để người ký không biết Để người ký yên tâm, người xin cấp chữ ký phải chứng minh tính hợp lệ của nội dung đã bị che dấu
Việc sinh khóa bao gồm:
(1) Chọn một khóa bí mật d là số nguyên ngẫu nhiên trong [2, q – 1]
(2) Tính khóa công khai Q, là một điểm trên E sao cho Q = dG
Trang 36k và tính Rk G(x k,y k) Đặt r = x k , rồi gửi rvà R cho Bob
(2) Bob chọn các tham số làm mù a,b q[ 1 , 1 ], tính R trên E sao cho
R = a R + bG = (x k, y k ) và tính r = c(x k) và m (mr)a1 r Sau đó gửi mcho Alice (m là m sau khi đã bị làm mù)
(3) Alice tính s d(mr) k(modq), rồi gửi scho Bob
(4) Bob nhận được s , xóa mù để có được chữ ký s trên m bằng cách tính
sa sb
Cặp (r, s) là chữ ký trên m
Chứng minh
Cặp (r, s) là một chữ ký Harn của thông điệp m và sơ đồ ký trên là một
sơ đồ chữ ký mù trên đường cong elliptic
Việc xác minh tính hợp lệ của chữ ký Harn được thực hiện như sau:
(1) Tìm một điểm V trên E sao cho sG – (m + r)Q = (x v , y v)
(2) Kiểm tra r? x v(modq) Nếu đúng thì (r, s) là chữ ký hợp lệ
Để chứng minh giao thức trên thực sự tạo ra chữ ký có tính chất “mù”, chúng ta
chỉ ra rằng mỗi người ký có cặp duy nhất (a, b) là tham số làm mù, với a,b q[ 1 , 1 ] Với R,k,r,m,s và chữ ký hợp lệ (r, s) của m ta có:
) (mod ) )(
(m r m r 1 q
a bsa s (modq)
Trang 37Ta phải chứng minh: Ra R bG Thực vậy,
R Q r m sG drG dmG
sG
G r ad r a r m adG sG k r d m d aG sG G k a G s a sG G k
) )
Xét việc tạo chữ ký mù Harn trên đường cong elliptic y2 = x3 + x + 13 trên
trường nguyên tố Z31 Chọn điểm cơ sở G = (9, 10) #E(Z31) = 34 và G là phần tử bậc 34 Khi đó q = 34 (Các điểm trên E được liệt kê trong bảng 3.3.2)
Sinh chữ ký
Khóa bí mật d = 11, khi đó khóa công khai Q = dG = 11G = (22, 22)
Giả sử Bob có thông điệp m0 với đại là m = 17 và cần Alice ký lên m sao cho Alice không biết nội dung m
(1) Khi nhận được yêu cầu ký từ Bob, Alice chọn ngẫu nhiên k [ 2 ,q 1 ]= 20 và tính R k G = 20P = (26, 10), r = 26 Alice gửi rvà R cho Bob
(2) Bob chọn các tham số làm mù a,b q[ 1 , 1 ] với a = 5, b = 7 Tính R trên E với
R = a R + bG = 5 R + 7G = 5G = (25, 16), r = 25 Bob làm mù m thành mvới
r a
r
m
m ( ) 1 = (17 + 25)5-1 – 26 (mod 34) = 30 Bob gửi m = 30 cho Alice
(3) Alice tính s d(m r) k(modq) = 11(30 + 26) + 20 (mod 34) = 24 Alice gửi s= 24 cho Bob
(4) Bob nhận được s , xóa mù để có được chữ ký s trên m bằng cách tính
Bob muốn chứng minh rằng anh ta có chữ ký của Alice trên m = 17 và chữ ký
muốn chứng minh chữ ký đó là (25, 25) Các thao tác chứng minh diễn ra như sau: