Luận án Nghiên cứu giải pháp nâng cao hiệu quả bảo mật thông tin trên mạng truyền số liệu đa dịch vụ

Mạng truyền số liệu được sử dụng rộng rãi trong hầu hết các l nh vực

đời sống, kinh tế - xã hội, an ninh quốc phòng để đáp ứng nhu cầu trao đổi

thông tin. Việc xây dựng những mạng truyền thông tốc độ cao với khả năng

bảo đảm chất lượng, dịch vụ là tiền đề để xây dựng và phát triển một xã hội

thông tin hiện đại. Tùy th o tính chất nhiệm vụ và yêu cầu của từng ngành mà

mạng truyền số liệu được xây dựng và tổ chức thành các mạng riêng, độc lập.

Tuy nhiên, các mạng vi n thông hiện nay có xu hướng chung là hội tụ để có

thể truyền được nhiều loại hình thông tin trên một nền mạng duy nhất trong

đó IP/MPL [1], [2], [4], [12] là hai công nghệ nền tảng để xây dựng những

mạng hội tụ như vậy.

Bên cạnh việc phát triển của mạng truyền số liệu thì vấn đề đảm bảo an

ninh, an toàn, bảo mật cho một mạng thông tin là một trong những yếu tố

hàng đầu quyết định chất lượng cũng như tính khả dụng của mạng, bởi vì trên

đó luôn tiềm ẩn rất nhiều nguy cơ gây mất an toàn thông tin, gây hậu quả

nghiêm trọng về kinh tế, chính trị, quân sự, an ninh quốc gia. Đặc biệt đối với

mạng thông tin của các cơ quan Đảng, Nhà nước, Quân đội yêu cầu về an

toàn và bảo mật thông tin, dữ liệu luôn là đòi hỏi cần thiết và cấp bách

pdf 141 trang dienloan 3080
Bạn đang xem 20 trang mẫu của tài liệu "Luận án Nghiên cứu giải pháp nâng cao hiệu quả bảo mật thông tin trên mạng truyền số liệu đa dịch vụ", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Luận án Nghiên cứu giải pháp nâng cao hiệu quả bảo mật thông tin trên mạng truyền số liệu đa dịch vụ

Luận án Nghiên cứu giải pháp nâng cao hiệu quả bảo mật thông tin trên mạng truyền số liệu đa dịch vụ
BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ QUỐC PHÒNG 
VIỆN KHOA HỌC VÀ CÔNG NGHỆ QUÂN SỰ 
 ------------------------------ 
HOÀNG VĂN QUÂN 
NGHIÊN CỨU GIẢI PHÁP NÂNG CAO HIỆU QUẢ 
 BẢO MẬT THÔNG TIN TRÊN MẠNG TRUYỀN SỐ LIỆU 
 ĐA DỊCH VỤ 
LUẬN ÁN TIẾN SĨ KỸ THUẬT 
HÀ NỘI - 2016 
 BỘ GIÁO DỤC VÀ ĐÀO TẠO BỘ QUỐC PHÒNG 
VIỆN KHOA HỌC VÀ CÔNG NGHỆ QUÂN SỰ 
------------------------------ 
HOÀNG VĂN QUÂN 
NGHIÊN CỨU GIẢI PHÁP NÂNG CAO HIỆU QUẢ 
BẢO MẬT THÔNG TIN TRÊN MẠNG TRUYỀN SỐ LIỆU 
 ĐA DỊCH VỤ 
 Chuyên ngành: Kỹ thuật điện tử 
 Mã số: 62 52 02 03 
LUẬN ÁN TIẾN SĨ KỸ THUẬT 
 NGƯỜI HƯỚNG DẪN KHOA HỌC: 
 1. TS LỀU ĐỨC TÂN 
 2. TS HOÀNG NGỌC MINH 
HÀ NỘI - 2016 
i 
LỜI CAM ĐOAN 
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi. Các nội 
dung, số liệu và kết quả trình bày trong luận án là hoàn toàn trung thực và 
chưa có tác giả nào công bố trong bất cứ một công trình nào khác, các dữ 
liệu tham khảo được trích dẫn đầy đủ. 
 Người cam đoan 
 Hoàng Văn Quân 
ii 
LỜI CÁM ƠN 
 Luận án được thực hiện tại Viện Khoa học và Công nghệ Quân sự - Bộ 
