Luận văn này nghiên cứu cấu trúc phần cứng của hệ thống mật mã đường cong elliptic thực thi kỹ thuật ECIES.. Hệ thống mật mã đường cong elliptic được định nghĩa trên trường nhị phân F2m,
Trang 1-
TÁC GIẢ
LÊ LÝ QUYÊN QUYÊN
BẢO MẬT VỚI MÃ ĐƯỜNG CONG
ELLIPTIC TRÊN FPGA
Chuyên ngành : Kỹ Thuật Vô Tuyến và Điện Tử
Mã số ngành : 2.07.01
LUẬN VĂN THẠC SĨ
TP HỒ CHÍ MINH, tháng 03 năm 2006
Trang 2Cán bộ hướng dẫn khoa học :
Trang 3Tp HCM, ngày 07 tháng 03 năm 2006
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên : Lê Lý Quyên Quyên Phái: Nữ
Ngày, tháng, năm sinh: 22 -04 – 1980 Nơi sinh: An Giang Chuyên ngành: Kỹ Thuật Vô Tuyến và Điện Tử MSHV:01404341
I- TÊN ĐỀ TÀI: BẢO MẬT VỚI MÃ ĐƯỜNG CONG ELLIPTIC TRÊN FPGA
II- NHIỆM VỤ VÀ NỘI DUNG:
Thiết kế bộ mã hóa và boÄ giải mã đường cong elliptic thực thi kyÕ thuật ECIES ,tiến
hành mô phỏng trên phần mềm Matlab và trên FPGA Xilinx Virtex-II Pro
XC2VP100-ff1696 sử dụng phần mềm Xilinx ISE 7.1
III- NGÀY GIAO NHIỆM VỤ (Ngày bắt đầu thực hiện LV ghi trong Quyết định
Trang 4Em xin chân thành cảm ơn đến cô Nguyễn Như Anh và thầy Hồ Trung Mỹ đã tận tình hướng dẫn và định hướng cho em trong suốt quá trình hoàn thành luận văn này
Em cũng chân thành cảm ơn quí thầy cô trường Đại Học Bách Khoa TPHCM đã truyền đạt kiến thức và chỉ dạy tận tình trong những năm học vừa qua
Em xin tỏ lòng biết ơn sâu sắc đến bố mẹ và bạn bè đã quan tâm , giúp đỡ và động viên em trong suốt quá trình nghiên cứu
TP Hồ chí minh, tháng 03 năm 2006 Lê Lý Quyên Quyên
Trang 5Cryptography plays an important role when transmitting data across a public computer network Cryptography ensures that data are transmitted with confidential, authentication, and integrity There are many cryptographic techniques to keep information secret as DES, AES, RSA, Elliptic Curve Cryptography (ECC) ECC has been receiving a lot of attention in the last years because of the benefits it offers ECC offers the same security level than RSA using smaller length key, what implies
less space for key storage , saves resource
This thesis presents a hardware architecture for an Elliptic Curve Cryptography System performing the cryptographic scheme ECIES (Elliptic curve Integrated Encryption Scheme).The elliptic curve cryptography system is defined over the binary field F2m , using polynomial basis, affine coordinates and the binary method to compute an saclar multiplication.ECC is simulated by using Matlab sofware and hardware architecture is described by using VHDL languages A prototype of the architecture was implemented on a Xilinx Virtex2P XC2VP100-
ff1696 FPGA device by using ISE 7.1 sofware of Xilinx coporation
Trang 6Kỹ thuật mật mã đóng một vai trò rất quan trọng trong quá trình truyền dữ liệu qua mạng diện rộng Kỹ thuật mật mã đảm bảo rằng dữ liệu được truyền đi có đầy đủ các đặc tính bí mật, xác thực và toàn vẹn Có nhiều kỹ thuật mật mã để bảo mật thông tin như hệ mật DES, AES, RSA, hệ mật đường cong elliptic (ECC) ECC đã nhận được nhiều sự lưu tâm trong nhiều năm qua vì các lợi ích của nó ECC cung cấp khả năng bảo mật như nhau với các hệ mật khoá công khai khác như RSA, nhưng với độ dài khoá nhỏ hơn,không gian lưu trữ khoá nhỏ vì thế sẽ tiết kiệm được tài nguyên
Luận văn này nghiên cứu cấu trúc phần cứng của hệ thống mật mã đường cong elliptic thực thi kỹ thuật ECIES Hệ thống mật mã đường cong elliptic được định nghĩa trên trường nhị phân F2m, dựa trên cơ sở đa thức , toạ độ affine, sử dụng phương pháp nhị phân để tính toán bộ nhân vô hướng ECC được mô phỏng bằng phần mềm Matlab và cấu trúc phần cứng ECC được mô tả bởi việc sử dụng ngôn ngữ VHDL Mẫu kiến trúc này được thực thi trên FPGA Xilinx Virtex2P XC2VP100-ff1696 sử dụng phần mềm ISE 7.1 của hãng Xilinx
MỤC LỤC
Trang 71) Giới thiệu về mật mã học 1
2) Các hệ thống mật mã 3
a Hệ thống mật mã khoá đối xứng 3
b Hệ thống mật mã khoá công khai 4
2 Mật mã khoá công khai: 6
1) Hệ mật RSA 6
2) Hệ mật Rabin 7
3) Hệ mật El Gamal 8
4) Hệ mật Merkle-Hellman 9
5) Hệ mật Chor-Rivest 10
6) Hệ mật Mc Elice 12
7) Hệ mật đường cong Elliptic 13
3 Các vấn đề về số học của hệ mật đường cong Elliptic 20
1) Nhóm 20
2) Trường hữu hạn 21
3) Nhóm đường cong Elliptic 24
4) Phép toán nhân điểm (nhân vô hướng ) trên đường cong Elliptic 27
4 Các kỹ thuật mật mã đường cong Elliptic 29
1) Các tham số miền 29
2) Các kỹ thuật mật mã đường cong Elliptic 30
ECDH 30
ECIES 30
ECDSA 32
5 Thiết bị logic lập trình được (PLD) 34
1) Lịch sử của programmable logic 34
2) Công nghệ FPGA 35
3) Cấu hình thiết bị 46
4) Họ FPGA Xilinx Spartan IIE - XC2S200E 57
6 Thiết kế phần cứng hệ thống mật mã đường cong elliptic 59
1) Cấu trúc tổng quan của hệ thống mật mã 59
2) Đặc điểm kỹ thuật và cấu trúc các module chính của hệ thống 61
Trang 81) Thực hiện hệ thống mật mã đường cong Elliptic 83
bằng phần mềm mô phỏng Matlab
2) Thực hiện hệ thống mật mã đường cong Elliptic trên FPGA 95
8 Tổng kết 108
1) Kết quả thực hiện 108
2) Kiến nghị những nghiên cứu tiếp theo 109
Phụ lục
Trang 9cong Elliptic A-1
B Chương trình VHDL thực hiện tính toán hệ mật đường
Tài liệu tham khảo
Trang 10Chương 1
TỔNG QUAN VỀ MẬT MÃ HỌC
1) Giới thiệu về mật mã học:
Mật mã học là các vấn đề về thiết kế và phân tích các kỹ thuật thuộc về toán học mà cho phép ta bảo mật thông tin tránh khỏi sự xâm phạm của các thám mã
Sơ đồ khối kiểu thông tin cơ bản:
Hình 1.1 : Kiểu Thông Tin Cơ Bản
A liên lạc, trao đổi thông tin với B qua 1 kênh không an toàn và cuộc liên lạc diễn
ra với sự hiện diện của E là một đối thủ đe dọa sẽ xâm nhập vào cuộc liên lạc này bất kỳ lúc nào E có thể nghe trộm cuộc trao đổi, chỉnh sửa messages của A và B gửi cho nhau Đưa ra vấn đề cần phải bảo mật thông tin trong quá trình liên lạc giữa A và B
Trang 11Các mục đích bảo mật:
— Đảm bảo tính bí mật: giữ bí mật dữ liệu đối với tất cả những ai không
được phép xem, như messages gửi bởi A và B thì E không được phép đọc
— Đảm bảo tính toàn vẹn của dữ liệu:đảm bảo rằng dữ liệu không bị sửa
đổi bởi người khác B có thể phát hiện khi mà dữ liệu gửi bởi A đã bị E chỉnh sửa
— Đảm bảo tính xác thực dữ liệu gốc:chứng thực nguồn gốc dữ liệu.B có
khả năng kiểm tra rằng dữ liệu tự nhận là gửi từ A thì có nguồn gốc thực sự từ A
— Đảm bảo tính xác thực của đối tượng liên lạc (entity):chứng thực nhân
dạng của 1 entity
— Không thể chối bỏ:ngăn chặn 1 entity khỏi việc chối bỏ rằng mình đã trao đổi hay hành động trước Khi B nhận được 1 message tự nhận là từ A, không chỉ
B tin rằng message xuất xứ từ A, mà B còn có thể thuyết phục một người thứ ba trung gian làm chứng, vì thế A không thể phủ nhận việc đã gửi message cho B
Một hệ thống mật mã bao gồm dữ liệu truyền, dữ liệu nhận, và 1 quy luật biến đổi dữ liệu truyền thành dữ liệu nhận trong một môi trường gồm người gửi và người nhận Trong đó người gửi sẽ mã hoá thông tin và người nhận sẽ giải mã thông tin nhận được Liên quan đến các yếu tố : dữ liệu gốc chưa được mã hoá(plaintext), dữ liệu đã mã hoá(ciphertext), khóa mã (key) khóa này có thể bí mật hoặc công khai tuỳ thuộc vào đặc điểm của từng hệ thống mã Vấn đề sử dụng khóa và 1 quy luật(1 hàm) để làm biến dạng 1 khối dữ liệu được gọi là giải thuật của mật mã Như vậy sự
an toàn của hệ thống mật mã dựa trên 2 yếu tố chính: giải thuật và khoá
Trang 122) Các hệ thống mật mã:
a Hệ thống mật mã khoá đối xứng:
Chính là mô hình mật mã cổ điển trước đây (mật mã khóa riêng hay mật mã khóa bí mật)
Bộ mã hoá
Kênh an toàn
Bộ giải mã
Bản mãBản mã
Bản rõ
Nguồn khoá
Hình 1.2 : Hệ thống mật mã khoá đối xứng
Định nghĩa:
Một hệ mật là một bộ 5(P,C,K,E,D) thỏa mãn các điều kiện sau:
• P là một tập hữu hạn các bản rõ có thể
• C là một tập hữu hạn các bản mã có thể
• K là một tập hữu hạn các khóa có thể (không gian khóa)
• Đối với mỗi k∈K có 1 quy tắc mã ek∈E
ek: P C và 1 quy tắc giải mã tương ứng dk ∈ D
Trang 13dk : C P
sao cho dk (ek (x))= x với ∀ x ∈ P
Trong mô hình trên A(người gửi) và B (người nhận) chọn 1 cách bí mật khóa
K Sau đó dùng K để tạo luật mã hoá ek và luật giải mã dk Trong hệ mật này dk hoặc giống ek hoặc dễ dàng nhận ra được từ nó Các hệ mật thuộc loại này được gọi là hệ khóa bí mật, nếu để lộ ek thì làm cho hệ thống mất an toàn
Nhược điểm của hệ mật này là nó yêu cầu phải có thông tin trước về khóa K giữa A và B qua 1 kênh an toàn trước khi gửi 1 bản mã bất kỳ Trên thực tế điều này rất khó đảm bảo vì khi A và B ở cách xa nhau và họ chỉ có thể liên lạc bằng Email Khi đó họ không thể tạo 1 kênh bảo mật với giá phải chăng
b Hệ thống mật mã khoa ùcông khai:
ýù tưởng về một hệ mật khóa công khai được Diffie và Hellman đưa ra vào năm 1976 Xuất phát từ nhược điểm của hệ thống mật mã khoá đối xứng mà hình thành ý tưởng xây dựng 1 hệ mật khóa công khai là hệ mật không có khả năng tính toán để xác định dk khi biết ek Nếu thực hiện được như vậy thì quy tắc mã ek
có thể được công khai bằng cách công bố nó trong 1 danh bạ(nên gọi là hệ mật khóa công khai) Ưu điểm của hệ mật này là A có thể gửi 1 bản tin đã mã cho B (mà không cần thông tin trước về khóa mật) bằng cách dùng mật mã công khai ek Người nhận là B sẽ là người duy nhất có thể giải được bản mã này bằng cách dùng 1 khóa
bí mật xác lập 1 luật giải mã bí mật dk nhờ vào sự kết hợp với khóa công khai Như vậy khác với hệ mật mã khoá đối xứng, hệ mật khóa công khai sử dụng 2 khóa khác nhau là khoá công khai và khoá bí mật Mật mã khoa ùcông khai chậm hơn mật mã khoá đối xứng nhưng hiệu quả bảo mật cao hơn
Trang 14an toàn Bộ giải mã Nhận tin
Khoá công
khai K 1
Bộ mã hoá
Khoáùbí mật K 2
Bản rõ
Hình 1.3: Hệ thống mật mã khoá công khai
Trang 15Chương 2
MẬT MÃ KHOÁ CÔNG KHAI
1.1 Thuật toán tạo khoá :
Mỗi đầu cần tạo một khoá công khai và một khoá riêng tương ứng theo các bước sau:
(1) Tạo hai số nguyên tố lớn ngẫu nhiên và khác nhau p và q, p và q có độ lớn xấp xỉ nhau
(2) Tính n = p.q và Φ(n) = (p-1)(q-1)
(3) Chọn một số ngẫu nhiên e, 1<e< Φ , sao cho (e, Φ)=1
(4) Sử dụng thuật toán Euclide mở rộng để tính một số nguyên d duy nhất , 1<d< Φ, thoã mãn ed ≡1(mod Φ)
(5) Khoá công khai là cặp số (n, e) Khoá riêng bí mật là d
1.2 Thuật toán mã hoá công khai RSA :
B mã hoá một thông báo m để gửi cho A bảng mã cần giải
1.2.1 Mã hoá: B phải thực hiện :
(1) Thu nhận khoá công khai (n, e) của A
(2) Biểu diễn bảng tính dưới dạng một số nguyên m trong khoảng [0, n-1] (3) Tính c = m e mod n
(4) Gửi bản mã c cho A
Trang 161.2.2 Giải mã : Khôi phục bản rõ m từ c A phải thực hiện phép tính sau bằng cách dùng khoá riêng
m = cd mod n
Chứng minh hoạt động giải mã:
Vì ed ≡1(mod Φ) nên luôn tồn tại một số nguyên k sao cho ed = 1+ k Φ Bây giờ nếu (m, p) = 1 theo định lý Ferma ta có: m p-1 ≡ 1 (mod p) Luỹ thừa cả hai vế của đồng dư thức trên với số mũ k(q-1) và rồi nhân cả hai vế với m, ta có:
m 1+k(q-1)(p-1) ≡ m(mod p)
Mặt khác nếu ƯCLN (m, p) =p thì đồng dư thức cuối cùng vẫn đúng vì mỗi vế đồng
dư với 0 mod p Bởi vậy trong mọi trường hợp ta đều có:
m ed ≡ m (mod p)
Bằng lập luận tương tự ta lại có: m ed ≡ m (mod q)
Cuối cùng vì p và q là các số nguyên tố khác nhau nên m ed ≡ m(mod n) và bởi vậy
c d ≡ (m e )d
≡ m (mod n)
2.1 Thuật toán tạo khoá :
Mỗi đầu tạo một khoá công khai và một khoá bí mật theo các bước sau:
(1) Tạo 2 số nguyên tố lớn, ngẫu nhiên và phân biệt p, q có kích thước xấp xỉ nhau
(2) Tính n = p.q
(3) Khóa công khai là n, khoá bí mật là các cặp sô (p,q)
2.2 Thuật toán mã hoá công khai RABIN :
2.2.1 Mã hoá :
Trang 17B phải thực hiện các bước sau :
(1) Nhận khoá công khai của A : n
(2) Biểu thị bản tin dưới dạng một số nguyên m nằm trong dải [0, n-1]
(3) Tính c = m 2 mod n
(4) Gửi bản mã c cho A
Để khôi phục bản mã mã rõ m từ c, A phải thực hiện các bước sau:
Tìm 4 căn bậc hai của c mod n là m 1, m 2 m 3 hoặc m 4
Thông báo cho người gửi là một trong 4 giá trị m1, m2, m3 hoặc m4 Bằng một cách nào đó A sẽ quyết định m là giá trị nào
3 HỆ MẬT ELGAMAL :
3.1 Thuật toán tạo khoá:
Mỗi đầu liên lạc tao một khoá công khai và một khoá bí mật tương ứng:
(1) Tạo một số nguyên tố p lớn và một phần tử sinh α của nhóm nhân Z*
p của các số nguyên mod p
(2) Chonï một số nguyên ngẫu nhiên a , 1<=a <= p-2 và tính α a mod p
(3) Khoá công khai là bộ 3 số (p, α, αa ), khoá bí mật là a
3.2 Thuật toán mã hoá công khai Elgamal :
B mã hoá một thông tin báo m để gứi cho A bản mã cần gửi
3.2.1 Mã hoá: B phải thực hiện các bước sau:
(1) Nhận khoá công khai ( p, α , αa )
(2) Biểu thị bản tin dưới dạng một số nguyên m trong dải {0,1,…, p-1}
(3) Chọ số nguyên ngẫu nhiên k, 1<= k<=p-2
(4) Tính γ = α k mod p và δ = m(α a ) k mod p
Trang 18(5) Gửi bản mã c = (α, δ) cho A
Để khôi phục bản rõ m từ c, A phải thực hiện các bước sau:
(1) Sử dụng khoá riêng a để tính γ p-1-a mod p
(Chú ý: γ p-1-a = γ –a = γ –ak)
(2) Khôi phục bản rõ bằng cách tính (γ –a) đ mod p
Chứng minh hoạt động giả mã:
Thuật toán trên cho phép A thu được bản rõ vì:
γ –a δ ≡ α -ak.m α ak ≡ m mod p
4.1 Định nghĩa dãy siêu tăng:
Định nghĩa: Dãy các số nguyên dương ( a1, a2 , …, an) được gọi là dãy siêu tăng nếu
(1) Chọn một dãy siêu tăng ( M > M 1, M 2, …, M n) và một Modulo M sao cho M > M1, M 2, …Mn
(2) Chọn một số nguyên ngẫu nhiên W, 1 ≤ W ≤ M –1 sao cho (W, M) = 1 (3) Chọn một phép hoán vị ngẫu nhiên π của các số nguyên { 1, 2,…,n} (4) Tính ai = W Mπ(i) mod M với I =1, 2, …, n
(5) Khoá công khai là tập hợp các số(a1, a2, …an)
Trang 19Khoá bí mật là (π, M, W(M1, M2, …Mn))
4.3 Thuật toán mã hoá công khai Merkle – Hellman
B mã hoá bản tin m để gửi cho A bản mã cần giải mã
4.3.1 Mã hoá: B phải thực hiện các bước sau:
(1) Nhận khoá công khai cúa A : (a1, a2, …, an)
(2) Biểu thị bản tin m như một chuỗi nhị phân có độ dài n m =( m1, m2, , mn) (3) Tính số nguyên c = m1a1 + m2a2 + + mnan
(4) Gửi bản giải mã c cho A
(3) Các bit của bản rõ là mi = rπ (i) , i = 1, 2,…n
Hệ mật CR là hệ mật khoá công khai xếp balô duy nhất hiện nay không sử dụng phép nhân Modulo để nguỵ trang bài toán tổng tập con
Trang 20(2) Chọn một đa thức bất khả quy định chuẩn ngẫu nhiên f(x) bậc h trên â Zp Các phần tử của Fq sẽ được biểu diễn bằng các đa thức trong Zp [x] có bậc nhỏ hơn h với phép nhân được thực hiện theo mod f(x)
(3) Chonï một phần tử nguyên thuỷ ngẫu nhiên g(x) của Fq
(4) Với mỗi phần tử của trường cơ sở i Є Zp , tìm Logarit rời rạc
ai = logg(x) (x+i) theo cơ số g(x)
(5) Chọn một phép hoán vị ngẫu nhiên π trên các số nguyên {1,2,…,p-1} (6) Chọn một số nguyên ngẫu nhiên d, 0<=d<=p h - 2
(7) Tính Ci = (aπ (i) + d) mod (ph-1), 0<=i<=p-1
(8) Khoá công khai của A là ((C0 , C1, ,CP-1), p , h)
Khoá riêng của A là (f(x), g(x), π, d)
5.2 Thuật toán mã hoá: B mã hoá thông báo m để gửi cho A
5.2.1 Mã hoá: B thực hiện các bước sau:
a) Nhập khoá công khai của A ((C0 , C1, ,CP-1), p , h)
b) Biểu diễn thông báo như một xâu bit có độ dài [ lg(p/h)]
Trang 21a) Tính: r = (c –hd)mod(ph –1)
b) Tính u(x) = gr(x) mod f(x)
c) Tính s(x) = u(x) +f(x) là một đa thức định chuẩn h trên Zp
d) Phân tích s(x) thành các nhân tử bậc nhất trên Zp s(x)= ∏ (x + tj) ,tj Є Zp
Nếu Mi-1= 1 thì đặt m← m + (p-i / l), l ← l-1
6 Hệ mật MC Elice:
Giả sử ma trận G (k x n) chứa t số sai và sửa sai là ma trận tuyến tính tổng quát MC Elice trộn G bằng cách chọn ngẫu nhiên ma trận S(k x k) và một ma trận hoán vị P ngẫu nhiên Sau đó ma trận G chuyển thành G’= SGP , G’(k x n) được gọi là ma trận công khai tổng quát G được đưa ra như khoá mã hoá, nhưng các ma trận
G, S, P được giữ bí mật Từ G’ ta có thể suy ra G =S-1G’P-1 Người gửi mã hoá văn bản gốc m (k bit) thành ciphertext C (n bit) bằng cách:
C = mG’ + e = mSGP + e
Dựa theo công thức của C , mã nhận được trở thành
C = C P-1 = (mS)G + e’ với e’ = e P -1
Thuật toán giãi mã của mã gốc : loại bỏ vector sai e và tái lập vector mS Ta có thể thấy văn bản gốc dễ dàng suy ra :
m = (mS)S’
Trang 227 Hệ mật đường cong Elliptic:
Hệ Mật Đường Cong Elliptic được đề xuất và giới thiệu một cách độc lập bởi Neal Koblitz của trường đại học Washington và Victor Miller của IBM vào năm
1985
Hệ mật này là biến thể của các hệ mật khác (hệ mật Elgamal, DSA), cũng như các hệ mật khác tính bảo mật của nó dựa vào vấn đề toán học khó khăn : vấn đề logarithm rời rạc trên đường cong Elliptic trong trường hữu hạn (ECDLP)
7.1 Ưu điểm của hệ mật đường cong elliptic so với các hệ mật khóa công khai khác (RSA)
a) Hệ mật này đảm bảo độä mật tương đương nhưng với với số khoá nhỏ hơn các hệ mật khóa công khai khác Theo NIST:
ECC key size RSA key size Key size(tỉ lệ)
b)Phù hợp cho các ứng dụng embedded:
ECC cung cấp khả năng bảo mật cao nhất trên mỗi bit khoá so với bất kỳ hệ thống mật mã khóa công khai nào vì thế có thể sử dụng một bộ nhớ nhỏ hơn
Việc thực thi phần cứng ECC sử dụng ít transistor
Trang 23 Ví dụ: việc thực thi 1 VLSI của bộ xử lý ECC 155 bit được báo cáo chỉ sử dụng 11.000 transistor So với bộ xử lý tương đương RSA 512 bit phải sử dụng 50.000 transistor
ECC bảo mật hơn RSA
c) Thuật toán mã hoá nhanh, cô đọng
d) Tốc độ cao, tiêu thụ công suất thấp, ít tốn băng thông, yêu cầu lưu trữ thấp
So sánh mức độ bảo mật của ECC vaØ RSA & DSA : [15], [16], [17]
Hình 2.1 : So sánh mức độ bảo mật của ECC và RSA & DSA
ECC RSA &DSA
Trang 24Ứng dụng của hệ mật đường cong Elliptic:
xuất phát từ những ưu điểm trên ECC có thể ứng dụng đặc biệt phù hợp trong các môi trường mà tài nguyên bị hạn chế như:
Các thẻ thông minh( smartcards), cell phones
Các thiết bị handheld
Bảo mật mạng vô tuyến (tài nguyên bị giới hạn)
IDs (Austrian National ID card)
7.2 / Giới Thiệu Về Đường Cong Elliptic:
Một đường cong elliptic E trên trường hữu hạn K được định nghĩa bởi phương trình
Weierstrass:
E : y2 + a1xy + a3y = x3 + a2 x2 + a4 x + a6 (1) với a1, a3 , a2 , a4 , a6 ∈ K , ∆ ≠ 0 (∆ là biệt số của E) được định nghĩa như sau:
Trang 25- -1
- -2
-2 -1
1 Trong trường số nguyên G(Fp)(đặc số của trường không bằng 2 hoặc 3 ) lúc này có sự thay đổi toạ độ (x, y)
(x, y) x-3a12 – 12a2 y-3a1x a13 + 4 a1a2 – 12a3
36 216 24 phương trình Weierstrass có dạng đơn giản:
,
E : y2 = x3 + ax+b (2) với a,b ∈ G(Fp) ; ∆ = -16(4a3 + 27b2 ) ≠ 0
2 Trong trường nhị phân G(F 2m ) (đặc số của trường bằng 2 ), có 2 trường hợp xảy ra
(x, y) a3 a12a4 + a32
a1 a13
a12x + , a13y +
Trang 26E : y + xy = x + ax + b (3) với a,b ∈ G(F 2m ) ; ∆ = b ≠ 0
Đường cong elliptic này gọi là đường cong non-supersingular
b Nếu a1 = 0:
(x, y) (x + a2 , y) phương trình Weierstrass có dạng :
E : y2 + cy = x3 + ax + b (4) với a,b ∈ G(F 2m ) ; ∆ = c4 ≠ 0
Đường cong elliptic này gọi là đường cong supersingular
3 Nếu đặc số của trường bằng 3, có 2 trường hợp xảy ra:
a Nếu a12 ≠ -a2 : (x, y) d4 a1d4
Đường cong elliptic này gọi là đường cong non-supersingular
b Nếu a12 = -a2 : (x, y ) (x, y + a1x + a3) phương trình Weierstrass có dạng :
E : y2 = x3 + ax + b (5) với a,b ∈ G(F 2m ) ; ∆ = -a3 ≠ 0
Đường cong elliptic này gọi là đường cong supersingular
Trang 27Điểm (x,y) với x,y ∈ K là1 điểm trên đường cong nếu (x,y) thoả mãn pt Weierstrass ,điểm không xác định (∝) thì cũng thuộc đường cong Tập hợp tất cả những điểm trên E được gọi là E(K)
7.3 Thuật toán tạo khoá :
Cho E là một đường cong Elliptic định nghĩa trên trường hữu hạn Fp Với P là 1 điểm trên E(Fp) , P có cấp n Vậy thì nhóm con xyclic của E(Fp) tạo ra bởi P là:
Thuật toán tạo khoá:
input: các tham số của đường cong Elliptic ( p, E, P, n )
output: khoá công khai Q và khoá bí mật d
1) Chọn số nguyên ngẫu nhiên d , d ∈ [ 1, n-1 ]
2) Tính Q= dP
3) Trả về(Q,d)
7.4 Thuật toán mã hoá đường cong Elliptic:
Tóm lược :B mã hoá 1 thông tin báo m để gửi cho A bản mã cần gửi
1 thông tin báo m đầu tiên được cho là như 1 điểm M, sau đó được mã hoá bằng cách cộng M với kQ, với k là số nguyên ngẫu nhiên và Q là khoá công khai của người nhận
Trang 28Người gửi phát đi những điểm C1= kP va ø C2 = M + kQ đến người nhận
Người nhận sẽ dùng khóa bí mật d để tính:
dC1 = d(kP) = k(dP) = kQ và khôi phục : M = C2 - kQ
Ta trình bày các thủ tục mã hoá và giải mã cho đường cong Elliptic tương tự như hệ mật Elgamal cơ bản
7.4.1 Thuật toán mã hoá:
Vào: các tham số của đường cong Elliptic (p, E, P, n), khóa công khai Q, thông tin chưa đươc mã hoá (plaintext) m
Ra: thông tin đã mã hoá (C1, C2) (ciphertext)
1 Xem m như 1 điểm M trên E(Fp)
2 Chọn số nguyên ngẫu nhiên k ∈[ 1, n-1 ]
3 Tính C1= kP
4 Tính C2=M + kQ
5 Trả về (C1, C2)
7.4.2 Thuật toán giải mã:
Vào: các tham số của đường cong Elliptic (p, E, P, n), khoá bí mật d, ciphertext (C1, C2)
Ra: plaintext m
1.Tính M= C2 - dC1, và suy ra m từ M
Trang 29Nếu phép toán nhóm là phép nhân thì nhóm được gọi là nhóm nhân, phần tử đơn vị của nhóm này là 1, còn phần tử ngược của a ký hiệu là a-1
Trang 301.2 Nhóm Hữu Hạn:
Nhóm G hữu hạn nếu ⎥ G⎥ là hữu hạn Số các phần tử của nhóm ⎥ G⎥ được gọi là cấp của nhóm
a Nhóm con:
Một tập con không trống H của nhóm G được gọi là một nhóm con của G nếu H là một nhóm với phép toán nhóm tương ứng trong G Nếu H là 1 nhóm con của G và H ≠ G thì H được gọi là nhóm con thực sự của nhóm G
b Nhóm xyclic:
Nhóm G được gọi là nhóm xyclic nếu tồn tại 1 phần tử α∈G sao cho với mỗi b
∈G có 1 số nguyên i với b= αI Phần tử α như vậy được gọi là phần tử sinh của G Nếu G là 1 nhóm và a ∈G thì tập tất cả các luỹ thừa của a sẽ tạo nên 1 nhóm con xyclic của G Nhóm này được gọi là nhóm con sinh bởi a và ký hiệu là 〈a〉
c Cấp của một phần tử:
Cho G là 1 nhóm và a∈ G Cấp của được xác định bằng số nguyên dương t nhỏ nhất đảm bảo at = 1 Nếu không tồn tại t như vậy thì cấp của a được coi là ∝
2/ Trường hữu hạn :
2.1 Định nghĩa trường:
Trường (F,+,*) là tập hợp các số F với 2 phép toán 2 ngôi + và * thoả mãn các tiên đề sau:
a ( F, + ) là nhóm Abel với phần tử đơn vị 0
b phép toán * là kết hợp Tức là:
c a* ( b * c ) = (a * b) * c
d Tồn tại phần tử 1 ≠ 0 sao cho: 1 * a = a * 1 = a ∀ a ∈ F
e Phép nhân là phân phối đối với phép cộng Tức là:
Trang 31a * (b + c) = (a * b) + (a * c)
và (b + c) * a = ( b * a) + (c * a) ∀ a, b, c ∈ F
f ∀ a ≠ 0, a∈ F tồn tại a-1 ∈ F với a* a-1 = a-1 * a = 1
2.2 Trường hữu hạn:
Trường hữu hạn là một trường F có chứa một số hữu hạn các phần tử Cấp của trường F là số các phần tử trong F
Nếu F là một trường hữu hạn thì F chứa pm phần tử với p là số nguyên tố nào đó, m là số nguyên dương (m>=1) Với mỗi giá trị pm tồn tại duy nhất một trường hữu hạn cấp pm Trường này ký hiệu là GF(pm)
Trong số các trường khác nhau mà có thể làm cơ sở cho đường cong Eliiptic ,trường số nguyên GF(p) và trường đa thức nhị phân GF(2m) đã được chứng minh là phù hợp nhất cho các ứng dụng về mật mã hoá Đặc biệt trường GF(2m) cho phép tính toán nhanh và hiệu quả trên thực thi ở cả phần cứng lẫn phần mềm Trên trường GF(2m) số bit tối thiểu yêu cầu để biểu diễn cho các thành phần trong trường hữu hạn là >160 bit để tránh các tấn công thông thường Nên trong đề tài này ta xét hệ mật đường cong elliptic trên trường đa thức nhị phân GF(2163)
a Trường số nguyên :
Trường số nguyên kí hiệu là Fp, với p là một số nguyên Fp bao gồm các yếu tố {0, 1, 2,… , p-1} Các toán hạng cộng và nhân được thực hiện cộng và nhân theo phép tính thông thường, kết quả sau đó lần lượt rút gọn modulo p (mod p)
Phép cộng : a+b = (a + b) mod p với a, b Є Fp
ví dụ : 17 +20 = 8 vì 37 mod 29 = 8
Phép trừ : a-b = (a - b) mod p với a, b Є Fp
ví dụ : 17 -20 = 26 vì -3 mod 29 = 26
Trang 32 Phép nhân : a * b = a * b mod p với a, b Є Fp
ví dụ : 17 *20 = 21 vì 340 mod 29 = 21
Phép đảo : ∀ a ≠ 0, a∈ Fp tồn tại a-1 ∈ Fp nếu a* a-1 = a-1 * a = 1(mod p)
ví dụ : 17-1 = 12 vì 17.12 mod 29 =1
b Trường đa thức nhị phân:
Trường đa thức nhị phân kí hiệu là F2m , để xây dựng trường ta sử dụng cách biểu diễn đa thức cơ bản, các yếu tố trong trường F2m là các đa thức nhị phân (đa thức mà các hệ số chỉ là { 0, 1} có bậc tối đa là m-1 Mỗi yếu tố a Є F2m có thể biểu diễn ở dạng đa thức nhị phân như sau:
Trang 33∀ a ≠ 0, a∈ F2m , tồn tại a-1 ∈ F2m nếu a* a-1 mod f(x) = a-1* amod f(x) =1
Ví dụ : Trường nhị phân F24 gồm có 16 yếu tố là các đa thức nhị phân có bậc cao nhất là 3
1(0001) x2+1(0101) x3 +1(1001) x3 + x2 +1(1101)
x(0010) x2 + x (0110) x3 + x(1010) x3 + x2 + x(1110)
x+1(0011) x2 + x +1(0111) x3 + x +1(1011) x3 + x2 + x +1(1111) có đa thức tối giãn f(x) = x4 + x + 1 biểu diễn nhị phân là 10011
3.1 Qui luật nhóm cho đường cong elliptic trên trường F p :
E là đường cong elliptic trên trường Fp, tập hợp tất cả những điểm trên E (kể cả điểm ∞ ) gọi là nhóm đường cong elliptic, kí hiệu là E(Fp) Có một qui luật dây cung và tiếp tuyến (chord- and-tangent) để thực hiện cộng hai điểm phân biệt trên đường cong elliptic và double một điểm trên đường cong elliptic để tạo ra một điểm thứ 3
Qui luật cộng 2 điểm P(x1,y1) và Q(x2,y2) , P ≠ ± Q trên đường cong elliptic:
Trang 34Trước hết vẽ một đường qua hai điểm P, Q đường này cắt đường cong elliptic tại điểm thứ ba Điểm tổng R = P + Q là điểm đối xứng với điểm thứ ba qua trục x có toạ độ R(x3,y3)
Xem hình vẽ a :
Qui luật double điểm P(x1,y1) với P ≠ -P trên đường cong elliptic:
Trước hết vẽ một đường tiếp tuyến với đường cong tại điểm P, đường này cắt đường cong elliptic tại một điểm thứ hai Điểm double : R = 2P là điểm đối xứng với điểm thứ hai qua trục x có toạ độ R(x3,y3)
a Trường số nguyên :
E : y2 = x3 + ax+b với a,b ∈ Fp ; P là điểm trên đường cong
∆ = -16(4a3 + 27b2 ) ≠ 0
1 P + ∞ = ∞ + P , ∀ P ∈ E(Fp) 2.Nếu P(x1, y1) ∈ E(Fp) thì (x1 , y1) + (x1 , -y1) =∞ Điểm (x1 , -y1) là phủ định của P, kí hiệu –P , -P cũng ∈ E(Fp) , và -∞ = ∞
3 Nếu P ≠ ± Q , ADD (P, Q) = R với
Trang 35Ví dụ : Xét đường cong E : y2 = x3 + 4x + 20 trong trường F29 , a= 4, b= 20
có điểm P =(5,22) , Q =(`6, 27) thuộc E
ADD(P , Q) = (5,22) + (`6, 27) = (13, 6)
DOUBLE (P) = 2 (5, 22) = (14, 6)
b Trường đa thức nhị phân :
Ta chọn sử dụng loại đường cong elliptic là non-supersingular trên trường F(2m) có phương trình sau: E : y2 + xy = x3 + ax2 + b ; với a, b ∈ F2m , b ≠ 0
1 P + ∞ = ∞ + P , ∀ P ∈ E(F2m) 2.Nếu P(x1, y1) ∈ E(Fp) thì (x1 , y1) + (x1 , -y1) =∞ Điểm (x1 , -y1) là phủ định của P, kí hiệu –P , -P cũng ∈ E(Fp) , và -∞ = ∞
3 Nếu P ≠ ± Q , ADD (P, Q) = R với
Trang 36λ = x1 + y1/ x1
3.2 Sự biểu diễn điểm trên đường cong elliptic:
Sự biễu diễn toạ độ của điểm phổ biến nhất là biểu diễn Affine, nó dựa vào 2 toạ độ (x,y) Bên cạnh đó còn có các lïoai biểu diễn khác là Projective, Jacobian, López- Dahab, chúng sử dụng 3 toạ độ (X,Y,Z)
4/ Phép toán nhân điểm ( nhân vô hướng ) trên đường cong Elliptic:
Phép tóan cơ bản của hệ thống mật mã đường cong elliptic là phép tính kP với P là 1 điểm trên đường cong, k là số nguyên Việc tính kP thực hiện như một chuỗi của sự lặp lại các phép tóan cộng điểm và double điểm Hệ thống mật mã đường cong elliptic (ECCs) dựa vào cơ sở giải quyết vấn đề logarithm rời rạc trên đường cong elliptic là một nhiệm vụ khó khăn Nghĩa là cho k và P thì việc tính kP là thuộc tính phức tạp của đa thức, nhưng tính k khi chỉ biết P, và kP thì còn phức tạp hơn nhiều Có nhiều phương pháp để tính toán kP kP biễu diễn theo phương trình sau:
kP = P + P +… + P
Việc tính toán kP được thực hiện theo cấp độ tóm tắt ở hình vẽ sau:
Trang 37ECC_ADD ECC_DOUBLE
Số học trường hữu hạn (cộng, nhân, đảo)
Nhân Vô Hướng
Hình 3.2 : Hệ thống phân cấp nhân vô hướng
Trang 38
Chương 4
CÁC THUẬT TOÁN MẬT MÃ ĐƯỜNG CONG ELLIPTIC
1) Các tham số miền :
E là đường cong elliptic trên trường Fq (q= 2m), một hệ thống mật mã đường cong elliptic gồm các tham số miền sau :
D = ( m, f(x), a, b, G, n, h )
• m : cấp của trường
• f(x) : chỉ sự biểu diễn trường hữu hạn
• a, b : các hệ số của phương trình đường cong elliptic
• G : điểm trên đường cong elliptic G= (xG, yG) ∈E(Fq)
Trang 392) Các thuật toán mật mã đường cong Elliptic :
Ta chọn sử dụng các thuật toán mật mã sau : kyÕ thuật Elliptic Curve Diffie-Hellman (ECDH), Elliptic Curve Digital Signature Algorithm (ECDSA), Elliptic Curve Integrated Encryption Scheme (ECIES)
• ECDH là đường cong elliptic phiên bản của phương pháp tạo khoá Hellman
Diffie-• ECDSA là đường cong elliptic tương tự với DSA (Digital Signature Algorithm)
• ECIES là kỹ thuật mã hoá và giải mã được đề nghị bởi SECG (Standards For Efficient Cryptography Group )
Với các thuật toán mật mã này, các tham số miền được chia sẽ giữa 2 entity A và B,
dA &QA , dB & QB lần lượt là khoá bí mật và khoá công khai của A &B
2.1 Tạo Khoá Diffie-Hellman (DH) :
A sử dụng thủ tục sau để tính giá trị chia sẽ bí mật với B:
1) Tính P = dA.QB = (x, y)
2) z=x
3) Giá trị bí mật là z
z là giá trị khoá chia sẽ giữa 2 entity A và B
2.2) Kỹ thuật ECIES:
ECIES viết tắt từ Elliptic Curve Integrated Encryption Scheme đã được đề
nghị bởi Bellare và Rogaway, là một biến thể của hệ mật Elgamal ECIES đã được tiêu chuẩn hoá trong ANSI X9.63 , ISO/IEC 15946-3 VÀ IEEE P1363a Trong kỹ thuật này giá trị bí mật dùng chung Diffie-Hellman được sử dụng để tạo ra 2 khoá
KS và KMAC Khoá KS được sử dụng để mã hoá message thành ciphertext bằng giải
Trang 40thuật Symmetric Cipher và khoá KMAC được sử dụng để xác thực kết quả của ciphertext
ECIES sử dụng 2 giải thuật Symmetric cipher (mật mã đối xứng ) và giải thuật HMAC (Message Authentication Code) để tính toán KS, KMAC lần lượt là độ dài khoá của 2 giải thuật trên được tạo ra từ hàm phân phối khóa KDF (Key Derivation Function) là hàm được xây dựng từ hàm băm H
ENC là hàm mã hoá của kỹ thuật mã khoá đối xứng, DEClà hàm giải mã,
Thuật toán mã hoá ECIES:
A muốn gửi 1 message đã mã hoá cho B sẽ tiến hành như sau
Vào : các tham số miền D = (q, FR, a, b, G, n), khoá công khai Q, plaintext m
Ra : ciphertext (R, C, t)
1) Chọn số nguyên ngẫu nhiên k ∈ [1, n-1]
2) Tính R = kG và Z = kQ Nếu Z = ∝ thì trở lại bước 1
3) (KS, KMAC ) ← KDF (xZ, R), với xZ là toạ độ x của Z
4) Tính C = ENC(m, KS)
5) Tính V = MAC(m, KMAC)
6) Trả về (R, C, V)
Thuật toán giải mã ECIES:
Để khôi phục message gốc B tiến hành các bước sau:
Vào : các tham số miền D = (q, FR, a, b, P, n), khoábí mật d, ciphertext (R, C, V)
Ra : plaintext m hoặc từ chối ciphertext
1) If R không là điểm hợp lệ trên ECC, fail and return
2) Tính Z = dR Nếu Z = ∝ thì trả về (“từ chối ciphertext”)
3) (KS, KMAC) ← KDF (xZ, R), với xZ là toạ độ x của Z