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ậ
Trang 1TIỂ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 2DANH 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à antoà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ênngườ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ụngchữ 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 ápdụ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ụng của
nó Nội dung nghiên cứu được chia làm 4 phần:
• Lý thuyết đường cong elliptic
• Hệ mật mã ECC
• Ưu điểm và ứng dụng của ECC
• Chữ ký số và hệ mật mã của đường cong
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
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 đườngcong 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.Nếu x 1 = x2 và y 1 = - y2 thì ta có A + B = 0
Ngược lại thì A + B = C( x3, y 3) E E trong đó:
Trang 7Hình 2: Ví dụ về phép cộng trên đường cong Elliptic
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ặthì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 logaritrờ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 đổikhóa
2.1.1 Đương cong eliptic trên trường nguyên tố hữu hạn Fp
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ữuhạ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 congelliptic 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ựachọ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 € Fp , 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 (Fp )
• 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(Fp6/n với Số lượng điểm của E(Fp ) là
#E(Fp ) thỏa định lý Hasse:
p +1-2 V p< 6 E (Fp) < 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à
• 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(F2 m ) là #E(F2 m )thỏa định lý Hasse:
• q+1-2 Tq <0 E (F2m) <q + 1+2 Jq
• Trong đó q = 2m Ngoài ra, #E(F 2m ) 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 trongvà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ậttoán RSA đáng kính Đường cong elliptic là một hàm đại số (y2 = x3 + ax + b) trônggiống như một đường cong đối xứng song song với trục x khi được vẽ đồ thị (Xemhì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 đặctí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ánkhá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 đườngcong (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ònlạ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áykhá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íchthước đang được sử dụng ngày nay Kích thước khóa ECC thông thường là 256 bittương đương với khóa RSA 3072 bit và mạnh hơn 10.000 lần so với khóa RSA 2048bit Để đ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óaRSA trong tương lai nhanh chóng mở rộng trong khi độ dài khóa ECC tăng tuyến tínhtheo độ 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ăngmạ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 gianphả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
• Độ dài của khóa công khai và khóa bí mật ngắn hơn nhiều trong ECDSA Kếtquả là thời 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ý
Từ những khác biệt trên, ta có thể rút ra kết luận về ECC cung cấp những ư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êucầ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ữngnhượ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
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ườigử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ànhgiá 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ìnhgiả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 SigntureAlgorithm), các tham số cần phải xác định là: đường cong E trên trường hữu hạn Fq
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àmgiả đượ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ấncô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ácbả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ềukiệ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ôngkhai 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 Hm
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 Hm 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ụ nhắntin bảo mật như iMessage của Apple hay Blackberry Message của Blackberry Ngoài
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 đangđượ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 đang
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ủaOpenSSL 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óa256-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ụngtrong 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ãnnằ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ớiEthereum thì điểm G này có giá trị:
G = 04 79BE667E F9DCBBAC 55A06295 CE870B07 029BFCDB 2DCE28D959F2815B 16F81798 483ADA77 26A3C465 5DA4FBFC 0E1108A8 FD17B448