Quốc phòng. 
Tôi xin bày tỏ lòng biết ơn sâu sắc tới TS Lều Đức Tân và TS Hoàng 
Ngọc Minh, các thầy đã tận tình giúp đỡ, trang bị phương pháp nghiên cứu, 
kinh nghiệm, kiến thức khoa học và kiểm tra, đánh giá các kết quả trong suốt 
quá trình nghiên cứu luận án. 
Xin trân trọng cám ơn Viện Khoa học và Công nghệ Quân sự, Phòng 
Đào tạo, Viện Điện tử là cơ sở đào tạo và đơn vị quản lý, các đồng chí lãnh 
đạo, chỉ huy Cục Cơ yếu - Bộ Tổng Tham mưu – nơi tôi công tác đã tạo mọi 
điều kiện thuận lợi, hỗ trợ và giúp đỡ tôi trong suốt quá trình học tập, nghiên 
cứu thực hiện luận án. Xin chân thành cám ơn các thầy, cô của Viện Khoa học 
và Công nghệ Quân sự, Viện Điện tử, các nhà khoa học, các đồng nghiệp 
thuộc Trung tâm Nghiên cứu Kỹ thuật Mật mã – Cục Cơ yếu, Viện Khoa học 
Công nghệ Mật mã/Ban Cơ yếu Chính phủ đã giúp đỡ, hỗ trợ tôi trong suốt 
thời gian qua. 
 Cuối cùng, tôi xin bày tỏ lòng thành kính và luôn ghi nhớ công ơn của 
cha mẹ, gia đình, những người thân và xin dành lời cảm ơn đặc biệt tới vợ 
con, những người đã luôn đồng hành, động viên và là chỗ dựa về mọi mặt 
giúp tôi vượt qua khó khăn để có được những kết quả nghiên cứu ngày hôm 
nay. 
Tác giả 
iii 
MỤC LỤC 
 Trang 
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT..................................... vi 
DANH MỤC CÁC BẢNG ................................................................................. ix 
DANH MỤC CÁC HÌNH VẼ............................................................................. x 
MỞ ĐẦU .. 1 
Chương T NG QUAN V AN TOÀN VÀ BẢO M T T ONG MẠNG 
T U N Ố LIỆU ĐA D CH VỤ .................................................... 8 
 . . Đặc điểm mạng truyền số liệu đa dịch vụ .................................................. 8 
 .2. An toàn và bảo mật trong mạng truyền số liệu đa dịch vụ ........................ 9 
 .2. . Một số khái niệm chung ................................................................... 9 
 .2.2. Các cơ chế an ninh dựa trên mật mã .............................................. 11 
 .2. . Vị trí đặt dịch vụ an ninh th o mô hình mạng phân tầng ............... 14 
 .2. . Ý ngh a của việc sử dụng mật mã trong bảo mật tại tầng IP ........ 15 
 .2.5. Bảo mật trong mạng truyền số liệu đa dịch vụ .............................. 18 
 .2. . Giao thức bảo mật cho mạng truyền số liệu đa dịch vụ ................. 22 
 . . Giao thức bảo mật IP c .......................................................................... 22 
 . . . Kiến trúc của IP c ........................................................................ 22 
 . .2. Modul thiết lập A ....................................................................... 24 
 . . . Giao thức E P ................................................................................ 24 
 . . . Giao thức AH ................................................................................. 25 
 . .5. Giao thức trao đổi khóa IKEv2 trong IP c ................................. 26 
 . . Hạn chế của giải pháp bảo mật hiện tại và đề xuất hướng giải quyết. ..... 27 
1.4.1. Một số hạn chế của giải pháp bảo mật ........................................... 27 
1.4.2. Đề xuất các nội dung nghiên cứu của luận án ................................ 28 
 .5. Giao thức trao đổi khóa Diffi -H llman kết hợp ECC ............................ 28 
iv 
 .5. . Đặt vấn đề ....................................................................................... 28 
 .5.2. Giao thức trao đổi khóa ECDH ...................................................... 31 
 . . Công nghệ để cứng hóa mật mã ............................................................... 34 
1.7. Kết luận Chương ................................................................................... 35 
Chương 2 N NG CAO HIỆU QUẢ TH C HIỆN PH P NH N ĐI M C A 
ECC CHO GIAO TH C T AO Đ I KH A ................................. 36 
2.1. Phép nhân điểm trên đường cong lliptic ................................................ 36 
2. . . Một số thuật toán nhân điểm lliptic trên trường GF(2n) ............... 36 
2. .2. Thuật toán nhân điểm Elliptic dựa trên triển khai một số nguyên 
th o NAF tính toán trực tiếp ........................................................... 40 
2.2. Xây dựng công thức tính số xung nhịp máy trung bình để cộng hai số 
nguyên khi thực hiện trên phần cứng .............................................. 43 
2.2. . Cơ sở đề xuất .................................................................................. 43 
2.2.2. Mạch cộng hai số nguyên và phân phối xác suất của đại 
lượng F(k) ....................................................................................... 43 
2.2. . Kết quả tính toán số AAF(k) và AAF(k,M) .................................. 51 
2.2. . ng dụng của kết quả..................................................................... 55 
2. . Thực hiện thuật toán nhân điểm trên phần cứng FPGA .......................... 55 
2. . . Phương pháp thiết kế chung ........................................................... 55 
2. .2. Lựa chọn đường cong lliptic ........................................................ 56 
2. . . Mô hình cứng hóa thuật toán nhân điểm ........................................ 56 
2. . . Kết quả thực hiện ........................................................................... 71 
2. . Kết luận Chương 2 ................................................................................... 74 
Chương N NG CAO HIỆU QUẢ TH C HIỆN THU T TOÁN M H A 
DỮ LIỆU T ONG BẢO M T MẠNG T U N Ố LIỆU ......... 76 
 . . Cơ sở lý thuyết ......................................................................................... 76 
 . . . Các mã khối có cấu trúc PN ......................................................... 76 
