Việc sử dụng chữ ký số là một giải pháp hữu hiệu, ngày càng được ứng dụng nhiều trong thực tế, không chỉ giới hạn trong ngành công nghệ thông tin, mật mã học mà còn được áp dụng nhiều tr
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
TIỂU LUẬN MÔN HỌC
AN TOÀN MẠNG THÔNG TIN
Đề tài : Mật mã hóa khóa công khai ECC (Elliptic
Curve Cryptography) và ứng dụng
Trang 2MỤC LỤC
DANH MỤC HÌNH VẼ 3
MỞ ĐẦU 4
CHƯƠNG 1: LÝ THUYẾT VỀ ĐƯỜNG CONG ELLIPTIC( Fp) 5
1.1 Định nghĩa, tính chất của đường cong 5
1.1.1 Định nghĩa 5
1.1.2 Tính chất 5
CHƯƠNG 2: MẬT MÃ HÓA KHÓA CÔNG KHAI SỬ DỤNG ĐƯỜNG CONG ELLIPTIC 8 2.1 Các tham số của hệ mật mã hóa ECC 8
2.1.1 Đương cong eliptic trên trường nguyên tố hữu hạn Fp 8
2.1.1.1 Trường hữu hạn 8
2.1.1.2 Đường cong Elliptic trên trường Fp có dạng như sau: 8
2.1.2 Tham số hệ mật mã ECC trên trường nhị phân hữu hạn 9
CHƯƠNG 3: ƯU ĐIỂM CỦA ECC VÀ SO SÁNH VỚI RSA 10
3.1 Ưu điểm của EEC 10
3.2 So sánh ECDSA và RSA 12
CHƯƠNG 4: CHỮ KÝ SỐ SỬ DỤNG ĐƯỜNG CONG ELLIPTIC VÀ MỘT SỐ ỨNG DỤNG 14 4.1 Chữ ký số sử dụng đường cong elliptic 14
4.1.1 Tạo chữ ký số 15
4.1.2 Xác Thực chữ ký số 15
4.1.3 Sơ đồ chữ ký số trên đường cong eliptic (ECDSA) 15
4.1.4 Tính bảo mật của ECDSA 16
4.2 Ứng dụng của ECC 17 4.2.1 Ứng dụng của hệ mật mã hóa khóa công khai sử dụng đường cong eliptic và ECDSA trong đồng tiền ảo Ethereum 18
4.2.2 Elliptic-curve Diffie-Hellman (ECDH) 22
4.2.3 Ứng dụng vào các thiết bị có tài nguyên hạn chế: 23
KẾT LUẬN 26
TÀI LIỆU THAM KHẢO 26
Trang 3DANH MỤC HÌNH VẼ
Hình 1: Trường đồ thị của đường cong elliptic 4
Hình 2: Vỉ dụ về phép cộng trên đường cong Elliptic 6
Hình 3: Vỉ dụ về phép nhân 2 trêu đường cong Elliptic 6
Hình 4: Đường cong elliptic 1 9
Hình 5: Đường cong elliptic 2 9
Hình 6: Quy trình thực hiện để tạo chữ kỹ số 12
Hình 7: Quy trình thực hiện để xác thực chữ ký số 13
Trang 4MỞ ĐẦU
Mật mã học là một trong những vấn đề quan trọng trong lĩnh vực bảo mật và an toàn thông tin Trên thế giới, mật mã học đã được ra đời từ thời La Mã cổ đại và ngàycàng được nghiên cứu, phát triển đạt được những thành tựu to lớn Trong mật mã học, vấn đề bảo mật luôn đi đôi với vấn đề xác thực thông tin, đặc biệt trong hệ thống
mã hóa khóa công khai vấn đề xác thực là vô cùng quan trọng Để giải quyết vấn đề trên người ta đưa ra một cách giải quyết hiệu quả, đó là chữ ký số
Với sự bùng nổ của mạng Internet hiện nay, mạng máy tính đang đóng vai trò thiết yếu trong mọi lĩnh vực hoạt động của xã hội, và khi nó trở thành phương tiện điều hành các hệ thống thì nhu cầu bảo mật thông tin đặt lên hàng đầu Việc sử dụng chữ ký số là một giải pháp hữu hiệu, ngày càng được ứng dụng nhiều trong thực tế, không chỉ giới hạn trong ngành công nghệ thông tin, mật mã học mà còn được áp dụng nhiều trong lĩnh vực khác như ngân hàng, viễn thông
Mật mã học khóa công khai tạo ra chữ ký số và ứng dụng vào các tài liệu Hệ mật
mã hóa RSA - hệ mã hóa điển hình của mật mã hóa công khai cùng với hàm băm mật mãhọc một chiều chính là những công cụ chính trong việc tạo ra chữ ký số điện tử
Trong bài tiểu luận này, nhóm tập trung vào chữ ký số trên ECC và ứng dụngcủa nó Nội dung nghiên cứu được chia làm 4 phần:
Trang 5CHƯƠNG 1: LÝ THUYẾT VỀ ĐƯỜNG CONG ELLIPTICE( F p)
1.1 Định nghĩa, tính chất của đường cong
1.1.1 Định nghĩa
Thông thường, một đường cong elliptic được định nghĩa bằng phương trình
có dạng như sau : y 2 =x3+ax +b (1) và có điều kiện là : 4 a3+27b2 #: 0
Hình 1: Trường đồ thị của đường cong elliptic
1.1.2 Tính chất
Nếu hai điểm P1 (x1, y1) và P2 (x2, y2) với x1 ^ x2 nằm trên đường cùngmột đường cong elliptic E, thì đường thẳng qua hai điểm P1 và P2 sẽ cắt một điểmduy nhất P3 (x3, y3) 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 E, điểm này cũng có thểxác định được thông qua P
Trang 61.1.2.1 Phép cộng trong đường cong elliptic
Giả sử, ta có A(x 1, y 1) và B(x 2, y 2) là hai điểm thuộc một đường cong E
Trang 8Chú ý rằng các điểm (X 3, y 3), (x 3,-y 3) cũng nằm trên đường cong E và xét về mặt hình học, thì các điểm (x 1, y 1), (x2, y2), (x3,-y3) cũng nằm trên cùng một đường thẳng.
1.1.2.2 Phép nhân trong đường cong elliptic
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
Trang 9CHƯƠNG 2: MẬT MÃ HÓA KHÓA CÔNG KHAI SỬ DỤNG
ĐƯỜNG CONG ELLIPTIC
Hệ mật mã công khai ECC là hệ mật mã được xây dựng trên cơ sở bài toán logarit rời rạc trong phép nhân xét trên các tập điểm thuộc đường cong Elliptic Hệ mật mã công khai ECC cung cấp đầy đủ 4 dịch vụ an ninh: Mã hóa, xác thực, ký số vàtrao đổi khóa
2.1.1 Đương cong eliptic trên trường nguyên tố hữu hạn F p
2.1.1.1 Trường hữu hạn
Đường cong elliptic được xây dựng trên các trường hữu hạn Có hai trường hữu hạn đó là:
• Trường hữu hạn Fq với q là số nguyên tố
• Trường hữu hạn Fq với q = 2m (m là một số nguyên)
Tùy thuộc vào trường hữu hạn Fq, với mỗi bậc của q, tồn tại nhiều đường cong elliptic Do đó, với một trường hữu hạn cố định có q phần tử và q lớn, có nhiều sự lựa chọn nhóm đường cong elliptic
2.1.1.2 Đường cong Elliptic trên trường F p có dạng như sau:
Định nghĩa các tham số của hệ mật mã ECC trên trường nguyên tố hữu hạn F p
bao gồm:
T = (p, a, b, G, n, h)
Trong đó:
• p: là số nguyên tố và lớn hơn 3
• a, b: là 2 hệ số a, b € F p , sao cho thỏa mãn điều kiện 4 a 2 +27b 2*0
• G: là điểm cơ sở thuộc E (F p )
• n: là một số nguyên và là thứ tự của điểm cơ sở G
Trang 10• h: là phần phụ đại số thỏa mãn h = #E(F p6
/n với Số lượng điểm của E(F p ) là #E( F p ) thỏa
định lý Hasse:
p +1-2 V p< 6 E (F p) < p +1+2 Vp
2.1.2 Tham số hệ mật mã ECC trên trường nhị phân hữu hạn
SECG định nghĩa các tham số của hệ mật mã ECC trên trường nhị phân hữu hạn
F m bao gồm các tham số sau:
Y = (m,f(x),a,b,G,n,h)Trong đó:
m: là số nguyên dương xác định trường nhị phân hữu hạn F m và
[log2 m] e {163,233,239,283,409,571}
f(x): là một đa thức bất khả quy, có bậc m và là đa thức cơ sở biểu diễn trường F m
a,b: là hệ số a,b G F m xác định đường cong elliptic E(F m ) trên trường ( F m):
• G: là điểm cơ sở thuộc E(Fp)
• n: là một số nguyên tố và là thứ tự của điểm cơ sở G
• h: là phần phụ đại số (cofactor) thỏa mãn h = #E(F m)/n với #E(F m ) là các số điểm
thuộc đường cong E( F m )
• Cùng với điểm O là điểm vô cực Số lượng điểm của E(F 2m ) là #E(F 2m ) thỏa định
lý Hasse:
• Trong đó q = 2m Ngoài ra, #E(F 2 m ) là số chẵn
Trang 11CHƯƠNG 3: ƯU ĐIỂM ECC VÀ SO SÁNH VỚI RSA
Mật mã đường cong Elliptic (ECC) đã tồn tại từ giữa những năm 1980, nhưng nó vẫn được coi là mã mới trong thế giới SSL và chỉ mới bắt đầu được chấp nhận trong vài năm qua ECC là một cách tiếp cận toán học khác về cơ bản để mã hóa so với thuật toán RSA đáng kính Đường cong elliptic là một hàm đại số (y2 = x3 + ax + b) trông giống như một đường cong đối xứng song song với trục x khi được vẽ đồ thị
(Xem hình bên dưới.) Cũng như các dạng mật mã khóa công khai khác, ECC dựa trên đặc tính một chiều, trong đó dễ dàng thực hiện phép tính nhưng không thể đảo ngược hoặc đảo ngược kết quả của phép tính để tìm ra các số ban đầu ECC sử dụng các phép toán khác với RSA để đạt được thuộc tính này Cách dễ nhất để giải thích toán học này là - đối với một đường cong elliptic, một đường sẽ chỉ đi qua ba điểm dọc theo đường cong (P, Q và R) và điều đó bằng cách biết hai trong số các điểm (P và Q),điểm còn lại (R) có thể được tính toán một cách dễ dàng, nhưng chỉ với R, hai cái còn lại, P và Q, không thể suy ra được
Hình 4: Đường cong eliptic 1
Trang 12Hình 5: Đường cong eliptic 2
ECC được sử dụng trong cả chữ ký số thông qua Elliptic Curve DSA (ECDSA)
và trong trao đổi khóa qua Elliptic Curve Diffie-Hellman (ECDH) Các thuật toán này được áp dụng trong các phần khác nhau của tiêu chuẩn SSL Đầu tiên, chứng chỉ SSL có thể được ký bằng ECDSA thay vì RSA Việc thứ hai là quá trình máy chủ và máy khách đang trao đổi các khóa phiên được sử dụng để mã hóa tất cả dữ liệu được gửi Trong trường hợp này, máy chủ và trình duyệt đều phải được định cấu hình để
hỗ trợ bộ mật mã ECDH
Lợi ích quan trọng nhất của ECC đơn giản là mạnh hơn RSA đối với các kích thước đang được sử dụng ngày nay Kích thước khóa ECC thông thường là 256 bit tương đương với khóa RSA 3072 bit và mạnh hơn 10.000 lần so với khóa RSA 2048 bit Để đi trước sự tính toán của kẻ tấn công, các khóa RSA phải dài hơn CA/.Diễn đàn Trình duyệt và các nhà cung cấp trình duyệt hàng đầu đã chính thức kết thúc hỗ trợ khóa RSA 1024 bit sau năm 2013, vì vậy tất cả các chứng chỉ SSL mới phải sử dụng khóa dài gấp đôi Hơn nữa, như thể hiện trong bảng dưới đây, kích thước khóa RSA trong tương lai nhanh chóng mở rộng trong khi độ dài khóa ECC tăng tuyến tính theo độ mạnh
Một lợi ích bảo mật khác của ECC chỉ đơn giản là nó cung cấp một giải pháp thaythế cho RSA và DSA Nếu một điểm yếu chính trong RSA được phát hiện, ECC có thể là giải pháp thay thế tốt nhất, đặc biệt nếu điểm yếu của RSA đột ngột yêu cầu tăng mạnh kích thước khóa để bù đắp
Trang 13ECC cũng nhanh hơn vì một số lý do Trước hết, các khóa nhỏ hơn có nghĩa là
ít dữ liệu phải được truyền từ máy chủ đến máy khách trong quá trình bắt tay SSL
Ngoài ra, ECC yêu cầu ít năng lượng xử lý (CPU) và bộ nhớ hơn, dẫn đến thời gian phản hồi và thông lượng trên các máy chủ Web nhanh hơn đáng kể khi nó được sử dụng
Lợi ích quan trọng thứ ba của việc sử dụng ECC là Perfect Forward Secrecy(PFS) Mặc dù PFS không phải là thuộc tính của ECC, các bộ mật mã được hỗ trợ bởicác máy chủ Web hiện đại và các trình duyệt triển khai PFS cũng triển khai ECC Cácmáy chủ web thích Ephemeral ECDH (ECDHE) sử dụng bộ mật mã như:
“TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA” nhận được lợi ích của cả ECC vàPFS
3.2 So sánh ECDSA và RSA
Dưới đây là một số khác biệt giữa RSA và ECDSA:
• Kích thước dữ liệu cho RSA nhỏ hơn ECDSA
• Kích cỡ khóa ECDSA nhỏ hơn kích cỡ khóa RSA, do đó thông điệp được mã hóa trong ECDSA nhỏ hơn
• Việc tính toán trong ECDSA dễ dàng so với RSA: ECDSA cung cấp khả năng tính toán nhanh hơn và ít dung lượng lưu trữ hơn
gian xử lý nhanh hơn và yêu cầu về bộ nhớ và băng thông thấp hơn
Lưu ý: “Một số nhà nghiên cứu đã phát hiện ra rằng ECDSA nhanh hơn RSA
để ký và giải mã tuy nhiên, ECDSA chậm hơn với việc xác minh và mã hóa chữ ký
ưu điểm vượt trội so với RSA như sau:
Nó cung cấp khả năng bảo mật cao hơn với kích thước khóa nhỏ hơn
Trang 14 Nó cung cấp các triển khai hiệu quả và nhỏ gọn cho các hoạt động mật mã yêu cần chip nhỏ hon.
Do chip nhỏ hon sinh nhiệt ít hon và tiêu thụ ít điện năng hon
Nó hầu như phù hợp với các máy có băng thông thấp, khả năng tính toán thấp, ít bộ nhớ
Nó có triển khai phần cứng dễ dàng hon
Tuy vậy, hai hệ mật mã hóa khóa công khai này không phải là không có những nhược điểm Một số nhược điểm của cả ECC và RSA có thể được kể đến như:
Quá trình tạo khóa diễn ra rất chậm (so với mã hóa khóa đối xứng)
Trang 15CHƯƠNG 4: CHỮ KÝ SỐ SỬ DỤNG ĐƯỜNG CONG ELLIPTIC
VÀ MỘT SỐ ỨNG DỤNG 4.1 Chữ ký số sử dụng đường cong elliptic
4.1.1 Tạo chữ ký số
Hình 6: Quy trình thực hiện để tạo chữ ký sốQuá trình tạo chữ ký số được thực hiện qua các bước:
• Dữ liệu cần được ký sẽ được đi qua hàm băm để tạo thành giá trị băm (bản tóm lược)
• Giá trị băm sau đó sẽ được mã hóa bởi khóa bí mật của người gửi, tạo thành chữ ký số
• Chữ ký số sẽ được gắn vào dữ liệu ban đầu, tạo thành bản tin đã được ký số
Trang 164.1.2 Xác Thực chữ ký số
Hình 7: Quy trình thực hiện để xác thực chữ ký sốViệc xác thực chữ ký số được thực hiện qua các bước:
• Bản tin đã được ký số sẽ được tách thành hai phần: Dữ liệu và chữ ký số
• Chữ ký số sẽ được giải mã bằng khóa công khai của người gửi
> Nếu chữ ký giải mà thành công thì tạo thành giá trị băm
> Nếu không thể giải mã được chữ ký chứng tỏ bản tin không đúng người gửi
• Phần dữ liệu sẽ được đi qua hàm băm tương tự như ở phía người gửi tạo thành giá trị băm
• Giá trị băm của dữ liệu sẽ được so sánh với giá trị băm thu được ở quá trình giải mã chữ ký số
> Hai giá trị này trùng nhau chứng tỏ bản tin gửi đi vẫn toàn vẹn
> Hai giá trị này khác nhau chứng tỏ bản tin đã bị thay đổi
4.1.3 Sơ đồ chữ ký số trên đường cong eliptic (ECDSA)
Để thiết lập sơ đồ chữ ký số trên ECDSA (Elliptic Curve Digital Signture Algorithm), cáctham số cần phải xác định là: đường cong E trên trường hữu hạn Fq với tham số p phù hợp và
Trang 17Sinh 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)
Trang 184.1.4 Tính bảo mật của ECDSA
ECDSA cần có tính bảo mật cao để có thể khẳng định sự tồn tại không thể làm giả được, chống lại sự tấn công vào một bản tin đã được ký Mục đích của kẻ tấn công là có
thể giả mạo A tạo các chữ ký hợp lệ trên bản tin M, sau khi đã có được các
bản tin có chữ ký của A và phân tích Khi thay thuật toán RSA bằng ECDSA, thì tốc độ thực
hiện thuật toán được cải thiện đáng kể Việc thay thế này đạt được hiệu quả với việc cần dung
lượng bộ nhớ ít hơn khi sử dụng thuật toán RSA
Các điều kiện an toàn cần thiết của thuật toán ECDSA là:
Bài toán logarit rời rạc trên đường cong eliptic E(Fq) là khó: nếu như điều
kiện này không được thỏa mãn, ta có thể chỉ cần tính logarit rời rạc với khóa công khai là có thể lấy được khóa bí mật
Hàm băn được sử dụng phải là là hàm băm một chiều, tức là không thể tính được bản rõ
m từ giá trị băm H m
Hàm băm được sử dụng phải chống xung đột, tức là không thể tồn tại hai giá trị băm H m 1
= H m 2 (nếu m1 và m2 khác nhau)
Việc tạo k là một quá trình ngẫu nhiên không thể dự đoán được
Các cách tấn công có thể có trên ECDSA có thể được phân loại như sau:
Cách tấn công các bài toán logarit rời rạc đường cong elliptic
Cách tấn công trên hàm băm
Cách tấn công khác
4.2 Ứng dụng của ECC
Trong thực tế, ECC đang được ứng dụng rất nhiều cho các ứng dụng bảo mật như:bảo mật tài liệu, thông tin liên lạc nội bộ, cung cấp chữ ký số trong các dịch vụ
tin bảo mật như iMessage của Apple hay Blackberry Message của Blackberry
ra, ECC còn được ứng dụng trong việc trao đổi khóa bằng thuật toán Elliptic-curveDiffie-Hellman Thuật toán mã hóa khóa công khai thế hệ đầu như RSA vẫn
được sử dụng trong rất nhiều lĩnh vực, tuy vậy, trong những năm gần đây ECC
Trang 19Hiệu suất tính toán của ECDSA nhanh hơn vượt trội so với RSA, đây là một điều rõ ràng, đãđược chứng minh rất nhiều trong thực tế Ngay cả với một phiên bản cũ của OpenSSL không cótối ưu cho ECC, thời gian tính toán để tạo tạo một chữ ký ECDSA với khóa 256-bit là nhanh hơn
20 lần so với một chữ ký RSA với khóa 2048-bit Chính vì thế, ECC là thuật toán thích hợp đểtích hợp vào các thiết bị có tài nguyên hạn chế
ECC có rất nhiều ứng dụng trong thực tế hiện nay, nhưng ứng dụng phổ biến nhất, đưa ECC phát triển chính là ứng dụng trong các đồng tiền ảo
4.2.1 Ứng dụng của hệ mật mã hóa khóa công khai sử dụng đường cong
eliptic và ECDSA trong đồng tiền ảo Ethereum.
Trong Ethereum (Bitcoin cũng tương tự) thì đường cong Elliptic được ứng dụng trong 2 việc:
• Tạo ra địa chỉ ví
• Tạo chữ ký cho giao dịch
Tiền ảo Ethereum sử dụng đường cong tiêu chuẩn secp256k1 do Viện Tiêu chuẩn và
Kỹ thuật Quốc gia Mỹ (NIST) đặt ra Đường cong này có công thức như sau:
y2 (mod p) = x3 + 7 (mod p)
Với p = 2256 - 232 - 29 - 28 - 27 - 26 - 25 - 24 - 1 = 2256 - 232 - 997 Đây là một
số nguyên tố rất lớn
4.2.1.1 Tạo khóa công khai:
Đầu tiên, ta chọn một số ngẫu nhiên dA làm khóa bí mật Số này phải thỏa mãn nằm trong khoảng [2, 2256 - 1]
Trên đường cong Elliptic ta chọn một điểm cơ sở G (generator point)
Với Ethereum thì điểm G này có giá trị: