KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO ĐỒ ÁN TỐT NGHIỆP
ĐỀ TÀI: NGHIÊN CỨU VÀ ĐÁNH GIÁ HIỆU QUẢ TÍCH HỢP
TRÊN CÔNG NGHỆ FPGA THUẬT TOÁN MẬT MÃ
CRYPT(D_128)
Giáo viên hướng dẫn:
NỘI DUNG BÁO CÁO
Phần 1: Nội dung thuật toán Crypt(D_128)
Phần 2:Tổng quan về công nghệ FPGA – VHDL
Phần 3: Hiệu quả tích hợp thuật toán trên công nghệ
FPGA
Thuật toán Crypt_D128 là một thuật
toán mật mã mới, được xây dựng trên mạng
hoán vị thay thế điều khiển được.
Mạng hoán vị thay thế điều khiển được
xây dựng trên cơ sỡ mạng hoán vị thay thay
thế
Các thuật toán mật mã xây dựng trên
mạng hoán vị thay thế như DES,
RIJNDAEL, BLOWFISH.
Trên cơ sỡ mạng hoán vị thay thế nguời
ta đã xây dựng mạng hoán vị thay thế điều
khiển được.
Ý tưởng chính việc xây dựng khối trong
các hộp thay thế điều khiển được (CP) phân
tầng là phần tử chuyển mạch cơ sở P
2/1
thực
hiện điều chỉnh hoán đổi vị trí của 2 bit đầu
vào, P
2/1
là các BF được biểu diễn bởi.
Dựa vào các F21 người ta đã xây dựng
F22 để phù hợp với việc cài đặt trên công
nghệ FPGA.
Với các phần tử CE F22 thì các đầu ra
tương ứng la:
Trên thực tế, phần tử F
2/2
có thể là 1 trong
các phần tử bất kỳ sau: (d,e,g,h); (d,e,g,i);
(d,e,h,g); (d,e,h,j); (d,e,i,g); (d,e,i,j);
(d,e,j,h); (d,e,j,i); (d,f,g,h); (d,f,g,i);
(d,f,h,g); (d,f,h,j); (d,f,i,g); (d,f,i,j);
(d,f,j,h); (d,f,j,i),
e
b
b
c
F′
2/2
F
2/2
d
e
g
h
v=0
z=0
v=1
z=0
v=0
z=1
v=1
z=1
•
Với mục đích tăng hiệu ứng thác lũ, thuật toán
sử dụng 2 dạng phần tử điều khiển được (F
2/2
,
F’
2/2
) trong lớp F
2/2
. Phần tử thứ nhất được lựa
chọn theo tiêu chí đảm bảo tính phi tuyến cực
đại, còn phần tử thứ 2 đảm bảo tính phân tán
của các bít lối ra khi xuất hiện sự thay đổi trên
các bít lối vào.
Để xây dựng thuật toán, trước tiên cần xây
dựng các khối toán tử F
64/384
và F
-1
64/384.
Các khối toán tử này được xây dựng trên cơ sở
các khối toán tử F
8/24
và F
-1
8/24.
Các khối toán tử F
64/384
và F
-1
64/384
có thể được thực
hiện như sự kết hợp F
64/192
°
I
1
°
F
-1
64/192
(nghĩa là thực
hiện liên tiếp các biến đổi F
64/192
, I
1
và F
-1
64/192
),
trong đó các khối toán tử F
64/192
và F
-1
64/192
được
điều khiển bởi các véctơ nhị phân độc lập.
F
8/24
F
8/24
F
8/24
V
1
, Z
1
V
2
, Z
2
V
3
, Z
3
F
-1
8/24
F
-1
8/24
F
-1
8/24
V
4
, Z
4
V
5
, Z
5
V
6
, Z
6
…
…
…
x
1
x
8
x
9
x
16
x
64
x
49
…
…
y
1
y
8
y
9
y
16
y
64
y
49
…
…
…
…
1
2
1
2
2
8
8
1
8
8
2
1
V
3
, Z
3
V
2
, Z
2
V
1
, Z
1
V
6
, Z
6
V
5
, Z
5
V
4
, Z
4
d)
e)
I
1
…
…
…
…
…
…
…
b)
F
2/2
F
2/2
F
2/2
F
2/2
F′
2/2
F′
2/2
F′
2/2
F′
2/2
F
2/2
F
2/2
F
2/2
F
2/2
F′
2/2
F′
2/2
F′
2/2
F′
2/2
c)
F
2/2
F
2/2
F
2/2
F
2/2
F
2/2
F
2/2
F
2/2
F
2/2
V
1
, Z
1
V
2
, Z
2
V
3
, Z
3
V
3
, Z
3
V
2
, Z
2
V
1
, Z
1
а)
x
1
F
2/2
F
2/2
F
2/2
x
2
x
3
x
4
x
n
x
n-1
y
1
y
2
y
3
y
4
y
n
y
n-1
v
1
v
2
v
n/2
z
1
z
2
z
n/2
(j)
(j)
(j)
(j)
(j)
(j)
V
j
= (v
1
(j)
, …, v
n/2
(j)
)
Z
j
= (z
1
(j)
, …, z
n/2
(j)
)
а)
B
A
Biến đổi cuối (FT)
Crypt
Crypt
Crypt
10
vòng
mã
hoá
64
b)
A
B
Q
j
E
E
192
192
192
F
64/384
S
32
F
32/32
32
X
′
V
′
V
X
−
1
F
64/192
Q
j
F
64/192
I
1
64
−1
I
0
I
0
I
2
I
3
S
S
F
32/32
−
1
I
3
I
2
S
X
′
Phần 2: Tổng quan về công nghệ FPGA
Công nghệ FPGA
•
Vi mạch (IC) là những linh kiện điện tử rất nhỏ bé nhưng phức
tạp, mỗi Vi mạch có những chức năng xác định và được chế
tạo bằng những công nghệ thích hợp.
•
FPGA (Field - Programmable Gate Array), là những vi mạch
mà chức năng của chúng không được ấn định bởi nhà sản xuất
mà được định nghĩa bởi người thiết kế cho từng ứng dụng cụ
thể.
•
FPGA là công nghệ tiên tiến nhất hiện nay của ngành công
nghệ chế tạo IC (Integrated Circuit) chuyên biệt.
14
Cấu trúc của FPGA
•
Các khối lôgic cấu hình (CLB - Configurable logic Block):
cung cấp các phần tử chức năng với cấu trúc sử dụng logic.
•
Các khối vào/ra (I/O Block) cung cấp giao diện giữa các gói
chân và các đường tín hiệu bên trong.
•
Các kết nối: nối gồm các đoạn kết nối (segment) có thể có
chiều dài khác nhau.
15
Cấu trúc của FPGA
16
I/O cell
Logic Block
Tài nguyên
kết nối
Phần 2: Ngôn ngữ lập trình VHDL
Giới thiệu
VHDL (VHSIC Hardware Description
Language) là một ngôn ngữ lập trình được sử dụng
để mô tả các hệ thống điện tử số.
Ưu điểm của VHDL: tính phổ biến, hỗ trợ nhiều công
nghệ và phương pháp thiết kế, có khả năng mô tả mở
rộng, khả năng trao đổi kết quả, khả năng sử dụng lại
các thiết kế và hỗ trợ thiết kế hệ thống ở mức lớn.
Các cấu trúc cơ sở trong VHDL
Trong VHDL, các hệ thống số được trừu
tượng hóa và được gọi là các entity (thực thể).
Để mô tả một thực thể, VHDL cung cấp 5 kiểu kiến
trúc cơ sở khác nhau, bao gồm : các thực thể
(entity), các kiến trúc (architecture), các gói
(pakage), các cấu hình (configuration) và các thư
viện (library)
Một thực thể sẽ bao gồm một phần khai báo
thực thể (entity declaration) và ít nhất một phần thân
kiến trúc (architecture body).
- Khai báo thực thể mô tả giao diện của thực thể với
môi trường bên ngoài. Nó bao gồm các khai báo
cổng, khai báo hằng
- Thân kiến trúc cho biết chức năng của thực thể. Nó
xác định quan hệ giữa các đầu vào và đầu ra, biểu
diễn theo kiểu hành vi, dòng dữ liệu hoặc cấu trúc
Phần khai báo cấu hình được sử dụng để tạo
cấu hình cho một thực thể. Nó chỉ ra sự ràng buộc
giữa một phần thân kiến trúc với rất nhiều thân kiến
trúc khác có thể kết hợp với thực thể, cũng như của
một hợp phần được sử dụng trong thân kiến trúc với
các thực thể khác. Một thực thể có thể có nhiều cấu
hình khác nhau
Các gói được sử dụng với mục đích chính là
tập hợp các phần tử có thể được chia sẻ bởi hai hay
nhiều đơn vị thiết kế (các phần tử dùng chung). Nó
có chứa các kiểu dữ liệu, hằng hay các chương
trình con có thể dùng chung giữa các thiết kế.
Gói cũng bao gồm hai phần là khai báo gói và
thân gói
Các thư viện là nơi lưu giữ các phần tử của
thiết kế. Các phần tử đã được lưu giữ có thể được sử
dụng cho bước mô phỏng tiếp theo giống như việc
sử dụng một phần tử đã được khai báo trong một
thiết kế khác.
Một thư viện thiết kế có thể chứa các đóng gói,
các thực thể, các kiến trúc và các cấu hình.
Phần 3: Hiệu quả tích hợp thuật toán trên công nghệ
FPGA