Tải bản đầy đủ (.pdf) (122 trang)

Bảo mật với mã đường cong elliptic trên fpga

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.27 MB, 122 trang )

Đại Học Quốc Gia Tp. Hồ Chí Minh
TRƯỜNG ĐẠI HỌC BÁCH KHOA
--------------------

TÁC GIẢ

LÊ LÝ QUYÊN QUYÊN

BẢO MẬT VỚI MÃ ĐƯỜNG CONG
ELLIPTIC TRÊN FPGA
Chun 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


CƠNG TRÌNH ĐƯỢC HỒN THÀNH TẠI
TRƯỜNG ĐẠI HỌC BÁCH KHOA
ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH
Cán bộ hướng dẫn khoa học :
1. TS. Nguyễn Như Anh
2. Th.S Hồ Trung Mỹ

Cán bộ chấm nhận xét 1 : PGS.TS. Lê Tiến Thường

Cán bộ chấm nhận xét 2 : TS Hòang Đình Chieán

Luận văn thạc sĩ được bảo vệ tại HỘI ĐỒNG CHẤM BẢO VỆ LUẬN VĂN


THẠC SĨ
TRƯỜNG ĐẠI HỌC BÁCH KHOA, ngày 14 tháng 07 năm 2006


TRƯỜNG ĐẠI HỌC BÁCH KHOA CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
PHÒNG ĐÀO TẠO SĐH ĐỘC LẬP – TỰ DO – HẠNH PHÚC

Tp. 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
: Leâ Lý Quyên Quyên
Ngày, tháng, năm sinh: 22 -04 – 1980

Phái: Nữ
Nơi sinh: An Giang

Chun 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à b giải mã đường cong elliptic thực thi k 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
giao đề tài):
IV- NGÀY HOÀN THÀNH NHIỆM VỤ:
V- CÁN BỘ HƯỚNG DẪN
1. TS. Nguyễn Như Anh

2. Th.S Hồ Trung Mỹ

CÁN BỘ HƯỚNG DẪN

CN BỘ MÔN QL CHUYÊN NGÀNH

Nội dung và đề cương luận văn thạc sĩ đã được Hội đồng chuyên ngành thơng qua.
Ngày

tháng

năm 2006

TRƯỞNG PHỊNG ĐT – SĐH TRƯỞNG KHOA QL NGÀNH


Lời cảm ơn

Em 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 q 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ý Quyeân Quyeân



ABSTRACT
Cryptography 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 XC2VP100ff1696 FPGA device by using ISE 7.1 sofware of Xilinx coporation


Tóm tắt
Kỹ 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 LUÏC


Tóm tắt
1. Tổng quan về mật mã học: ................................................................................ 1

2.

3.

4.

5.

6.

1) 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

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
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
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
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
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



3) ECC_processor .............................................................................................. 74
7. Thực thi hệ mật đường cong elliptic trên Matlab và FPGA ....................... 83
1) 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


A. Chương trình Matlab thực hiện tính toán hệ mật đường
cong Elliptic

A-1

B. Chương trình VHDL thực hiện tính toán hệ mật đường
cong Elliptic
Tài liệu tham khảo

B-1


Chương 1 : Tổng quan về mật mã học

Chươ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:
Kênh không an toàn
A

B

E
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.

Bảo mật với mã đường cong Elliptic trên FPGA

Trang 1


Chương 1 : Tổng quan về mật mã học

Cá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á


Bảo mật với mã đường cong Elliptic treân FPGA

Trang 2


Chương 1 : Tổng quan về mật mã học

2) 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)

Thám mã

Bản rõ
Nguồn
tin

A

Bản mã
Bộ mã hoá

Bản mã

Kênh không
an toàn

K


Kênh an
toàn

Bản rõ

Bộ giải


Nhận
tin

K

B

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


Bảo mật với mã đường cong Elliptic trên FPGA

Trang 3


Chương 1 : Tổng quan về mật mã học

dk

: 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.

Bảo mật với mã đường cong Elliptic treân FPGA

Trang 4


Chương 1 : Tổng quan về mật mã học

Thám mã

Bản rõ
Nguồn
tin

Bản mã

Bản mã
Bộ mã
hoá

Kênh không
an toàn

Bản rõ


Bộ giải


Nhận
tin

A
Khoá công
khai K1

B
Kênh không
an toàn

Khoáùbí
mật K2
Cặp khoá
K1 , K2

Hình 1.3: Hệ thống mật mã khoá công khai

Bảo mật với mã đường cong Elliptic treân FPGA

Trang 5


Chương 2 : Mật mã khóa công khai

Chương 2