v 
 . .2. Các tiêu chí đánh giá và xây dựng tầng tuyến tính hiệu quả, an toàn 
cho mã khối có cấu trúc PN .......................................................... 78 
 .2. Chuẩn mã hóa dữ liệu AE ...................................................................... 81 
3.3. Đánh giá một số ma trận MDS trong các mã pháp dạng AE ............. 85 
 . . . Một số định ngh a ........................................................................... 85 
 . .2. Đánh giá một số ma trận MD sử dụng trong mã pháp dạng AE 87 
 . . Đề xuất ma trận MD mới để cải tiến tầng tuyến tính cho các mã pháp 
dạng AE ........................................................................................ 91 
3.4.1. Đề xuất ma trận MD mới và đánh giá hiệu quả hoạt động .......... 92 
3.4.2. Phân tích cài đặt các ma trận th o quan điểm phần mềm .............. 96 
3.4.3. Điểm bất động của tầng tuyến tính th o ma trận đề xuất ............... 99 
3.4.4. Kết quả cài đặt thực nghiệm trên FPGA ...................................... 100 
 . .5. Kết quả cài đặt AE chuẩn và AE với ma trận MD đề xuất ... 102 
 .5. Kết luận Chương ................................................................................. 103 
KẾT LU N ..................................................................................................... 105 
DANH MỤC CÁC CÔNG T ÌNH KHOA HỌC Đ CÔNG BỐ ................ 107 
TÀI LIỆU THAM KHẢO ............................................................................... 108 
vi 
E Ký hiệu đường cong elliptic 
O Điểm vô cực của đường cong lliptic 
G Một điểm trên E sinh ra một nhóm cyclic cấp N 
KA Khóa bí mật A 
KB Khóa bí mật B 
p ,GF(p) Ký hiệu cho trường hữu hạn chứa p phần tử với p là số nguyên tố 
#{(X,Y) Lực lượng của tập X, 
#(a) Lực lượng của a 
#(b) Lực lượng của b 
x1, y1 Tọa độ điểm P trên đường cong E 
x2, y2 Tọa độ điểm Q trên đường cong E 
x3, y3 Tọa độ điểm trên đường cong E 
Rank(A) Hạng của ma trận A 
ATM1 An toàn mạng 
ATM2 An toàn mạng 2 
AES Chuẩn mã hóa dữ liệu mở rộng (Advanc d Encryption tandard) 
AH Giao thức tiêu đề xác thực (Authentication Header) 
ASIC Mạch tích hợp cho các ứng dụng đặc biệt (Application Specific 
Integrated Circuit) 
ATM Phương thức truyền tải không đồng bộ (Asynchronous Transfer 
Mode) 
DLP Bài toán logarith rời rạc (Discrete Logarithm Problem) 
DoS Tấn công từ chối dịch vụ (Denial of Service ) 
DDoS Tấn công từ chối dịch vụ phân tán (Distributed Denial of 
Service) 
DTLS Bảo mật gói dữ liệu tầng giao vận (Datagram Transport Layer 
Security) 
DH Diffie-Hellman (Elliptic Curve) 
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT 
vii 
EC Đường cong lliptic 
ECADD Phép cộng hai điểm khác nhau (Elliptic Curve ADD) 
ECC Hệ mật Elliptic (Elliptic Curve Cryptosystem) 
ECDBL Phép nhân đôi (phép cộng hai điểm giống nhau - EC Double) 
ECDH Bài toán Diffie-Hellman trên Elliptic (Elliptic Curve Diffie-
Hellman) 
ECDLP Bài toán logarith rời rạc trên đường cong lliptic (Elliptic Curve 
Discrete Logarithm Problem) 
ECDSA Thuật toán chữ ký số Elliptic (Elliptic Curve Digital Signature 
Algorithm) 
ESP Encapsulating Security Payload 
FPGA Mảng cổng lập trình dạng trường (Field Programmable Gate 
Array) 
GCD Tìm ước số chung lớn nhất (Gr at st Common Divisor) 
IP Giao thức liên mạng (Internet Protocol) 
IDPS Hệ thống phát hiện và ngăn chặn truy cập (Intrusion Detection 
Pevention System) 
IPSec Giao thức bảo mật (IP Security Protocol) 
IKE Trao đổi khóa (Internet Key Exchange) 
ISO Tổ chức Tiêu chuẩn quốc tế (International Organization for 
Standardization) 
MPLS Chuyển mạch nhãn đa giao thức (Multi Protocol Label 
Switching) 
MDS Phân tách có khoảng cách cực đại (Maximum Distance 
Separable) 
NAF Dạng không liền kề (Non Adjacent Form) 
LAN Mạng cục bộ (Local Area Network) 
LC Tế bào logic (Logic Cell) 
LE Phần tử logic (Logic Element) 
MPPE Mã hóa điểm tới điểm (Microsoft Point to Point Encryption) 
viii 
OSI Mô hình tương tác giữa các hệ thống mở (Open Systems 
Interconnection ) 
SPN Mạng thay thế - hoán vị (Substitution Permutation Network) 
RSA Thuật toán mã khóa công khai của iv st, hamir và Adl man 
VPN Mạng riêng ảo (Virtual Private Network) 
VHDL Ngôn ngữ mô tả phần cứng (Verilog Hardware Description 
Language) 
ix 
Bảng . . o sánh kích thước khóa A và ECC với cùng độ an toàn ......... 30 
Bảng 2. . Kết quả thống kê 2 giá trị của k .................................................. 52 
Bảng 2.2. o sánh kết quả cứng hóa phép nhân điểm trên FPGA .................. 72 
Bảng . . Độ dài khóa của AE ...................................................................... 82 
Bảng .2. Danh sách đa thức nguyên thủy bậc 8 trên 2 ........................... 94 
Bảng . . o sánh cài đặt các ma trận MD x bằng phần mềm ................. 98 
Bảng . . ố điểm bất động của một số ma trận đang xét ............................ 100 
Bảng .5. Tài nguyên sử dụng đối với ma trận đề xuất Cir( , 9, , ) ..... 101 
Bảng .6. Kết quả cài đặt trên phần cứng FPGA của Xilinx ........................ 101 
Bảng .7. o sánh kết quả cài đặt trên FPGA ............................................... 103 
Bảng A. Các thông số kỹ thuật của kít Zynq-7000 ........................................ 4 
DANH MỤC CÁC BẢNG 
x 
Hình . . Cấu trúc mạng truyền số liệu đa dịch vụ ........................................... 9 
Hình 1.2. So sánh OSI và TCP/IP ................................................................... 15 
Hình . . Mô hình bảo mật tại tầng IP ............................................................ 16 
Hình . . Mô hình bảo mật thông tin cho mạng đa dịch vụ ........................... 20 
Hình 1.5. IPSec trong mô hình TCP/IP ........................................................... 23 
Hình . . Mối quan hệ giữa IKE và IP c ...................................................... 24 
Hình .7. Gói tin E P của IP c ..................................................................... 24 
Hình .8. Thuật toán mã khối làm việc ở chế độ CBC ................................... 25 
Hình 1.9. Gói tin AH ....................................................................................... 26 
Hình 1.10. o sánh mức độ bảo mật giữa ECC với A/D A ...................... 30 
Hình . . Quá trình trao đổi khóa th o giao thức ECDH ............................. 32 
Hình 2. . Đồ thị các hàm AAF(k, 07) (k), AAF(k,107)+ (k), log2(k) và 
log2(k)+ trong khoảng [ , 09 ]. .................................................... 54 
Hình 2.2. Mô hình phân lớp thiết kế trên kit phát triển ZC70 của Xilinx .... 55 
Hình 2. . ơ đồ thực hiện cứng hóa phép nhân điểm lliptic. ........................ 57 
Hình 2.4. Giao diện modul cứng hóa phép nhân điểm trên FPGA. ............. 57 
Hình 2.5. ơ đồ thực hiện cứng hóa phép cộng điểm lliptic. ........................ 59 
Hình 2. . Giao diện modul thực hiện phép cộng điểm lliptic trên FPGA. .. 59 
Hình 2.7. ơ đồ thực hiện cứng hóa phép nhân đôi điểm lliptic. .................. 60 
Hình 2.8. Giao diện modul thực hiện phép nhân đôi điểm lliptic trên 
FPGA. ............................................................................................... 61 
Hình 2.9. ơ đồ cứng hóa phép nhân th o thuật toán nhân đan x n. .............. 64 
Hình 2. 0. Giao diện modul thực hiện phép nhân điểm trên FPGA. ............ 64 
Hình 2.11. ơ đồ thực hiện cứng hóa phép chia/nghịch đảo GF(2m). ............ 68 
Hình 2.12. Giao diện modul thực hiện phép chia/nghịch đảo trên FPGA. ... 68 
Hình 2.13. Ch n bit 0 thực hiện phép bình phương thông thường. ................ 69 
DANH MỤC CÁC HÌNH VẼ 
xi 
Hình 2. . ơ đồ cứng hóa phép bình phương trên trường GF(2m). .............. 71 
Hình 2. 5. Giao diện modul thực hiện phép bình phương GF(2m) trên 
FPGA. ............................................................................................. 71 
Hình 2. . Kết quả mô phỏng phép nhân điểm th o thuật toán nhị phân ...... 72 
Hình 2. 7. Kết quả mô phỏng nhân điểm th o thuật toán NAF thông 
thường ........................................................................................... ... g ở 2 chế độ: 
chế độ thông thường và chế độ số học động. 
 Với cấu trúc đặc trưng như vậy, chip Zynq của XILINX có khả năng 
