MỤC LỤC Lời mở đầu 1 Chương 1. Cơ sở toán học 4 1.1. Cấu trúc đại số 4 1.1.1. Nhóm 4 1.1.2. Vành 4 1.1.3 Trường 5 1.2. Phần tử Sinh 5 1.3 Phương trình đồng dư bậc hai và thặng dư bậc hai 7 1.4. Thuật toán Euclide mở rộng tìm số nghịch đảo 9 Chương 2. Đường cong elliptic 11 2.2. Đường cong elliptic hữu hạn 11 2.2.1. Phân loại 11 2.2.2. Định nghĩa đường cong eliptic trên trường Galois 12 2.3. Các phép toán cộng và nhân trên các nhóm E 12 2.4. Các bước xác định điểm trên E 13 Chương 3. Mật mã trên đường cong Elliptic 15 3.1. Quá trình tạo khóa 15 3.2. Quá trình mã hóa 15 3.3. Quá trình giải mã 16 Chương 4. Độ an toàn của hệ mật trên đường cong elliptic 20 Chương 5. Một vài ứng dụng 21 5.1.Lược đồ chữ ký số trên đường cong elliptic ECDSA 21 5.2.ĐộantoàncủasơđồchữkýECDSA 22 KẾT LUẬN 24 Tài liệu tham khảo 25
Trang 1HỌC VIỆN KỸ THUẬT MẬT MÃ
BÀI TẬP LỚN
- -ĐỀ TÀI:
XÂY DỰNG CHƯƠNG TRÌNH MÔ PHỎNG THUẬT TOÁN MÃ ECC
Sinh viên thực hiện : Phạm Hữu Thiết
Tạ Thị Thanh Thùy
Tô Quang Hiền
Nguyễn Anh Tú
Giáo viên hướng dẫn : Hoàng Thu Phương
Lớp : AT8B
-Hà
Trang 3Nội,9/2014-Lời mở đầu
Ngày nay với sự phát triển mạnh mẽ của công nghệ thông tin, truyền thôngnói chung và Internet nói riêng đã giúp cho việc trao đổi thông tin nhanhchóng, dễ dàng, E-mail cho phép người ta nhận hay gửi thư ngay trên máy tínhcủa mình, E-business cho phép thực hiện các giao dịch trên mạng Do vậymột vấn đề phát sinh là thông tin có thể bị trộm cắp, có thể là sai lệch, có thểgiả mạo Điều đó có thể ảnh hưởng tới các tổ chứa, các công ty hay cả một quốcgia Những bí mật kinh doanh, tài chính là mục tiêu của các đối thủ cạnh tranh.Những tin tức về an ninh quốc gia là mục tiêu của các tổ chức tình báo trong vàngoài nước
Để giải quyết tình hình trên an toàn thông tin được đặt ra cấp thiết Kỹthuật mật mã là một trong những giải pháp của an toàn truyên thông Kỹ thuậtnày có từ ngàn xưa nhưng nó đơn giản, ngày nay khi có mạng máy tính người tadùng mật mã hiện đại Các nhà khoa học đã phát minh ra những hệ mật mãnhằm che dấu thông tin cũng như là làm rõ chúng để tránh sự giòm ngó củanhững kẻ cố tình phá hoại như các hệ mật: RSA, Elgamal… mặc dù cũng rất
an toàn nhưng có độ dài khoá lớn nên trong một số lĩnh vực không thể ứngdụng được
Chính vì vậy người ta đã phát minh một hệ mật đó là hệ mật trên đườngcong elliptic, hệ mật này được đánh giá là hệ mật có độ an toàn cao và hiệuquả hơn nhiều so với hệ mật công khai khác, nó đã được ứng dụng trênnhiều lĩnh vực và được sử dụng nhiều nơi trên thế giới tuy nhiên còn mới mẻ
ở Việt Nam Trong tương lai gần, hệ mật trên đường cong Elliptic sẽ được sử
dụng một cách phổ biến và thay thế những hệ mật trước nó
Vì lý do đó, nhóm em đã chọn đề tài “xây dựng chương trình mô phỏng hệmật ECC ” để nghiên cứu, tìm hiểu thêm về hệ mật trên đường cong Ellipticnhằm tiến tới khai thác hệ mật này phục vụ cho bảo mật thông tin trong thực tế
Trang 4Chương 1 Cơ sở toán học
1.1 Cấu trúc đại số
1.1.1 Nhóm
- Định nghĩa: Nhóm là một tập hợp G ≠φcùng với phép toán hai ngôi *
trên G Với a, b ∈ G, a * b = ∈G thoả mãn tính chất sau:
* Tính kết hợp: (a * b) * c = a * (b * c) với mọi a, b, c ∈ G
* Phần tử đồng nhất: Tồn tại e ∈G thoả mãn e * a = a *e = a với mọi a ∈
G (e được gọi là phần tử trung hoà)
* Phần tử nghịch đảo: với mỗi a ∈ G, tồn tại một phần tử b ∈G thoả 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) Vàngười ta ký hiệu nghịch đảo của a bởi a-1
có nghịch đảo và không có thương 0 ( không có hai phần ≠0 ) mà tích của chúnglại bằng 0 thì nó tạo thành miền nguyên
Trang 5a/b = a.b-1
1.2 Phần tử Sinh
* Định nghĩa: Cho α Z*
n Nếu cấp của α = thì α được gọi là phần tử sinh của Zn*
( hay còn gọi là phần tử nguyên thủy )
Nếu Zn* có phần tử sinh thì Zn* được gọi là nhóm xyclic
VD: Z20* có phần tử sinh hay không?
Trang 6Nếu Zn* là xyclic thì số phần tử sinh là
1.3 Phương trình đồng dư bậc hai và thặng dư bậc hai
* Ta xét phương trình đồng dư bậc hai có dạng như sau:
Trang 7x2 ≡ a (mod n)
Trong đó n là số nguyên dương, a là số nguyên với gcd(a, n) ≡ 1, và x
là ẩn số Phương trình đó không phải bao giờ cũng có nghiệm, khi nó
có nghiệm thì ta gọi a là thặng dư bậc hai mod n Ngược lại thì a gọi là mộtbất thặng dư bậc hai mod n
Tập các số nguyên nguyên tố với n được phân hoạch thành hai tập con Tập Qn
các thặng dư bậc hai mod n, và tập các bất thặng dư bậc hai mod n
được xác định như sau:
Qa1
ap0
ap
Trang 8Cho n ≥3 là các số nguyên lẻ a,b∈Z Khi đó ký hiệu Jacobi có các tính
chất sau:
(1)
1,0n
an
an
a
(5)
1n
m
nn
Trang 9e 1
e
1
1a
amodnn
2n
an
2n
1.4 Thuật toán Euclide mở rộng tìm số nghịch đảo
* Nếu GCD( m, b) = 1 thì tìm nghịch đảo của b theo modulo của m Ta mở rộngthuật toán Euclide
* Tìm UCLN (m,b)
* Tính nghịch đảo trong trường hợp GCD(m, b) = 1
B1 ( A1, A2, A3) = (1, 0, m); ( B1, B2, B3) = ( 0, 1, b)
B2 If B3 = 0 then return A3 = gcd (m, b) , no inverse
B3 If B3 = 1 then return B3 = gcd ( m, b); B2 = b-1 mod n
B4 Q = A3 div B3
B5 ( T1, T2, T3) = ( A1 – Q*B1, A2 – Q*B2, A3 – Q*B3)
B6 ( A1, A2, A3) = ( B1, B2, B3)
Trang 11Chương 2 Đường cong elliptic
2.1 Đường cong elliptic thực
Một đường cong elliptic là một phương trình bậc 3 có dạng sau:
y2 + axy + by = x3 + cx2 + dx + e
Trong đó a, b, c, d, e là các số thực
Trên các đường cong E ta xác định một phép cộng đặc biệt với một điểm O đượcgọi là điểm vô cực Nếu trên đường thẳng cắt đường cong E ở ba điểm thì tổngcủa chúng bằng điểm vô cực O (điểm O này có vai trò như phần tử đơn vị trongphép cộng này) Hình sau mô tả các đường cong E
y2= x3 + 2x + 5 và y2 = x3 - 2x + 1
2.2 Đường cong elliptic hữu hạn
Trang 122.2.1 Phân loại
Có 2 dạng:
* Đường cong nguyên tố Ep (a, b) được xác định trên Zp
- Sử dụng các số nguyên modulo số nguyên tố
- Tốt cho phần mềm
* Đường cong nhị phân En(a,b) xác định trên GF ( 2n)
- Sử dụng đa thức với hệ số nhị phân
- Tốt cho phần cứng
2.2.2 Định nghĩa đường cong eliptic trên trường Galois
Cho p>3 là số nguyên tố, đường cong elliptic y2 = x3 + ax + b trên Zp là tập hợpcác nghiệm ( x,y) Zp x Zp để phương trình đồng dư: y2 = x3 + ax + b ( mod p),trong đó a,b Zp là các hằng số thỏa mãn 4a3 + 27b2 ≠ 0( mod p) cùng với mộtđiểm đặc biệt O được gọi là điểm vô cực
2.3 Các phép toán cộng và nhân trên các nhóm E
Ta định nghĩa phép toán trên E là phép cộng , do đó đường cong Elliptic E tạothành một nhóm Abel( nhóm các phép toán thực hiện trên Zp )
- Giả sử P = (x1 , y1), Q = (x2, y2) là hai điểm thuộc Ep(a,b) Phép cộng được địnhnghĩa như sau:
Trang 13λ = nếu P
λ = nếu P
* P + 0 = 0 + P = P,
* Phép lấy nghịch đảo được tính toán khá dễ dàng
Nghịch đảo của ( x, y) là – (x, y) và là (x, -y)
- Phép nhân
* Phép nhân trên nhóm Ep (a, b) thực hiện tương tự như phép lũy thừa modulotrong RSA
* Phép nhân kP nhận được bằng cách thực hiện k lần phép cộng
2.4 Các bước xác định điểm trên E
Cho Ep (a, b) Ta cần xác đinh các điểm trên E
- Bước 1: với mỗi điểm x Zp ta xác định được mỗi z = y2 = x3 + ax + b mod p
- Bước 2: kiểm tra xem z có phải là thặng dư bậc 2 trên Zp hay không?
- Bước 3: tính căn bậc 2 của z trên Zp, đó chính là các giá trị của y ứng với x
VD:
Cho E7 (1, 6) tìm các điểm thuộc E
Giải:
Ta có E: y2 = x3 + x + 6
Trước hết ta tính các z = y2 = x3 + x + 6 tương ứng như bảng dưới đây:
- Xét xem các giá trị z có thặng dư bậc 2 trên Z7 hay không?
Ta có: Z7* = { 1, 2, 3, 4, 5, 6 }
= 7 – 1 = 6 = 2.3
Trang 14Giả sử a là phần tử sinh a sẽ thỏa mãn:
<=> (1)Xét với a= 2 không thỏa mãn (1)
Xét với a = 3 thỏa mãn (1) Vậy a = 3 là phần tử sinh của Z7*
+ với z= 1, ta tính căn bậc 2 của 1 mod 7
có r = 1(7+1)/4 mod 7 = 1 => hai căn bậc hai là 1 và 6
Trang 15Trong hệ mật này , bản rõ M được mã hóa thành một điểm PM trong tập hữu hạncác điểm của nhóm
Ep (a, b)
Ta xét 3 quá trình trong hệ mật ECC:
3.1 Quá trình tạo khóa
- Bước 1: Trước hết, ta chọn Ep (a, b) Chọn G là phần tử sinh với bậc lớn, tức
Công bố công khai PA và PB
-Bước 3: Ta xác định được khóa công khai KCK: Ep (a, b) , PA , PB
Trang 16Sau đó gửi Pc cho A
x3 = λ2 – x1 – x2 mod p = 12 – 2 – 2 mod 11 = -3 mod 11 = 8
y3 = λ(x1 – x3) – y1 mod p = 1(2 – 8 ) – 7 mod 11 = -13 mod 11 = 9
Trang 17y3 = λ(x1 – x3) – y1 mod p = 4( 8 – 6) – 9 mod 11 = -1 mod 11 = 10
x3 = λ2 – x1 – x2 mod p = 12 – 7 – 7 mod 11 = -13 mod 11 = 9
y3 = λ(x1 – x3) – y1 mod p = 1( 7 – 9 ) – 3 mod 11 = -5 mod 11 = 6Vậy: 2 (7, 3) = ( 9, 6)
Tính 2( 7, 3) + ( 7, 3) = ( 9, 6) + (7, 3) = ( x3, y3 )
λ = mod 11 = 3 2-1 mod 11 = 3.6 mod 11 = 7
Trang 18x3 = λ2 – x1 – x2 mod p = 72 – 9 – 7 mod 11 = 0
y3 = λ(x1 – x3) – y1 mod p = 7( 9 – 0 ) – 6 mod 11 = 2Vậy 3.(7, 3 ) = ( 0, 2)
Tính ( 10, 9 ) + ( 0, 2) = ( x3, y3 )
λ = mod 11 = 7 10-1 mod 11 =7.10 mod 11 = 4
x3 = λ2 – x1 – x2 mod p = 42 – 10 – 0 mod 11 = 6 mod 11 = 6
y3 = λ(x1 – x3) – y1 mod p = 4( 10 – 6 ) – 9 mod 11 = 7 mod 11 =7
x3 = λ2 – x1 – x2 mod p = 02 – 6 – 6 mod 11 = -12 mod 11 = 10
y3 = λ(x1 – x3) – y1 mod p = 0( 6 – 10 ) – 10 mod 11 = -10 mod 11 =1
2.( 6, 10) = ( 10, 1)
Tính 4.( 6, 10) = ( 10, 1) + ( 10, 1) = ( x3, y3 )
λ = mod 11 = 151 mod 11 = 8
x3 = λ2 – x1 – x2 mod p = 82 – 10 – 10 mod 11 = 0
Trang 19y3 = λ(x1 – x3) – y1 mod p = 7( 6 – 10 ) – 7 mod 11 = -2 mod 11 = 9
Vậy bản rõ ban đầu: PM = ( 10, 9)
Chương 4 Độ an toàn của hệ mật trên đường
cong elliptic
Sức mạnh của ECC nằm ở sự khó khăn đối với thám mã khi phải xác định
số ngẫu nhiên bí mật k từ kP và P Phương pháp nhanh nhất dể giải bài toán này
là phương pháp phân tích S – Pollard Để phá độ phức tạp tính toán khi dungphương pháp này là 3,8.1010 MIPS – năm với kích thước khóa 150 bít ( đây là sốnăm cần thiết với một hệ thống tính toán có tốc độ hàng triệu lệnh/giây Để sosánh với phương pháp nhanh nhất phá RSA ( là phương pháp sàng trường số đểphân tích hợp số thành tích của hai số nguyên tố p và q ) ta thấy rằng với n có
Trang 20kích thước 768 bít độ phức tạp tính toán là : 2.108 MIPS – năm, với n có kíchthước 1024 bít , độ phức tạp tính toán là 3.1011 năm
Nếu độ dài khóa của RSA tăng lên tới 2048 bít thì cần 3.1020 MIPS – năm , trongkhi đó với ECC chỉ cần độ dài khóa là 234 bít đã phải yêu cầu tới 1,6.1028 MIPS– năm
Tóm lại: Độ an toàn của hệ mật ECC
- Phụ thuộc vào độ khó của việc xác định số nguyên ngẫu nhiên bí mật k khi biết
2 điểm P và kP
- Chính là bài toán logarit rời rạc trên ECC
- So sánh với RSA cùng mức an toàn thì hệ mật ECC có độ dài khóa nhỏ hơn
Trang 21Để 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 Fq với đặc số p sao cho phù hợp và
công khai cho tất cả mọi người, điểm cơ sở G∈ E(Fq)
Một số khuyến nghị khi lựa chọn các tham số:
1 Kích thích q của trường, hoặc q = p (p>2) hoặc q= 2m
2 Hai phần tử a, b thuộc Fq 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ử xG và yG thuộc Fq xác định điểm cơ sở G = (xG, yG)
4 Bậc n của điểm G với n> 2160 và n >4
* Sinh khoá
1 Chọn số ngẫu nhiên d trong khoảng [2, n-1 ] làm khoá bí mật
2 Tính Q = dG làm khoá công khai
* Thuật toán ký trên bản rõ m
Người dùng A ký lên thông điệp m theo các bước sau:
1 Chọn một số ngẫu nhiên k, 2 ≤ k ≤ n − 1
2 Tính kG = (x1, y1)
3 Tính r = x1 mod n Nếu r =0, quay lại bước 1
4 Tính k-1 mod n
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 )
* Thuật toán kiểm tra chữ ký
Người dùng B kiểm tra chữ ký (r, s ) trên thông điệp m theo các bước sau:
Trang 221 Kiểm tra r và s có là các số tự nhiên trong khoảng [ 2, n-1 ] không.
5.2 Độ an toàn của sơ đồ chữ ký ECDSA
Các hệ mã hoá đường cong elliptic đầu tiên được phát minh năm 1985 bởi NealKobliz và Victor Miller Tuy nhiên sơ đồ chữ ký ECDSA do Scott Vanstoneđưa ra năm 1992, được chấp nhận là chuẩn ISO vào năm 1998, là chuẩnANSI vào năm 1999, và là chuẩn IEEE vào năm 2000
Độ an toàn của sơ đồ ký ECDSA dựa trên bài toán logarit rời rạc đường congelliptic Cho đến nay độ an toàn của các hệ mã hoá đường cong elliptic đãđược chỉ ra là rất an toàn và hiệu quả Đối với bài toán logarit rời rạcđường cong elliptic thì có nhiều thuật toán giải nó Tuy nhiên chưa có thuậttoán nào có độ phức tạp tính toán trong thời gian đa thức
Thuật toán giải bài toán logarit rời rạc đường cong elliptic tốt nhất hiện nay làthuật toán Pollard’s Rho, phiên bản thiết kế theo hướng tính toán song
song Theo đó với nhóm đường cong elliptic cấp n và có r máy tính cùng tínhtoán thì phải mất / 2.r phép toán
Mặt khác người ta đã phân tích và chỉ ra rằng với hệ mã hoá dựa trên bài toánlogarit rời rạc đường cong elliptic có cùng độ bảo mật với hệ mã hoá dựa trênbài toán phân tích số nguyên thành các thừa số nguyên tố (như RSA)
thì độ dài khoá của hệ mã hoá dựa trên đường cong elliptic có chiều dài khoángắn hơn rất nhiều Chẳng hạn với hệ mã hoá RSA có chiều dài khoá là 1024bit thì hệ mã hoá bằng đường cong elliptic chỉ cần độ dài khoá 163 bit sẽ có
Trang 23độ bảo mật tương đương Và do đó việc tính toán các tiến trình đối với các hệ
mã hoá đường cong elliptic là nhanh hơn rất nhiều
Trang 24KẾT LUẬN
Công nghệ thông tin đã và đang là một trong những lĩnh vực đem lạinhiều lợi ích cho xã hội, nó không thể thiếu trong nền kinh tế hội nhập vàtoàn cầu hoá An toàn và bảo mật thông tin là một trong những yếu tố quantrọng cho nhiều ứng dụng trong thực tiễn
Trong quá trình nghiên cứu các giải pháp bảo mật người ta đã phátminh hệ mã hoá công khai dựa trên đường cong elliptic Cho đến nay hệ mãhóa đường cong elliptic được xem là hệ mã hoá an toàn và hiệu quả nhất Sovới các hệ mã hoá công khai khác, ECC được xem là ưu việt hơn bởi ở cùng
độ bảo mật như nhau thì độ dài khoá trong ECC nhỏ hơn nhiều so với các hệ
mã hoá khác Điều này dẫn tới các hệ mã hoá ECC có khả năng thựcthi nhanh hơn, hiệu quả hơn các hệ mã hóa công khai khác
Mong rằng những vấn đề nhóm trình bày trong bài tập lớn này sẽ có íchcho mọi người khi muốn tìm hiểu về HỆ MẬT ECC
Trong quá trình làm đề tài không khỏi tránh những hạn chế nhất định,mong cô giáo và bạn bè góp ý kiến để nhóm có thể hoàn thiện hơn
Trang 251 uong-cong.html
http://timelinelive.blogspot.com/2009/12/ung-dung-he-mat-ma-dua-tren-2 GS.TS Nguyễn Bình
TS Trần Đức Sự - Giáo trình Cơ sở lý thuyết mật mã
3