MẬT MÃ KHOÁ CÔNG KHAI
1. Hệ mật RSA:
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(4) Sử dụng thuật toán Euclide mở rộng để tính một số nguyên d duy nhất ,
1(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

Bảo mật với mã đường cong Elliptic trên FPGA

Trang 6


Chương 2 : Mật mã khóa công khai


1.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. Hệ mật RABIN
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á :


Bảo mật với mã đường cong Elliptic trên FPGA

Trang 7


Chương 2 : Mật mã khóa công khai

B 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.
2.2.2 Giải mã:
Để 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 vaø δ = m(α a ) k mod p .

Bảo mật với mã đường cong Elliptic treân FPGA

Trang 8


Chương 2 : Mật mã khóa công khai

(5) Gửi bản mã c = (α, δ) cho A.
3.2.2 Giải mã:
Để 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. H mật Merkle – Hellman :
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
i-1

ai > ∑ aj
j=1


với∀ i, 2 ≤ i ≤ n.
4.2 Thuật toán tạo khoá:

Mỗi đầu liên lạc tạo cho mình một khoá công khai và một khoá bí mật tương ứ ng.
Chọn một số nguyên xác định n được xem là một tham số chung của hệ thống.
Mỗi đầu liên lạc thực hiện các bước sau:
(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) Choï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)

Bảo mật với mã đường cong Elliptic trên FPGA

Trang 9


Chương 2 : Mật mã khóa công khai

Khoá 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.
4.3.2 Giải mã:
Để khôi phục bản rõ m từ c, A phải thực hiện các bước sau:
(1) Tính d = W-1 c mod M
(2) Sử dụng thuật giải xếp balô trong trường hợp dãy siêu tăng để tìm các số
r1, r2, …rn, ri Є {0,1} sao cho:
d = r1 M1 + r2 M2 + …+ rn Mn
(3) Các bit của bản rõ là mi = rπ (i) , i = 1, 2,…n
5. Hệ mật Chor – Rivest( CR) :
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 để ng trang bài toán tổng tập con.
5.1 Tạo khoá:
Mỗi bên liên lạc tạo một khoá công khai và một khoá riêng tương ứng. A thực hiện
các bước sau:
(1) Chọn một trường hữu hạn Fq có đặc số q, trong đó q = ph, p >=h và đối
với nó bài toán Logarit rời rạc là khó giải,

Bảo mật với mã đường cong Elliptic trên FPGA

Trang 10


Chương 2 : Mật mã khóa công khai

(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)]

Trong đó (p/h) = p!/h!(p-h)!
c)

Xem m như là biểu diễn nhị phân của một số nguyên. Biến đổi số nguyên

này thành một vectơ nhị phân M = {M0, M1, …, Mp-1 } có độ dài p và có đúng h con
số 1 .

i-1

d) Tính c =∑ M i ci mod (ph –1)
j=1

e)


Gửi bản mã c cho A
5.2.2 Giải mã:

Để khôi phục bản mã rõ m rừ c, A phải thực hiện các bước lệnh sau:

Bảo mật với mã đường cong Elliptic trên FPGA

Trang 11


Chương 2 : Mật mã khóa công khai

a) 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

h

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
j-1

e) Các thành phần có giá trị 1 của vectơ M có các chỉ số là π-1(tj) với 1<=j<=h.
Các thành phần còn lại bằng 0
f)

Thông báo m được khôi phục lại từ M như sau:
i) Đặt m ← 0, l← h
ii) For i from 1 to p do:
Neá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’

Bảo mật với mã đường cong Elliptic treân FPGA

Trang 12


Chương 2 : Mật mã khóa công khai

7. 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ệ)

163

1024

1:6

224

2048

1:9

256

3072

1:12

384

7680


1:20

512

15360

1:30

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.

Bảo mật với mã đường cong Elliptic treân FPGA

Trang 13


Chương 2 : Mật mã khóa công khai

ƒ 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 v RSA & DSA : [15], [16], [17]

6000


5000
Key
Size
(bit)

Mức độ bảo mật có thể chấp
nhận hiện nay (1012 MIPS/ year)

4000
ECC
RSA

3000

&DSA

2000

1000
10000

108
1012
1020
1036
Thời gian để phá vở khoá ( MIPS/ year)

Hình 2.1 : So sánh mức độ bảo mật của ECC và RSA & DSA

Bảo mật với mã đường cong Elliptic trên FPGA


Trang 14


Chương 2 : Mật mã khóa công khai

Ứ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:

∆ = -d22d8 – 8d43 -27d62 + 9d2d4d6
d2 = a12 + 4a2
d4 =2 a4 + a1 a3
d6 = a32 + 4a6
d8 = a12 a6 + 4a2 a6 - a1 a3 a4 + a2 a32 – a42

Bảo mật với mã đường cong Elliptic treân FPGA

Trang 15



Chương 2 : Mật mã khóa công khai

y

y

-2

2

1

-1

x

0

1

2

x

-1

- -1

-2


- -2

Hình 2.2: Đường cong elliptic trên trường R
Hình a: E1 : y2 = x3 - x

Hình b : E2 :y2 = x3 +1/4 x + 5/4

Phương trình Weierstrass của một đường cong elliptic có thể được biến thành dạng
đơn giản tuỳ thuộc vào đặc số của trường. Có 2 loại trường phổ biến là trường số
nguyên và trường nhị phân :
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
36

,

a13 + 4 a1a2 – 12a3

y-3a1x
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.

a. Nếu a1 ≠ 0:
(x, y)

a12x

+

a3
a1

, a 13y +

a12a4 + a32
a13

phương trình Weierstrass có dạng :
Bảo mật với mã đường cong Elliptic trên FPGA

Trang 16


×