thực hiện các bộ logic cộng, trừ với tốc độ rất cao, phù hợp với mục đích thiết 
kế và cứng hóa thuật toán mật mã. 
4 
 Bảng .1 ác thông số kỹ thuật của kít Zynq-7000 
 Bộ xử lý ARM cortex A9: Bộ xử lý A M Cort x A9 là bộ xử lý nhúng 
do hãng Xilinx chế tạo dựa trên công nghệ FPGA giống như một bộ vi điều 
khiển hoặc một máy tính trên chíp bao gồm CPU, các thiết bị ngoại vi và bộ 
nhớ trên một chíp đơn. Bộ xử lý A M Cort x A9 cung cấp: 
- Thiết lập chỉ thị 2 bít, đường dẫn dữ liệu và không gian địa chỉ. 
- 2 thanh ghi mục đích chung. 
- 2 nguồn ngắt ngoài. 
- Bộ nhân đơn 2x 2 và chia kết quả 2 bit 
- Truy cập tới những ngoại vi khác nhau trên chíp, giao diện với bộ nhớ và 
ngoại vi ngoài chíp. 
- Môi trường phát triển phần mềm dựa trên công cụ GNU C/C++. 
5 
multiply
data out register
instruction
decode
&
control
incrementer
register
bank
address register
barrel
shifter
A[31:0]
D[31:0]
data in register
ALU
control
P
C
PC
A
L
U
b
u
s
A
b
u
s
B
b
u
s
register
 Hình A.3 ô tả các khối chức năng của bộ xử lý R 
