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 t
Trang 1KHOA 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:
Trang 2NỘ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
Trang 3Thuậ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
Trang 5Trê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ở P2/1 thực hiện điều chỉnh hoán đổi vị trí của 2 bit đầu vào, P2/1 là các BF được biểu diễn bởi
Trang 6Dự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.
Trang 7Vớ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ử F2/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),
Trang 8e b b cF 2/2
F 2/2
v=0 z=0
v=1 z=0
v=0
z=1
v=1 z=1
Trang 9• Với mục đích tăng hiệu ứng thác lũ, thuật toán
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
Trang 10 Để xây dựng thuật toán, trước tiên cần xây
phân độc lập
Trang 11V j = (v 1(j), …, v n/2 (j))
Z j = (z 1(j), …, z n/2 (j))
Trang 13Phần 2: Tổng quan về công nghệ FPGA
Trang 14Công nghệ FPGA
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
Trang 15Cấ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
Trang 16Cấu trúc của FPGA
16
I/O cell
Logic Block
Tài nguyên kết nối
Trang 17Phần 2: Ngôn ngữ lập trình VHDL
Trang 18Giớ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
Trang 19Cá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)
Trang 20Mộ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
Trang 21Phầ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
Trang 22Cá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
Trang 23Cá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
Trang 24Phần 3: Hiệu quả tích hợp thuật toán trên công nghệ
FPGA
Trang 28Kết quả sử dụng tài nguyên với con:
xc4vsx35-12ff668
Trang 29Kết quả sử dụng tài nguyên với con:
xc4vsx55-12ff1148