6 
Design Entry
Synthesis
Implementation
Mapping
Place & Route
Generate
Prpgram. File
System specification
RTL(VHDL, Verilog, Schematic)
Synthesis constraints
Implementation 
constraints 
(pads and Timming)
Netlist (edit, propietary)
Netlist (propietary)
Bitstream
Back annotation
Program Tool
Behavioural
Simulation
Design Verification
Functional
Simulation
Post Implementation
Simulation
Timmimg
Simulation
In-circuit
Testing
 Hình A.4 Mô tả các bước thiết kế trên FPG 
A.2 Mã nguồn VHDL thực hiện phép nh n i m 
------------------------------------------------------------------
------------------------------------------------------------------ 
-- Company: CCYBTTM 
-- Engineer: HOANG VAN QUAN 
-- 
-- Create Date: 14:13:19 03/06/2015 
-- Design Name: 
-- Module Name: nhan_diem - Structureal 
-- Project Name: 
-- Target Devices: 
-- Tool versions: 
-- Description: 
-- 
-- Dependencies: 
-- 
-- Revision: 
-- Revision 0.01 - File Created 
-- Additional Comments: 
-- 
------------------------------------------------------------ 
7 
------------------------------------------------------------ 
library IEEE; 
use IEEE.STD_LOGIC_1164.ALL; 
use ieee.std_logic_arith.all; 
use ieee.std_logic_unsigned.all; 
use work.ecc_pkg.all; 
--Library UNISIM; 
--use UNISIM.vcomponents.all; 
entity nhan_diem is 
port ( 
 xP, yP, k: in STD_LOGIC_VECTOR (282 downto 0); 
 clk, reset, start: in std_logic; 
 xQ, yQ: out STD_LOGIC_VECTOR (282 downto 0); 
 done: out std_logic); 
end nhan_diem; 
architecture Structure of nhan_diem is 
 signal p_Yp, p_Yp0 : std_logic_vector (282 downto 0); 
 signal a, next_a, a_add_carry, a_add_carry_div2: 
std_logic_vector(282 downto 0); 
 signal xP0, yP0, next_xQ, next_yQ, 
New_XP0,New_YP0,New_XQ,New_YQ,yp0_tp: std_logic_vector(282 downto 
0); 
 signal P_en, Q_en, ab_en, load, sel_1, start_addition, 
addition_done, start_double, double_done, Q_infinity, aEqual1, 
ce_carry: std_logic; 
 signal sel_2: std_logic_vector(1 downto 0); 
 signal carry : integer range -1 to 1; 
 subtype states is natural range 0 to 18; 
 signal TT: states; 
 signal xQ_tmp, yQ_tmp : std_logic_vector(282 downto 0); 
begin 
 with sel_1 select yp0_tp <= yP0 when '0', p_Yp0 when others; 
 with sel_2 select next_yQ <= New_YQ when "00", yP0 when "01", 
p_Yp0 when others; 
 with sel_2 select next_xQ <= New_XQ when "00", xP0 when 
others; 
 cong_diem: add_point port map( x1 => xP0, y1 => yp0_tp, x2 => 
xQ_tmp, y2 => yQ_tmp, 
 clk => clk, reset => reset, start => start_addition, x3 => 
New_XQ, y3 => New_YQ, done => addition_done); 
 nhan_doi: point_double port map( x1 => xP0, y1 => yP0, clk => 
clk, reset => reset, 
 start => start_double, x3 => New_XP0, y3 => New_YP0, done => 
double_done); 
 register_P: process(clk) 
8 
 begin 
 if clk' event and clk = '1' then 
 if reset = '1' then 
 xP0 '0'); 
 yP0 '0'); 
 elsif load = '1' then xP0 <= xP; yP0 <= yP; 
 elsif P_en = '1' then xP0 <= New_XP0; yP0 <= New_YP0; 
 end if; 
 end if; 
 end process; 
 register_Q: process(clk) 
 begin 
 if clk' event and clk = '1' then 
 if reset = '1' then 
 xQ_tmp '0'); 
 yQ_tmp '0'); 
 elsif load = '1' then Q_infinity <= '1'; 
 elsif Q_en = '1' then xQ_tmp <= next_xQ; yQ_tmp <= next_yQ; 
Q_infinity <= '0'; 
 end if; 
 end if; 
 end process; 
 a_add_carry <= a + carry; 
 divide_by_2: for i in 0 to 283 generate a_add_carry_div2(i) <= 
a_add_carry(i+1); end generate; 
 a_add_carry_div2(283) <= a_add_carry(283); 
 next_a <= a_add_carry_div2; 
 register_ab: process(clk) 
 begin 
 if clk' event and clk = '1' then 
 if load = '1' then a <= ('0'&k); 
 elsif ab_en = '1' then a <= next_a; end if; 
 end if; 
 end process; 
 aEqual1 <= '1' when a = 1 else '0'; 
 control_unit: process(clk, reset, TT, addition_done, aEqual1, 
Q_infinity, carry) 
 begin 
 case TT is 
 when 0 => sel_1 <= '0'; sel_2 <= "00"; load <= '0'; P_en <= 
'0'; Q_en <= '0'; ab_en <= '0'; start_addition <= '0'; done <= 
'0'; start_double <= '0'; 
 when 1 => sel_1 <= '0'; sel_2 <= "00"; load <= '1'; P_en <= 
'0'; Q_en <= '0'; ab_en <= '0'; start_addition <= '0'; done <= 
'0'; start_double <= '0'; 
9 
 when 2 => sel_1 <= '0'; sel_2 <= "00"; load <= '0'; P_en <= 
'0'; Q_en <= '0'; ab_en <= '0'; start_addition <= '0'; done <= 
'0'; start_double <= '0'; 
 when 3 => sel_1 <= '0'; sel_2 <= "00"; load <= '0'; P_en <= 
'0'; Q_en <= '0'; ab_en <= '1'; start_addition <= '0'; done <= 
'0'; start_double <= '1'; 
 when 4 => sel_1 <= '0'; sel_2 <= "00"; load <= '0'; P_en <= 
'0'; Q_en <= '0'; ab_en <= '0'; start_addition <= '0'; done <= 
'0'; start_double <= '1'; 
 when 5 => sel_1 <= '0'; sel_2 <= "00"; load <= '0'; P_en <= 
'1'; Q_en <= '0'; ab_en <= '0'; start_addition <= '0'; done <= 
'0'; start_double <= '1'; 
 when 6 => sel_1 <= '0'; sel_2 <= "01"; load <= '0'; P_en <= 
'0'; Q_en <= '1'; ab_en <= '0'; start_addition <= '0'; done <= 
'0'; start_double <= '0'; 
 when 7 => sel_1 <= '0'; sel_2 <= "00"; load <= '0'; P_en <= 
'0'; Q_en <= '1'; ab_en <= '0'; start_addition <= '1'; done <= 
'0'; start_double <= '0'; 
 when 8 => sel_1 <= '0'; sel_2 <= "00"; load <= '0'; P_en <= 
'0'; Q_en <= '0'; ab_en <= '0'; start_addition <= '1'; done <= 
'0'; start_double <= '0'; 
 when 9 => sel_1 <= '0'; sel_2 <= "00"; load <= '0'; P_en <= 
'0'; Q_en <= '0'; ab_en <= '0'; start_addition <= '1'; done <= 
'0'; start_double <= '0'; 
 when 10 => sel_1 <= '0'; sel_2 <= "11"; load <= '0'; P_en <= 
'1'; Q_en <= '0'; ab_en <= '1'; start_addition <= '0'; done <= 
'0'; start_double <= '0'; 
 when 11 => sel_1 <= '1'; sel_2 <= "00"; load <= '1'; P_en <= 
'0'; Q_en <= '0'; ab_en <= '0'; start_addition <= '1'; done <= 
'0'; start_double <= '1'; 
 when 12 => sel_1 <= '1'; sel_2 <= "00"; load <= '0'; P_en <= 
'0'; Q_en <= '0'; ab_en <= '0'; start_addition <= '1'; done <= 
'0'; start_double <= '0'; 
 when 13 => sel_1 <= '1'; sel_2 <= "00"; load <= '0'; P_en <= 
'1'; Q_en <= '1'; ab_en <= '0'; start_addition <= '1'; done <= 
'0'; start_double <= '0'; 
 when 14 => sel_1 <= '0'; sel_2 <= "00"; load <= '0'; P_en <= 
'0'; Q_en <= '0'; ab_en <= '0'; start_addition <= '1'; done <= 
'0'; start_double <= '0'; 
 when 15 => sel_1 <= '0'; sel_2 <= "00"; load <= '0'; P_en <= 
'0'; Q_en <= '0'; ab_en <= '0'; start_addition <= '1'; done <= 
'0'; start_double <= '0'; 
 when 16 => sel_1 <= '0'; sel_2 <= "00"; load <= '0'; P_en <= 
'0'; Q_en <= '1'; ab_en <= '0'; start_addition <= '1'; done <= 
'0'; start_double <= '0'; 
 when 17 => sel_1 <= '0'; sel_2 <= "01"; load <= '0'; P_en <= 
'0'; Q_en <= '1'; ab_en <= '0'; start_addition <= '0'; done <= 
'0'; start_double <= '0'; 
 when 18 => sel_1 <= '0'; sel_2 <= "00"; load <= '0'; P_en <= 
'0'; Q_en <= '0'; ab_en <= '0'; start_addition <= '0'; done <= 
'1'; start_double <= '0'; 
10 
 end case; 
 if reset = '1' then TT <= 0; 
 elsif clk'event and clk = '1' then 
 case TT is 
 when 0 => if start = '1' then TT <= 1; end if; 
 when 1 => TT <= 2; 
 when 2 => if ((aEqual1 = '1') and (Q_infinity = '0')) then 
TT <= 14; 
 elsif ((aEqual1 = '1') and (Q_infinity = '1')) 
then TT <= 17; 
 elsif (a(0) = '0') then TT <= 3; 
 elsif ((a(1) = '0') and (Q_infinity = '0')) then 
TT <= 6; 
 elsif ((a(1) = '1') and (Q_infinity = '0')) then 
TT <= 7; 
 elsif ((a(1) = '1') and (Q_infinity = '1')) then 
TT <= 10; 
 else TT <= 11; 
 end if; 
 when 3 => TT <= 4; 
 when 4 => if (double_done = '1') then TT <= 5; end if; 
 when 5 => TT <= 2; 
 when 6 => TT <= 3; 
 when 7 => TT <= 8; 
 when 8 => if (addition_done = '1') then TT <= 9; end if; 
 when 9 => TT <= 3; 
 when 10 => TT <= 3; 
 when 11 => TT <= 12; 
 when 12 => if (addition_done = '1') then TT <= 13; end if; 
 when 13 => TT <= 3 ; 
 when 14 => TT <= 15; 
 when 15 => if (addition_done = '1') then TT <= 16; end if; 
 when 16 => TT <= 18; 
 when 17 => TT <= 18; 
 when 18 => if (start = '0') then TT <= 0; end if; 
 end case; 
 end if; 
 end process; 
 xQ <= xQ_tmp; 
 yQ <= yQ_tmp; 
end Structure; 
11 
A.3. Chương tr nh iều khi n core mật mã nh n i m elliptic 
Như đã trình bày trong luận án về thực hiện cứng hóa mật mã elliptic. 
Chúng ta thấy rằng lõi mật mã elliptic được thiết kế cứng hóa với các cổng dữ 
liệu vào/ra, cổng điều khiển, cổng trạng thái. Cổng dữ liệu vào gồm: giá trị 
ngẫu nhiên k- 28 bit được đọc vào từ bộ sinh số ngẫu nhiên từ nguồn nhi u 
vật lý trên board, tham số bí mật cho mật mã lliptic (xP, yP) 283 bit. Cổng 
tín hiệu điều khiển start-1 bit, reset- bit, xung nhịp đồng bộ clk, cổng tín 
hiệu trạng thái done- bit. Cổng dữ liệu ra: tham số mật mã lliptic sau khi đã 
tính toán xong (xQ, yQ) 283 bit. 
Do bộ xử lý ARM 32 bit để thực hiện điều khiển, đọc/ghi dữ liệu cho lõi 
mật mã lliptic ta cần thực hiện các nội dung sau: 
- Thiết kế bus hệ thống kết nối lõi mật mã lliptic với A M cort x A9. 
 - Thiết kế chương trình điều khiển quá trình đọc/ghi dữ liệu vào/ra trên 
lõi mật mã lliptic. 
 - Thiết kế chương trình thực hiện tính toán trao đổi khóa ECDH. 
K(282:0)
Xp(282:0)
Yp(282:0)
reset
Xq(282:0)
Yp(282:0)
clk
start
done
Nhân đi m
 ình .5 Lõi cứng hóa mật m elli tic thực hiện trên FPGA 
A.3.1 Thiết kế us hệ thống kết nối lõi mật mã và ARM cort x A9 
Bus hệ thống dùng để kết nối lõi mật mã lliptic và A M cort x A9 bao 
gồm các khối sau: bus dữ liệu, khối giải mã địa chỉ, các thanh ghi dữ liệu 
vào/ra. 
 Hệ thống bus này thiết kế để đảm bảo tương thích quá trình đọc/ghi dữ 
12 
liệu giữa lõi mật mã Elliptic (với các c ng dữ liệu vào/ra 283 bit) và A M 
cortex A9 2bit. Quá trình đọc/ghi một khối dữ liệu 28 bit vào lõi ECC như 
sau: 
 Bước 1: A M ghi tín hiệu địa chỉ chọn thanh ghi (00... 08) tại port 0 . 
Bước 2: Bộ giải mã tín hiệu địa chỉ nhận địa chỉ --> giải mã --> chọn 
thanh ghi được ghi dữ liệu. 
Bước 3: A M ghi dữ liệu ra port 02 chuyển ra bus dữ liệu, dữ liệu này 
được chốt vào thanh ghi đã chọn (địa chỉ). 
Bước 4: Lặp lại quá trình từ bước đến đối với 9 khối dữ liệu 2 bit 
tiếp th o. 
Bước 5: au khi xuất đủ 288 bit ra 09 thanh ghi 2 bit, thực hiện chốt 
28 bit dữ liệu cần nạp vào lõi mật mã Elliptic (thanh ghi 08 d ng 27 bit c n 
l i b 5 bit). 
Bước 6: Lúc này đã nạp đủ dữ liệu cho một cổng 28 bit trên lõi mật 
mã Elliptic. Lặp lại quá trình từ bước đến bước 5 cho các cổng khác của lõi 
mật mã. 
A.3.2. Chương tr nh ph n mềm iều khi n quá tr nh ọc/ghi dữ liệu trên 
lõi mật mã lliptic. 
Với thiết kế như trên, phần mềm điều khiển hoạt động của lõi mật mã 
Elliptic thực hiện 0 điều khiển quá trình cơ bản gồm có: điều khiển các tín 
hiệu điều khiển, điều khiển quá trình ghi dữ liệu đầu vào (tham số XP, tham số 
YP và hệ số nhân K) và điều khiển quá trình đọc/ghi dữ liệu vào/ra. Để xử lý 
13 
.
Data
(32 bit)
Thanh 
ghi 08
(32 bit)
Thanh 
ghi 07
(32 bit)
Thanh 
ghi 01
(32 bit)
Thanh 
ghi 00
(32 bit)
Address
(32 bit)
Gi i mã đ a 
ch 
27 
bit
32 bit 32 bit 32 bit
32 bit
Thanh ghi data_in
(283 bit)
Core M t mã Elliptic Q=k.P
ARM cortex A9
Port 01 Port 02
 ình .6 Bus hệ thống nối lõi mật m elli tic và R cortec A9 
mỗi quá trình nêu trên, luận án xây dựng hàm điều khiển tương ứng gồm có: 
- void ECC_Start(XGpio *control, u8 mode) 
o Chức năng i u khi n bắt đầu và dừng ho t động của lõi mật 
mã Elliptic. 
o Tham số:-> control ịa chỉ c ng địa chỉ 
 -> mode Lựa chọn ngừng ho t động lõi hay bắt đầu 
ho t động 
- void ECC_WriteData(XGpio *nonci, XGpio *control, 
u32* data, u8 type) 
o Chức năng Thực hiện quá trình ghi dữ liệu đầu vào vào các 
thanh ghi dữ liệu đầu vào của lõi mật mã Elliptic. 
14 
o Tham số:-> nonci ịa chỉ c ng dữ liệu 
 -> control ịa chỉ c ng địa chỉ 
 -> data ịa chỉ của dữ liệu muốn ghi vào 
 -> type Lo i dữ liệu đầu vào 
- void ECC_ReadData(XGpio *resci, XGpio *control, u32 
*data, u8 type) 
o Chức năng Thực hiện quá trình đọc dữ liệu đầu ra gồm có XQ 
và YQ. 
o Tham số:-> resci ịa chỉ c ng dữ liệu 
 -> control ịa chỉ c ng địa chỉ 
 -> data ịa chỉ chứa dữ liệu ra 
 -> type Lo i dữ liệu đầu ra 
Start
Ghi: K
Ghi: Xp
Ghi: Yp
Tính K.P
Đã tính xong?
Đọc: Xq
Đọc: Yq
Kết thúc
 ình .7 Lưu đồ thuật toán chương trình đi u khi n lõi 
Ngoài các hàm điều khiển trên, phần mềm còn đọc dữ liệu trên cổng 
trạng thái status, để xác định được quá trình tính toán trên lõi lliptic đã hoàn 
15 
thành chưa. Nếu giá trị của bít thứ ba của cổng status là thì có ngh a là 
quá trình tính toán đã hoàn thành, ngược lại nếu giá trị 0 có ngh a là việc 
thực hiện phép tính chưa kết thúc. Dựa trên các hàm điều khiển cơ bản trên, 
cùng với thiết kế lõi đặc tả lõi mật mã lliptic, quá trình điều khiển lõi được 
thực hiện th o lưu đồ thuật toán được trình bày như Hình A7 
Kết quả tính toán phép nhân điểm trên FPGA sẽ được đưa đến các 
thành phần để thực hiện giao thức trao đổi khóa ECDH, ECHQMV, thuật toán 
chữ ký số ECD A, GO T . 0-20 2 

File đính kèm:

  • pdfluan_an_nghien_cuu_giai_phap_nang_cao_hieu_qua_bao_mat_thong.pdf