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
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Ký hiệu đường cong elliptic E
Điểm vô cực của đường cong lliptic O
Một điểm trên E sinh ra một nhóm cyclic cấp N G
Khóa bí mật A KA
Khóa bí mật B KB
,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,
Lực lượng của a #(a)
Lực lượng của b #(b)
Tọa độ điểm P trên đường cong E x1, y1
Tọa độ điểm Q trên đường cong E x2, y2
Rank(A) Hạng của ma trận A
Tọa độ điểm trên đường cong E x3, y3
ATM1 An toàn mạng
ATM2 An toàn mạng 2
Chuẩn mã hóa dữ liệu mở rộng (Advanc d Encryption tandard) AES
Giao thức tiêu đề xác thực (Authentication Header) AH
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)
Bài toán logarith rời rạc (Discrete Logarithm Problem) DLP
Tấn công từ chối dịch vụ (Denial of Service ) DoS
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)
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)
Encapsulating Security Payload ESP
FPGA
Mảng cổng lập trình dạng trường (Field Programmable Gate Array)
Tìm ước số chung lớn nhất (Gr at st Common Divisor)
Giao thức liên mạng (Internet Protocol) GCD IP
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)
Trao đổi khóa (Internet Key Exchange) IKE
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)
Dạng không liền kề (Non Adjacent Form) NAF
Mạng cục bộ (Local Area Network) LAN
Tế bào logic (Logic Cell) LC
Phần tử logic (Logic Element) LE
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
DANH MỤC CÁC BẢNG
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 ........................... 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
x
DANH MỤC CÁC HÌNH VẼ
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
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 ............................................................................................. 73
Hình 2. 8. Kết quả mô phỏng nhân điểm th o thuật toán NAF trực tiếp ....... 73
Hình . . ơ đồ mã hóa và giải mã của thuật toán AE ................................. 83
Hình 3.2. Hàm ShiftRows ............................................................................... 84
Hình 3.3. Hàm MixColumns ........................................................................... 85
Hình 3.4. Phép nhân với 2 và 3 trên với ........... 90
Hình 3.5. Phép nhân với 2, 4 và 145 trên với .. 90
Hình 3.6. Phép nhân với 2, 4 và 149 trên với .... 95
Hình 3.7. Kết quả mô phỏng đối với ma trận đề xuất Cir( , 9, , ) ........ 100
Hình 3.8. Kết quả mô phỏng đối với ma trận trong AES Cir(2, 3, 1, 1) ...... 101
Hình .9. Kết quả mô phỏng cài đặt thuật toán AE chuẩn ......................... 102
Hình . 0. Kết quả mô phỏng cài đặt thuật toán AE với ma trận MD
mới ................................................................................................ 102
Hình A. Kit phát triển ZC70 Evaluation Kit của Xilinx .............................. 2
Hình A.2 Sơ đồ khối kiến trúc của kít Zynq-7000 XC7Z045-2FFG900C ...... 3
Hình A. Mô tả các khối chức năng của bộ xử lý A M ................................. 5
Hình A. Mô tả các bước thiết kế trên FPGA................................................. 6
Hình A.5 Lõi cứng hóa mật mã lliptic thực hiện trên FPGA ....................... 11
Hình A. Bus hệ thống nối lõi mật mã elliptic và ARM cortec A9 ................ 13
Hình A.7 Lưu đồ thuật toán chương trình điều khiển lõi ECC ...................... 14
1
MỞ ĐẦU
1. Tính cấp thiết
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.
Bài toán bảo mật thông tin trên mạng truyền số liệu đã và đang được
nhiều quốc gia trên thế giới đặc biệt quan tâm, đã có rất nhiều các nghiên cứu
tạo ra các chuẩn bảo mật, các hệ mật và giải pháp bảo mật cho mạng truyền số
liệu đa dịch vụ. Trong đó giao thức bảo mật IP c có thể được coi là giao
thức tốt nhất cho việc thực hiện mã hóa dữ liệu tại tầng IP [4], [9] trên nền
tảng công nghệ của mạng truyền số liệu đa dịch vụ. IPSec là một tập hợp các
tiêu chuẩn mở, cung cấp các dịch vụ bảo mật và điều khiển truy nhập tại tầng
IP. Tuy nhiên, do hệ thống mạng truyền số liệu là mạng truyền dẫn tốc độ cao
2
và ngày càng phát triển nhanh chóng, truyền tải nhiều loại hình dịch vụ thông
tin, vì vậy đặt ra một số vấn đề đối với IP c để phát triển và hướng tới hoàn
thiện [1], [4]. Một trong các yếu tố cần thực hiện đó là nâng cao hiệu năng,
tốc độ tính toán của thiết bị mã hóa do IP c phải xử lý nhiều giải thuật phức
tạp và tiêu tốn tài nguyên, đặc biệt là các thuật toán mật mã sử dụng trong
giao thức mã hóa dữ liệu E P hay giao thức trao đổi khóa IKE của IP c.
Trên thế giới đã có nhiều công trình nghiên cứu cải tiến nhằm cải thiện
tốc độ, nâng cao hiệu năng xử lý của IPSec, điển hình như công trình của các
tác giả A. Salman, M. Rogawski and J. Kaps [8] (năm 20 ); L.Wu, Yun Niu,
X. Zhang [40] (năm 20 3) đã nghiên cứu cứng hóa giao thức IP c trên nền
công nghệ FPGA và đạt được những thành công lớn về mặt tốc độ và hiệu
năng xử lý, trong đó về giải pháp mật mã các tác giả trên sử dụng thuật toán
mã hóa chuẩn AE cho E P và giao thức thỏa thuận khóa Diffie-Hellman với
tham số A 02 , 20 8 bít cho IKEv2. Về cứng hóa chuẩn mã hóa dữ liệu
AES trên FPGA nhằm nâng cao hiệu năng xử lý mật mã, điển hình có các
nghiên cứu gần đây như công trình của các tác giả Kaur A, Bhardwaj P and
Naveen Kumar [37] (năm 20 ), Ashwini R. Tonde and Akshay P. Dhande
[10] (năm 20 ), hay kết quả khảo sát các công trình nghiên cứu th o hướng
này của các tác giả Shylashree.N, Nagarjun Bhat and V. Shridhar [58] (năm
2012) cho thấy các kết quả đạt được là rất đáng kể nhờ việc tối ưu và sử dụng
các kỹ thuật tiên tiến (pip lin ) khi thực hiện trên phần cứng. Tuy nhiên, các
công trình nghiên cứu đề cập đến việc cài đặt trên phần cứng có liên quan đến
tối ưu hoặc cải tiến các thành phần mật mã còn rất hạn chế. Đối với giao thức
trao đổi khóa IKE, trong [17] đưa ra phương án có thể thay mật mã đường
cong elliptic (ECC) cho tham số A trong giao thức thỏa thuận khóa Diffi -
Hallman, với ECC cũng có rất nhiều các nghiên cứu về lý thuyết và thực hành
nhằm tăng hiệu quả thực hiện phép nhân điểm (là phép tính cơ bản và quan
3
trọng của ECC) để giúp giảm thời gian trao đổi khóa giữa các thực thể trong
mạng thông tin.
Dưới góc độ mật mã, hầu hết các quốc gia trên thế giới đều tổ chức xây
dựng hệ thống mật mã của riêng mình, nhằm giữ bí mật ở mức cao nhất các
thông tin nhạy cảm, đặc biệt đối với các hệ thống thông tin được sử dụng
trong l nh vực an ninh quốc phòng. Tại Việt Nam, Ban Cơ yếu Chính phủ là
nơi đi đầu trong l nh vực nghiên cứu, triển khai các giải pháp bảo mật cho các
hệ thống thông tin. Các sản phẩm bảo mật được phát triển dựa trên các chuẩn
của thế giới như IP c [9], SSL/TLS[7], OpenVPN[18], th o hướng cải tiến,
chuyên dụng hóa các sản phẩm mã nguồn mở như Op nSwan, StrongSwan,
OpenVPN hay một số giải pháp triển khai IP c dưới dạng thiết bị chuyên
dụng [1] được nghiên cứu thiết kế và tích hợp kỹ thuật mật mã của Việt Nam
bao gồm các khâu xác thực, bảo mật và toàn vẹn dữ liệu trong đó tốc độ mã
hóa, giải mã đạt khoảng 30Mb/s đối với thiết bị mã tại lớp truy nhập và
khoảng 80Mb/s đối với trung tâm mã hóa. Các cơ sở nghiên cứu trong nước
như Viện Điện tử thuộc Viện Khoa học và Công nghệ quân sự đã tổ chức
nghiên cứu đề tài cấp nhà nước về thiết kế thiết bị mật mã hiệu năng cao [3].
Tuy nhiên, việc nghiên cứu để cải tiến về thuật toán mật mã hay những phân
tích chuyên sâu về tối ưu cài đặt các giải pháp mật mã trên phần cứng nhằm
đạt hiệu quả về tốc độ, tài nguyên sử dụng ít được đề cập.
Xuất phát từ những lý do trên, nghiên cứu sinh chọn đề tài nghiên cứu
“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ụ”
Nhằm nghiên cứu cải tiến, tối ưu giải pháp mật mã, ứng dụng công
nghệ để cứng hóa, tối ưu cài đặt để nâng cao hiệu năng, tốc độ trao đổi khóa,
mã hóa/giải mã dữ liệu, giải quyết các yêu cầu ngày càng phát triển cao của
mạng truyền số liệu tốc độ cao, đa dịch vụ, thời gian thực. Đây là nội dung
4
khoa học trọng yếu của công trình nghiên cứu được trình bày chi tiết trong
luận án.
2. Mục tiêu nghiên cứu
Nghiên cứu đề xuất giải pháp cụ thể để nâng cao hiệu quả thực hiện các
thuật toán mật mã đảm bảo hiệu quả về tốc độ tính toán, tài nguyên sử dụng,
an toàn và bảo mật nhằm 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ụ.
3. Đối tượng nghiên cứu
Mạng truyền số liệu đang được sử dụng trong các cơ quan đảng, chính
phủ, quân đội và giải pháp bảo mật mạng. Tập trung vào nghiên cứu các kỹ
thuật mật mã hiện đại như mật mã khóa công khai trên đường cong elliptic,
các hệ mã khối khóa bí mật để mã hóa dữ liệu và khả năng thực hiện cứng
hóa các thuật toán mật mã trên phần cứng FPGA.
4. Phạm vi nghiên cứu
- Luận án tập trung nghiên cứu nâng cao hiệu quả thực hiện phép nhân
điểm trên đường cong lliptic phục vụ cho bài toán trao đổi khóa trong giao
thức trao đổi khóa IKE của giao thức bảo mật IP c.
- Nghiên cứu, đề xuất giải pháp cải tiến nhằm nâng cao hiệu quả thực
hiện thuật toán mã hóa dữ liệu cho bài toán bảo mật.
- Nghiên cứu cứng hóa các thuật toán mật mã trên phần cứng FPGA.
5. Phương pháp nghiên cứu
- Trên cơ sở kiến trúc an ninh chung của mô hình O I, giao thức bảo mật
cho mạng truyền số liệu đa dịch vụ, thông qua khảo sát, phân tích, đánh giá
các kết quả đã nghiên cứu từ đó đề xuất các vấn đề nghiên cứu nâng cao hiệu
quả bảo mật mạng.
- Dựa trên phương pháp phân tích lý thuyết (sử dụng lý thuyết và kỹ
thuật mật mã hiện đại), tính toán giải tích, chứng minh bằng toán học và kiểm
5
chứng thông qua việc cứng hóa trên phần cứng FPGA thực hiện cài đặt, mô
phỏng để chứng minh tính đúng đắn của các kết quả nghiên cứu.
6. Nội dung nghiên cứu
- Nghiên cứu giao thức bảo mật đang được sử dụng cho mạng truyền số
liệu đa dịch vụ, đánh giá một số tồn tại trong giao thức trước yêu cầu ngày
càng cao về độ rộng băng thông, yêu cầu về tốc độ tính toán và tính thời gian
thực của các dịch vụ hoạt động trên mạng.
- ng dụng mật mã đường cong lliptic cho bài toán trao đổi khóa trong
giao thức trong đó tập trung nghiên cứu nâng cao hiệu quả thực hiện phép
nhân điểm trong mật mã đường cong lliptic nhằm cải thiện về tốc độ tính
toán và hiệu quả sử dụng tài nguyên.
- Nghiên cứu, đề xuất cải tiến thuật toán mã hóa nhằm nâng cao hiệu quả
mã hóa dữ liệu về tốc độ, tài nguyên sử dụng.
- Khả năng cứng hóa các nguyên thủy mật mã và thực hiện cứng hóa giải
pháp mật mã đã đề xuất trên phần cứng.
7. Ý nghĩa khoa học và thực tiễn
- Ý nghĩa khoa học: Quá trình nghiên cứu luận án sẽ cho thấy rõ cơ sở
khoa học và kỹ thuật của việc nghiên cứu, đề xuất cải tiến thuật toán và ứng
dụng một số nguyên thủy mật mã vào bài toán bảo mật thông tin.
- Ý nghĩa thực tiễn: Cải tiến, nâng cao tốc độ tính toán, hiệu năng thực thi
các thuật toán mật mã trên phần cứng đảm bảo tính hiệu quả, giảm thời gian
tính toán và tài nguyên sử dụng của thiết bị mã hóa khi thiết bị này phải thực
hiện đồng thời nhiều kết nối bảo mật tại cùng một thời điểm nhằm nâng cao
năng lực, khả năng hoạt động của thiết bị mã hóa đáp ứng yêu cầu bảo mật
ngày càng cao cho mạng truyền số liệu đa dịch vụ hướng tới bảo mật cho
mạng truyền số liệu chuyên dùng.
6
8. Bố cục của luận án
Luận án gồm 0 chương, phần mở đầu, kết luận, danh mục các công
trình, bài báo khoa học đã được công bố của tác giả, tài liệu tham khảo và
phần phụ lục.
Chương 1 T ng quan v an toàn và bảo mật trong m ng truy n số liệu
đa dịch vụ.
Tổng quan về mạng truyền số liệu an ninh, an toàn trong mạng và các
yêu cầu đặt ra đối với bảo mật mạng th o các cơ chế an ninh được định ngh a
theo tiêu chuẩn I O 7 982, nghiên cứu về giao thức bảo mật IP ec và các
nội dung cần nghiên cứu đề xuất nhằm nâng cao hiệu quả bảo mật cho mạng
đa dịch vụ; đề xuất ứng dụng hệ mật đường cong lliptic cho giao thức trao
đổi khóa (Nội dung này được đăng trên bài báo số 1); trong đó nghiên cứu về
thuật toán nhân điểm của mật mã đường cong lliptic nhằm nâng cao hiệu quả
trao đổi khóa cho các ứng dụng đề xuất cải tiến thuật toán mã hóa để nâng
cao hiệu quả trong thực thi bài toán mật mã bảo đảm tốc độ mã hóa/giải mã.
Chương 2: Nâng cao hiệu quả thực hiện h nhân đi m của cho
giao thức trao đ i khóa.
Nghiên cứu một số thuật toán nhân điểm trong mật mã đường cong
elliptic, phân tích, so sánh đánh giá và chọn thuật toán nhân điểm th o triển
khai một số nguyên dương th o thuật toán NAF (Non Adjacent Form) tính
toán trực tiếp để thực hiện cài đặt trên phần cứng FPGA nhằm cải thiện tốc độ
tính toán và hiệu quả về tài nguyên sử dụng (Nội dung này được đăng trên bài
báo số 4).
Bằng phương pháp thống kê toán học và kỹ thuật điện tử, nghiên cứu
xây dựng công thức tính số xung nhịp trung bình cho phép cộng hai số
nguyên khi thực hiện trên phần cứng làm cơ sở cho việc đánh giá tính hiệu
quả của một số thuật toán nhân số lớn ứng dụng trong mật mã (Nội dung này
7
được đăng trên bài báo số 2).
Thực hiện cứng hóa thuật toán nhân điểm theo NAF tính toán trực tiếp
sử dụng công nghệ FPGA (Nội dung này được đăng trên bài báo số 3, số 4).
Chương 3: Nâng cao hiệu quả thực hiện thuật toán m hóa dữ liệu
trong bảo mật m ng truy n số liệu.
Nghiên cứu đề xuất ma trận MD mới có tính chất mật mã tốt và đạt
hiệu năng cao khi cài đặt trên phần cứng sử dụng cho tầng tuyến tính của các
mã pháp có cấu trúc PN nhằm đạt hiệu quả về tốc độ mã hóa và tài nguyên
sử dụng cho bảo mật mạng (Nội dung này được đăng trên bài báo số 5). Thực
hiện thiết kế, mô phỏng thuật toán AE chuẩn so với thuật toán AE với ma
trận MD mới do luận án đề xuất sử dụng công nghệ FPGA để so sánh, đánh
giá kết quả giữa lý thuyết và thực tế.
8
CHƯƠNG 1
T NG QUAN VỀ AN TOÀN VÀ BẢO MẬT
TRONG MẠNG TRUYỀN SỐ LIỆU ĐA DỊCH VỤ
1.1. Đ c i m mạng truyền số liệu a dịch vụ
Mạng truyền số liệu đa dịch vụ là mạng truyền dẫn tốc độ cao, công
nghệ hiện đại, sử dụng phương thức truyền chuyển mạch nhãn đa giao thức
(IP/MPL ). Kết nối mạng tại tất cả các đầu mối đều sử dụng cáp quang tốc độ
00/ 000Mbps, các kết nối đều đảm bảo tính dùng riêng, an ninh, an toàn và
tính dự phòng cao, cho phép hoạt động thông suốt 2 /7 [1], [2].
Trên cơ sở hạ tầng tiên tiến và đồng bộ, mạng truyền số liệu đa dịch vụ
đáp ứng cho rất nhiều dịch vụ như: Truyền hình hội nghị kết nối mạng riêng
ảo truy nhập từ xa (Remote Access IP VPN) trao đổi dữ liệu và các dịch vụ
dữ liệu, thoại IP.
Mạng truyền số liệu đa dịch vụ sử dụng giao thức TCP/IP th o mô hình
OSI, tùy th o tính chất, nhiệm vụ của từng ngành mà mạng có thể được xây
dựng riêng mang tính tương đối độc lập cho một tổ chức hoặc cơ quan. Trong
đó, các tài nguyên mạng như thiết bị mạng, dịch vụ mạng và người dùng nằm
phân tán trên một phạm vi địa lý xác định và phục vụ cho một nhu cầu xác
định. Th o [1], [2], [4] mạng đa dịch vụ gồm có lớp chính:
- Lớp lõi: Các thiết bị truyền dẫn đảm bảo hoạt động cho toàn mạng.
- Lớp biên: Gồm các thiết bị truyền dẫn đảm bảo việc cung cấp hạ tầng
mạng cho các dịch vụ.
- Lớp truy nhập: Gồm các thiết bị truyền dẫn đảm bảo việc truy nhập
cho người dùng trên toàn mạng.
Mạng trục là xương sống của toàn bộ mạng truyền số liệu, mạng tiềm
ẩn nhiều nguy cơ về an ninh, an toàn như các truy cập trái phép hay tấn công
9
từ các mạng lớp biên, lớp truy nhập, mạng ATM hiện tại hay từ các vùng
mạng liên thông khác. Việc bảo đảm an toàn, an ninh mạng là hết sức quan
trọng [1], [2], [18], [45]
Hình 1.1. ấu trúc m ng truy n số liệu đa dịch vụ
1.2. An toàn và bảo mật trong mạng truyền số liệu a dịch vụ
1.2.1. Một số khái niệm chung
1.2.1.1. An ninh mạng
Mô hình O I (Op n yst ms Int rconn ction) là mô hình tương tác
giữa các hệ thống mở được tổ chức Tiêu chuẩn quốc tế ISO (the
International Organization for tandardization) đề xuất qua tiêu chuẩn I O
7498 [29]. An ninh mạng là một trong những vấn đề cơ bản của mạng, vì thế
sau khi đưa ra mô hình O I, I O đã đề xuất kiến trúc an ninh (s curity
archit ctur ) qua tiêu chuẩn I O 7 982 [30], trong đó định ngh a các thuật
10
ngữ, khái niệm cơ bản trong an ninh mạng và kiến trúc an ninh cho O I. An
ninh trong môi trường O I là tổng hợp những biện pháp bảo toàn tài nguyên
và tài sản của hệ thống mạng trong quá trình tương tác giữa các hệ thống mở.
Th o đó đối tượng bảo vệ của hệ thống an ninh mạng gồm:
- Thông tin và dữ liệu (bao gồm cả phần mềm và dữ liệu thụ động liên
quan đến biện pháp an ninh)
- Các dịch vụ truyền thông và dịch vụ xử lý dữ liệu
- Các thiết bị và phương tiện mạng
Nguy cơ là những sự cố tiềm tàng, có thể gây ra những tác động không
mong muốn đến hệ thống mạng truyền số liệu; Khả năng bị tấn công là bất kỳ
điểm yếu nào trên hệ thống có thể bị lợi dụng để tạo ra sự cố cho hệ thống
mạng; Tấn công là hành động cố ý tác động lên một hoặc nhiều thành phần
của hệ thống nhằm buộc một nguy cơ nào đó xảy ra.
1.2.1.2. Các dịch vụ an ninh
Các dịch vụ an ninh là các dịch vụ bổ sung tính năng an toàn an ninh
cho hệ thống và được thiết kế để chống lại một số dạng tấn công xác định.
Các dịch vụ này thường được phân loại như sau [62]:
Xác thực: Đảm bảo một người dùng khi tham gia vào hệ thống phải là
chính họ, từ lúc khởi tạo cho đến khi kết thúc một phiên giao dịch.
Kiểm soát truy nhập: Bên cạnh dịch vụ xác thực, kiểm soát truy nhập
là dịch vụ kiểm soát/giới hạn các truy nhập vào một hệ thống hoặc một ứng
dụng trên mạng.
An toàn dữ liệu: Dịch vụ này nhằm bảo vệ dữ liệu trước các tấn công
thụ động. Điều này không những chỉ đối với nội dung các gói tin mà còn bao
gồm cả việc giữ bí mật điểm đầu và điểm cuối của gói tin.
Toàn vẹn dữ liệu: Mục đích của dịch vụ này là để phát hiện các thay
đổi dữ liệu trong quá trình truyền thông.
11
Chống chối bỏ: Tính chất này nhằm giải quyết vấn đề một thực thể
tham gia truyền thông chối bỏ hành động gửi/nhận dữ liệu của mình, cả hai
phía của một giao dịch đều có thể chứng minh việc phía bên kia đã gửi/nhận
dữ liệu.
Tính sẵn sàng: Các tài nguyên trên mạng cần phải luôn sẵn sàng với
các truy nhập hợp lệ. Kẻ tấn công sẽ không thể ngăn chặn hoặc làm gián đoạn
truy nhập tới các tài nguyên này.
1.2.2. Các cơ chế an ninh dựa trên mật mã
Cơ chế an ninh là tổ hợp những thao tác kỹ thuật cụ thể, được sử dụng
để tạo ra dịch vụ an ninh [55]. Những cơ chế an ninh này được trình bày chi
tiết ở nhiều tài liệu, th o I O 7 98–2 chúng được mô tả sơ lược như sau:
1.2.2.1. Cơ ch m h a (encryption mechanism)
Cơ chế mã hóa được sử dụng để bảo mật cho dữ liệu được truyền thông
trên kênh. Hai loại chính là mật mã đối xứng và không đối xứng.
- Mật mã đối xứng, còn gọi là hệ mật khoá bí mật, là hệ mật mà trong
đó có thể tìm ra khoá được sử dụng để giải mã (khoá giải mã) từ khoá được sử
dụng để mã hoá (khoá mã) và ngược lại.
- Mật mã không đối xứng, còn gọi là hệ mật khoá công khai, là hệ mật
mà trong đó không thể tìm ra khoá giải mã từ khoá mã và ngược lại. Khoá mã
còn được gọi là khoá công khai, khoá giải mã còn được gọi là khoá riêng.
1.2.2.2. Cơ ch chữ ký điện tử (digital signature mechanism)
Bản chất của cơ chế chữ ký điện tử là chữ ký chỉ có thể được tạo ra từ
những thông tin riêng, đặc trưng của người ký. Khi kiểm tra chữ ký, có thể
xác minh rằng chỉ có người có thông tin riêng đó mới tạo ra được chữ ký, nói
cách khác chữ ký điện tử được sử dụng để khẳng định tính pháp lý của thông
tin được gửi đi trên mạng.
Cơ chế chữ ký điện tử gồm có hai thuật toán là tạo chữ ký (là bí mật và
12
duy nhất chỉ có người ký mới có) và kiểm tra chữ ký (được phổ biến công
khai). Trong thủ tục ký vào thông điệp, người gửi thông điệp (đồng thời là
người ký) sử dụng thuật toán tạo chữ ký để tính toán ra chữ ký (thường là một
chuỗi nhị phân có độ dài cố định) từ thông điệp cần ký. Trong thủ tục kiểm tra
chữ ký, người kiểm tra chữ ký (thường đồng thời là người nhận thông điệp)
sử dụng thuật toán kiểm tra chữ ký công khai của người gửi để xác minh chữ
ký gửi k m thông điệp có đúng là đã được tạo ra từ người gửi hay không.
1.2.2.3. Cơ ch kiểm soát truy nhập (access control mechanism)
Loại cơ chế này sử dụng danh tính xác thực của một thực thể để xác
định và áp đặt các quyền truy nhập phù hợp cho thực thể đó. Nếu một thực thể
tìm cách sử dụng tài nguyên mà nó không có quyền truy nhập hoặc cách thức
truy nhập của nó không thích hợp thì chức năng kiểm soát truy nhập sẽ ngăn
chặn truy nhập đó và có thể ghi lại sự việc đã xảy ra như là một phần của bản
ghi vết kiểm toán phục vụ cho hoạt động kiểm tra sau này.
1.2.2.4. Cơ ch toàn vẹn dữ liệu (data integrity mechanism)
Toàn vẹn dữ liệu có thể là sự toàn vẹn của một gói dữ liệu hoặc sự toàn
vẹn của một luồng dữ liệu. Việc xác định tính toàn vẹn của một gói dữ liệu
được thực hiện thông qua hai tiến trình, tại thực thể gửi và tại thực thể nhận.
Thực thể gửi chắp vào sau gói dữ liệu một giá trị được tính toán từ bản thân
gói dữ liệu đó thông qua hàm một chiều, giá trị này được gọi là giá trị tóm
lược thông điệp – message digest. Thực thể nhận, sau khi nhận được gói dữ
liệu sẽ tách phần dữ liệu và giá trị tóm lược, thực hiện tính toán giá trị tóm
lược từ phần dữ liệu và so sánh nó với phần nhận được, tức là giá trị tóm lược
đã được thực thể gửi gắn vào gói dữ liệu, từ đó sẽ xác định được dữ liệu có bị
sửa trong quá trình truyền hay không.
Đối với toàn vẹn luồng dữ liệu, ngoài việc thực hiện bảo đảm tính toàn
vẹn của từng gói dữ liệu, người ta còn chắp thêm một số thông tin phụ trợ như
13
số thứ tự của gói tin, t m thời gian,… vào phần đầu của mỗi gói dữ liệu trước
khi tính toán và chắp giá trị tóm lược thông điệp. Nhờ vậy, luồng dữ liệu sẽ
được xác minh là có toàn vẹn hay không.
1.2.2.5. Cơ ch trao đổi xác thực (authentication exchange mechanism)
Cơ chế trao đổi xác thực được đặt trong một tầng của mô hình mạng
phân tầng nhằm xác thực các thực thể liên kết. Nếu một thực thể không xác
thực được, nó sẽ không thể kết nối được đến thực thể đích và hệ thống trên
trạm đích sẽ ghi lại quá trình yêu cầu kết nối, cũng như các thao tác cụ thể mà
nó đã thực hiện vào một bản ghi vết kiểm toán nhằm phục vụ quá trình kiểm
tra sau này. Có nhiều kỹ thuật được sử dụng để tạo ra trao đổi xác thực, như
mật khẩu, kỹ thuật mật mã…, khi sử dụng kỹ thuật mật mã kết hợp với giao
thức bắt tay có thể chống lại được việc phát lặp lại các gói tin trên kênh. Trao
đổi xác thực cũng có thể được sử dụng cùng với dịch vụ chống thoái thác
nhằm chứng minh trách nhiệm gửi/nhận thông tin trên mạng .
1.2.2.6. Cơ ch đệm truyền thông (traffic padding mechanism)
Cơ chế đệm truyền thông thực hiện chắp thêm các dữ liệu "bù" vào gói
tin để bảo đảm kích thước của tất cả các gói tin được truyền trên kênh là bằng
nhau. Cơ chế này phải được sử dụng kết hợp với cơ chế mật mã mới có hiệu
quả, vì khi đó tất cả các gói tin trên kênh đều có kích thước như nhau, đều
được mã hoá, do vậy việc dò tìm thông tin thông qua phân tích thông lượng
kênh của đối phương sẽ khó thành công.
1.2.2.7. Cơ ch kiểm soát chọn đường (routing control mechanism)
Cơ chế kiểm soát chọn đường thực hiện việc phân tích và áp đặt tuyến
đường trên kênh cho luồng dữ liệu, tuyến đường đó có thể được chọn tự động
(dynamic routing) hoặc được xếp đặt trước (static routing) nhằm chọn ra
tuyến đường an toàn cho luồng dữ liệu. Việc chọn đường liên quan đến nhãn
an ninh của dữ liệu, với mỗi nhãn an ninh nhất định (xác định mức độ nhạy
14
cảm của dữ liệu) cần phải chọn ra tuyến đường có độ an toàn tương xứng.
1.2.2.8. Cơ ch kiểm chứng (notary mechanism)
Cơ chế kiểm chứng thực hiện xác minh các thuộc tính của dữ liệu
truyền thông giữa hai hay nhiều thực thể như tính toàn vẹn, thời gian
truyền/nhận và đích của dữ liệu. Lời bảo đảm này được một tổ chức công
chứng trung gian mà các thực thể truyền thông đều tin cậy và công nhận. Trên
tuyến đường giữa cặp thực thể truyền thông có nhiều đoạn, mỗi đoạn truyền
thông có thể sử dụng chữ ký số, kỹ thuật mật mã và toàn vẹn một cách thích
hợp để tổ chức công chứng tại đó có thể xác minh. Khi cần kiểm chứng, dữ
liệu truyền giữa các thực thể sẽ được gửi tới công chứng viên để xác nhận.
1.2.3. Vị trí t dịch vụ an ninh th o m h nh mạng ph n t ng
Trên thực tế, khi tiến hành xây dựng giải pháp bảo vệ an ninh trong
mạng phân tầng cần phải kết hợp nhiều dịch vụ an ninh để việc bảo vệ có hiệu
quả cao nhất. I O 7 98–2 [30] đề ra những nguyên tắc xây dựng hệ thống an
ninh như sau:
- Hệ thống an ninh mạng được xây dựng bằng các dịch vụ an ninh ở
nhiều tầng.
- Chức năng được thêm vào th o yêu cầu an ninh không được giống hệt
như chức năng có sẵn của các tầng trong O I.
- Không vi phạm tính độc lập của các tầng và tối thiểu hoá số chức năng
tin cậy.
- Các chức năng an ninh thêm vào một tầng cần được định ngh a sao cho
chúng phải được thực hiện như những modul hoàn chỉnh.
Trên thực tế mô hình mạng phân tầng được sử dụng rộng rãi là TCP/IP
với bốn lớp mạng, Hình 1.2 thể hiện sự so sánh giữa mô hình O I với
TCP/IP.
TCP/IP
OSI ng dụng
15
Ứng dụng
Trình di n
Phiên
Giao vận
ng dụng
TCP/UDP
Mạng
Giao vận
IP
Liên kết dữ liệu
IP
Network Access
Vật lý
Truy nhập mạng
Hình 1.2. So sánh OSI và TCP/IP
Các dịch vụ an ninh trong TCP/IP được đặt tương ứng như sau:
- Tại tầng Truy nhập mạng (n twork acc ss) có thể đặt dịch vụ bảo mật
hướng kết nối và bảo mật luồng truyền thông.
- Tại tầng IP có thể đặt dịch vụ bảo mật phi kết nối và bảo mật luồng
truyền thông.
- Tầng giao vận có thể đặt dịch vụ bảo mật hướng kết nối và phi kết nối.
- Tại tầng ứng dụng có thể đặt tất cả các dịch vụ bảo mật. iêng dịch vụ
bảo mật trường lựa chọn chỉ có thể đặt tại tầng ứng dụng.
1.2.4. Ý nghĩa của việc s dụng mật mã trong ảo mật tại t ng IP [4]
TCP/IP là một giao thức chuẩn của Int rn t và được hầu hết các ứng
dụng trên mạng hỗ trợ. Các dịch vụ dùng giao thức TCP/IP như thư điện tử,
cơ sở dữ liệu, dịch vụ b, truyền fil , truyền hình ảnh, âm thanh,… dữ liệu
của các ứng dụng này được chứa trong các gói IP và được bảo vệ nhờ các
dịch vụ an toàn tại tầng N twork. Mỗi mạng con chỉ cần có một thiết bị bảo
vệ gói IP và là một Gat way để cho phép tất cả các gói tin IP phải chuyển qua
nó trước khi ra kênh công khai [9], [63].
Không phải can thiệp và sửa đổi các ứng dụng hiện có và trong suốt đối
16
với người dùng: Do được đặt tại tầng N twork nên các dịch vụ an toàn không
cần quan tâm đến ứng dụng tạo ra dữ liệu chứa trong gói IP. Tất cả các gói IP
của các dịch vụ thông tin khác nhau đều được xử lý th o một cách chung.
Chính vì vậy, chúng ta không cần phải can thiệp và sửa đổi cấu trúc của ứng
dụng cần bảo vệ. Toàn bộ các thao tác bảo vệ gói IP được thực hiện một cách
trong suốt với người sử dụng, người dùng không cần phải can thiệp vào quá
trình thực hiện các dịch vụ an toàn và cũng không cần phải thực hiện các thao
tác làm việc với ứng dụng.
Tăng cường khả năng của Fir wall: Chúng ta biết rằng có một số tấn
công đối với Fir wall lọc gói như soi gói, giả địa chỉ nguồn, chiếm kết nối,…
Những tấn công này không thể phát hiện ra nếu chỉ dùng các luật lọc gói. Khi
cài đặt các dịch vụ an toàn bằng kỹ thuật mật mã tại tầng N twork, các tấn
công trên sẽ bị ngăn chặn. Ngược lại bảo vệ gói tin IP bằng kỹ thuật mật mã
không thể ngăn chặn các gói bằng cách dựa vào các luật lọc gói. Nếu kết hợp
chức năng lọc gói và chức năng bảo vệ gói IP bằng kỹ thuật mật mã chúng ta
có thể tạo ra các Fir wall có độ an toàn cao.
Hình 1.3. ô hình bảo mật t i tầng P
Giảm số đầu mối can thiệp dịch vụ an toàn: Khi cài đặt dịch vụ an toàn
tại mức ứng dụng và mức vận tải, chúng ta chỉ có thể tạo ra một kênh an toàn
17
giữa hai hệ thống đầu cuối, ngh a là giữa hai thiết bị đầu cuối có thông tin cần
trao đổi được bảo vệ. Khi hệ thống đầu cuối trong mạng nội bộ được tăng lên,
số đầu mối cần can thiệp dịch vụ an toàn cũng sẽ tăng th o. Điều này dẫn đến
những khó khăn về chi phí, quản trị hệ thống, huấn luyện đào tạo sử dụng…,
Do can thiệp mật mã tại tầng N twork, nên chúng ta có thể tạo ra các
Gat way có khả năng chặn bắt và bảo vệ gói IP của tất cả các thiết bị trong
mạng nội bộ và dịch vụ an toàn chỉ cần tích hợp tại Gat way này.
Cho phép bảo vệ dữ liệu của một số ứng dụng thời gian thực: Việc sử
dụng mật mã tại tầng khác trong mô hình I O không phải lúc nào cũng thực
hiện được. Hơn nữa các ứng dụng thời gian thực đòi hỏi các luồng dữ liệu
phải được chuyển gần như tức thời, không cho phép tr lâu (ví dụ thoại,
truyền hình…). Với các ứng dụng như vậy, việc cài đặt các dịch vụ an toàn tại
tầng N twork và tầng truy cập mạng là phù hợp. Tuy nhiên việc can thiệp vào
tầng truy cập mạng có hạn chế là phải dùng phương thức mã th o tuyến, tại
các nút trung gian dữ liệu phải giải mã để tìm ra thông tin định tuyến sau đó
được mã lại để đi tiếp, điều này rất phức tạp và làm tr gói tin rất lớn do quá
trình mã hóa, giải mã nhiều lần. Khi cài đặt tại tầng N twork chúng ta dùng
phương thức mã hóa từ mút tới mút [63], trong đó h ad r truyền thông được
để ở dạng rõ và gói IP không cần phải giải mã, mã hóa tại các nút truyền
thông trung gian.
ột số h n chế của việc bảo vệ dữ liệu t i tầng IP:
- Khó có khả năng cài đặt một số dịch vụ an toàn đặc biệt là dịch vụ
xác thực thực thể và chống chối bỏ.
- Chỉ có một cơ chế bảo vệ cho tất cả các dữ liệu của các ứng dụng.
- Khi các đầu mối trong mạng nội bộ tham gia lớn thì việc cùng lúc
phải phục vụ cho nhiều dịch vụ bảo mật và nhiều hướng kết nối nên đòi hỏi
băng thông cao, tốc độ xử lý mã hóa, giải mã phải lớn để đáp ứng các yêu cầu
18
của thực tế. Đây chính là vấn đề được luận án quan tâm nghiên cứu giải
quyết.
- Đòi hỏi người quản trị hệ thống phải có kiến thức tốt về công nghệ và
quản trị mạng.
- Mạng nội bộ phía bên trong Gat way bảo vệ gói IP phải tự chủ động
về khâu bảo đảm an toàn, an ninh.
1.2.5. Bảo mật trong mạng truyền số liệu a dịch vụ
Các nghiên cứu về bảo mật đối với mạng truyền số liệu đa dịch vụ chủ
yếu được giải quyết tại lớp biên hoặc lớp truy cập, thiết bị bảo mật được đặt
giữa vị trí mạng nội bộ bên trong với mạng truyền số liệu diện rộng, hoặc là
bảo mật đầu cuối – đầu cuối, nền tảng công nghệ chính tại các lớp này đó là
IP, vì vậy giải pháp bảo mật chính là xử lý bảo mật tại tầng IP [1], [2], [7],
[32]. Tại vị trí này, các thiết bị truyền dẫn (thông thường là các rout r hoặc
gat way) sẽ được xây dựng sẵn hoặc tích hợp các thiết bị cung cấp dịch vụ
bảo mật sử dụng mật mã. Thực tế, giải pháp phổ biến và hiệu quả nhất đó là
tạo ra các mạng riêng ảo (VPN – Virtual Privat N twork). Mỗi VPN sẽ tạo ra
một đường hầm ảo kết nối giữa 2 điểm đầu cuối. Các dữ liệu trao đổi bên
trong đường hầm sẽ được mã hóa bằng kỹ thuật mật mã. Hình 1.4 là mô hình
giải pháp bảo mật dữ liệu trên đường truyền đặt giữa nút mạng nội bộ và
mạng truyền số liệu diện rộng th o công nghệ IP sử dụng giao thức bảo mật
IPSec.
VPN cung cấp tính năng bảo mật bằng cách sử dụng các giao thức
đường hầm (tunn ling protocol) và qua các thủ tục bảo mật như mã hóa. Mô
hình bảo mật VPN cung cấp:
- Tính bí mật Kể cả khi mạng bị chặn thu ở mức gói tin, kẻ tấn công
chỉ thấy được các dữ liệu đã mã hóa.
- Xác thực người gửi Ngăn người sử dụng truy cập trái phép VPN.
19
- Toàn vẹn thông điệ Phát hiện các thông điệp giả mạo hay bị sửa đổi.
Các giao thức VPN an toàn phổ biến được phát triển bao gồm [7], [31],
[32], như IPSec (Internet Protocol Security), SSL/TLS (Secure Sockets
Layer/Transport Layer Security), DTLS (Datagram Transport Layer
Security), MPPE (Microsoft Point-to-Point Encryption), SSTP (Microsoft
Secure Socket Tunneling Protocol), SSH VPN (Secure Shell).
Trong đó giao thức IP c đáp ứng hầu hết các mục tiêu an ninh: Xác
thực, tính toàn vẹn và bảo mật, IP c mã hóa và đóng gói gói tin IP bên trong
gói tin IP c, giải mã các gói tin IP gốc ở cuối đường hầm và chuyển tiếp đến
đích.
Trên thế giới các sản phẩm bảo mật mạng đã có đều sử dụng một trong
các giao thức trên. Các giải pháp phần mềm như Op n wan, trong wan
(IPSec), OpenSSH (SSH), Op nVPN, oftEth r VPN ( L/TL ), các sản
phẩm này có thể triển khai d dàng trên các máy tính thông thường nhưng
thường bị hạn chế về hiệu năng bởi khả năng xử lý mã hóa/giải mã của bộ xử
lý máy tính. Một số giải pháp phần mềm cho phép kết hợp với các thiết bị
tăng tốc mã hóa, giải mã để khắc phục hạn chế này bằng giải pháp phần cứng.
Các giải pháp phần cứng thiết bị chuyên dụng như các sản phẩm của Cisco,
Checkpoint, Jupiter Network, Fortinet..., giải pháp này thường có hiệu năng
cao hơn giải pháp phần mềm do tích hợp sẵn các bộ đồng xử lý mật mã
(crypto co-proc ssor) thiết kế trên FPGA/A IC. Hàng loạt các biện pháp, giải
pháp, công nghệ, sản phẩm đã ra đời dựa trên các chuẩn bảo mật trên nhằm
bảo mật, an toàn thông tin, trong đó các sản phẩm thường gặp là hệ thống mã
hóa luồng thông tin (thoại, luồng IP…), hệ thống xác thực chữ ký số, hệ thống
mạng riêng ảo (VPN), hệ thống tường lửa (Fir wall), hệ thống giám sát, hệ
thống chống truy cập trái phép IDP . Trong hầu hết các dạng sản phẩm nói
trên các hệ mật đóng vai trò đặc biệt quan trọng. Các hệ mật không chỉ giúp
20
cho việc mã hóa dữ liệu mà nó còn là công cụ để xác thực định danh, xác thực
nguồn gốc và tính toàn vẹn của dữ liệu.
Hình 1.4. ô hình bảo mật thông tin cho m ng đa dịch vụ
Có thể chia các sản phẩm trong bảo mật an toàn thông tin thành hai
nhóm: ản phẩm bằng phần mềm và sản phẩm bằng phần cứng.
- ản phẩm bằng phần mềm thường được cài đặt trên các hệ điều hành
sử dụng các chíp xử lý trung tâm CPU có ưu điểm là mềm dẻo, d cài đặt, d
nâng cấp, tùy biến, tuy nhiên tốc độ xử lý trong nhiều trường hợp còn rất
chậm do CPU phải thực thi rất nhiều các lệnh của hệ điều hành, mỗi lệnh
trước khi thực hiện cần phải biên dịch và xử lý nhiều mã lệnh và phần lớn các
lệnh này được thực hiện tuần tự. Th o thử nghiệm của Mohd Nazri Ismail
[43] băng thông của Op n VPN (thiết kế bằng phần mềm) giảm 000 lần so
với VPN thiết kế bằng phần cứng N tscr n, độ tr bị tăng lên 0 lần, do đó
21
với mạng tốc độ cao các giải pháp bằng phần mềm sẽ làm ảnh hưởng rất
nhiều đến tốc độ đường truyền và hiệu năng mã hóa/giải mã của thiết bị mật.
Chính vì lý do này mà trong hệ thống mạng đòi hỏi băng thông lớn, tốc
độ đường truyền cao, yêu cầu thời gian thực, hoặc các hệ thống cùng lúc phục
vụ nhiều người sử dụng, đa dịch vụ, để tránh hiện tượng nghẽn cổ chai, suy
hao tốc độ trên đường truyền, nhiều giải pháp mã hóa dữ liệu bằng phần cứng
đã được ra đời như các chíp mã hóa riêng được sử dụng các công nghệ nền
tảng như: A IC, FPGA, I K…để tạo nên các hệ thống như mạng riêng ảo
bằng phần cứng, tường lửa bằng phần cứng được tích hợp trong các rout r.
Các sản phẩm mật mã được xây dựng trên phần cứng đã được sử dụng
khá rộng rãi ở nước ngoài và có những ưu, nhược điểm cơ bản như sau:
- Tốc độ xử lý cao, nâng cao được hiệu năng của băng thông khi mã hóa.
- Có khả năng hỗ trợ xử lý song song.
- Cùng lúc hỗ trợ được nhiều kết nối, bảo đảm cho nhiều dịch vụ.
- Có độ ổn định, độ tin cậy và tính an toàn về thiết kế cao.
- Việc cài đặt, quản trị đơn giản.
Nhược đi m
- Khả năng tùy biến thấp so với các chương trình thiết kế bằng phần mềm.
- Khả năng nâng cấp, cập nhật phiên bản mới tuy có thể thông qua việc
nâng cấp firmwar nhưng nói chung có nhiều hạn chế.
- Giá thành phần lớn các trường hợp cao hơn hẳn các sản phẩm thiết kế
bằng phần mềm, lệ thuộc vào nhà sản xuất.
- Không cho phép can thiệp vào hệ thống (do đã bị cứng hóa) do đó không
thể thay thế các thành phần mật mã bằng các thành phần của khách hàng,
thậm chí việc kiểm định, đánh giá tính năng, tham số kỹ thuật của thiết bị
cũng rất khó khăn.
- Khả năng kiểm soát thiết bị không cao, không thể loại trừ khả năng cài
22
chíp rệp hoặc các thành phần gián điệp th o dõi toàn bộ hệ thống thông qua
các phương tiện truyền thông từ xa.
1.2.6. Giao thức ảo mật cho mạng truyền số liệu a dịch vụ
êu cầu bảo mật mạng truyền số liệu đa dịch vụ đòi hỏi bảo vệ tất cả
các dịch vụ trên mạng, không phải một vài giao thức riêng biệt, về mặt kỹ
thuật, IPs c và L/TLS đều có những tính chất riêng biệt, tùy th o yêu cầu
bảo mật mà chọn lựa IPs c hay L/TLS. Trong đó nếu một dịch vụ cụ thể
cần được bảo vệ và được hỗ trợ bởi L/TLS thì SSL/TLS là một lựa chọn
tốt. Mặt khác nếu cần thiết bảo vệ tất cả các dịch vụ hoặc các tuyến liên lạc
gateway-tới-gateway thì IP c là lựa chọn tốt hơn [7]. Việc chọn giao thức
IP c cho bảo mật mạng đa dịch vụ là lựa chọn thích hợp. Mặc dù cả IP c
và SSL/TLS đều thực hiện được việc tạo ra và mã hóa các VPN, tuy nhiên,
khi ứng dụng trong mạng truyền số liệu đa dịch vụ, IP c là ứng cử viên sáng
giá [1], [4]. Với đặc điểm hoạt động tại lớp (lớp mạng), khi một đường
hầm bảo mật được thiết lập giữa 2 nút mạng bất kỳ, tất cả các dịch vụ chạy
trên nền IP ( EB, FTP, mail, VoIP) sẽ đều được bảo mật và có thể coi thiết
bị mạng tích hợp IP c tại lớp truy nhập là trong suốt đối với người dùng.
Điều này hoàn toàn thỏa mãn được yêu cầu bảo vệ thông tin trên một mạng
truyền số liệu đa dịch vụ về các tiêu chí bảo mật và giá thành. Thêm nữa, việc
triển khai IP c trên các thiết bị mạng hầu như không yêu cầu việc cài đặt,
cấu hình tại phía các máy trạm truy nhập hoặc máy chủ cung cấp dịch vụ.
Trong phạm vi luận án, tác giả sẽ nghiên cứu về giải pháp mật mã sử
dụng cho IPSec cài đặt trên thiết bị bảo mật mạng tại lớp truy nhập và đề xuất
các giải pháp cụ thể để nâng cao hiệu quả bảo mật cho mạng đa dịch vụ.
1.3. Giao thức ảo mật IPS c
1.3.1. Kiến tr c của IPS c
IP c là phương pháp sử dụng kỹ thuật mật mã để bảo vệ gói tin IP
23
(thuộc về các giao thức ở các lớp trên như TCP, UDP, ICMP, …). IP c là
một bộ các giao thức được thiết kế th o tiêu chuẩn và có tính mở [7], [9],
[31]. Căn cứ vào nhu cầu sử dụng và yêu cầu bảo vệ thông tin, chúng ta có thể
lựa chọn sử dụng một trong các giao thức IP c:
- ESP (Encapsulated Security Payload)
- AH (Authentication Header)
IP c thực hiện tại tầng IP, nó bao gói các gói dữ liệu lớp trên vào
trong gói dữ liệu IP c và thực hiện các chính sách xác thực, an toàn, bảo mật
cho gói IP c được đóng gói... IP c có thể được cài đặt để thực hiện trong
một trạm hoặc phối hợp với rout r hoặc Fir wall.
Hình 1.5. IPSec trong mô hình TCP/IP
Bộ giao thức IP c được xây dựng cho cả IPv và IPv (với IPv là
ngầm định bắt buộc). Bộ giao thức IP c gồm:
Encapsulating Security Payload - ESP: Thực hiện mã hóa dữ liệu, ký
dữ liệu của gói tin, khả năng chống lại kiểu tấn công r play và các dịch
vụ bảo đảm cho sự toàn vẹn của các gói tin trong giao thức IP.
Authentication header - AH: Ký dữ liệu của gói tin, xác thực lại nguồn
dữ liệu, khả năng chống lại kiểu tấn công r play.
Giao thức trao đổi thoả thuận khoá: IKEv2/IKEv1 (Internet Key
Exchange). Nhiệm vụ của giao thức trao đổi khoá là xác thực các thực
thể và thiết lập các tổ hợp an ninh (Security Association - SA), thỏa
thuận khoá phiên cho IP c [28], [52].
24
1.3.2. Modul thiết lập SA
Liên kết an ninh A cung cấp tập các chính sách, tham số, thuật toán,
giao thức cho quá trình đóng gói dữ liệu giữa các bên tham gia vào phiên
IP c. Tại mỗi đầu đường hầm IP c, A được sử dụng để xác định loại lưu
lượng cần được xử lý IP c, giao thức an ninh được sử dụng (AH hay E P),
thuật toán và khóa được sử dụng trong quá trình mã hóa và xác thực.
Hình 1.6. ối quan hệ giữa K và PSec
1.3.3. Giao thức ESP
Giao thức E P được định ngh a trong FC 827 và sau đó được phát
triển thành FC 20 8. Cung cấp dịch vụ bảo mật, tính toàn vẹn dữ liệu, xác
thực nguồn gốc dữ liệu nơi gửi (sourc auth ntication) và chống tấn công lặp
lại (r play attack).
Hình 1.7. Gói tin SP của PSec
25
E P sử dụng hàm mã khối (hệ mật khóa đối xứng) ở chế độ CBC
(Cipher Block Chaining – CBC) và véc tơ khởi điểm (Intitialization Vectos –
IV) để bảo mật dữ liệu. Lược đồ mô tả hàm mã khối dùng ở chế độ CBC để
mã hoá/giải mã dữ liệu như sau:
Hình 1.8. Thuật toán m khối làm việc ở chế độ B
Quá trình nhận một gói tin E P gồm có việc kiểm chứng số thứ tự của
gói tin, kiểm chứng tính toàn vẹn của dữ liệu và giải mã dữ liệu.
1.3.4. Giao thức AH
Giao thức tiêu đề xác thực AH được định ngh a trong FC 82 và sau
đó phát triển lại trong FC 20 2. Một gói tin AH như trong Hình 1.9 chứa
phần h ad r xác thực nguồn tin giữa các h ad r của giao thức IP và TCP. AH
cho ta các dịch vụ an toàn trong việc bảo vệ toàn vẹn dữ liệu, xác thực nguồn
gốc dữ liệu và chống lại các tấn công kiểu lặp lại (kiểm tra sự phát lặp một
gói tin tới địa chỉ đích).
AH có khả năng xác thực, bảo toàn dữ liệu và địa chỉ mà không cần
đến mã hóa, đây là điểm khác với E P. Ngoài ra các gói tin trong giao thức
AH cũng không cần đến các phần đuôi do không cần có phần độn dữ liệu.
Hàm tóm lược được tạo ra bởi thuật toán xác thực được sử dụng để xác định
một cách duy nhất mỗi gói tin IP với một khóa mật cho trước.
26
Hình 1.9. Gói tin AH
1.3.5. Giao thức trao ổi kh a IKEv2 trong IPSec
Giao thức trao đổi khóa IKE (Int rn t K y Exchang ) [17], [28], [52] là
một giao thức được sử dụng để thiết lập một tổ hợp an toàn A ( curity
Association) giữa hai thực thể truyền thông trong bộ giao thức IP c. Mỗi A
chứa một tập các tham số cần thiết được sử dụng để bảo đảm an toàn dữ liệu
truyền thông (một chiều) giữa 2 thực thể (ví dụ: khoá mã, thuật toán mã hoá
được sử dụng ...). IKE vận hành ở tầng ứng dụng (trong không gian người
dùng – user space).
IKEv2 gồm 2 pha để thực hiện thỏa thuận tổ hợp bảo vệ cho IP c
[52].
Pha thứ nhất dùng để thiết lập liên kết an toàn giữa hai thực thể dùng
I AKMP (ký hiệu là I AKMP A). Pha thứ hai được dùng để thiết lập một
A cho hai thực thể dùng giao thức an toàn IP c được dùng bởi các phép
biến đổi AH và E P (ký hiệu là IP EC A) trong đó pha thực hiện các nội
dung sau:
- Th a thuận S K P S Bên khởi tạo đề nghị một vài phép biến đổi
an toàn và các thuộc tính nó mong muốn để dùng trong I AKMP A. au đó,
bên đáp ứng chọn để dùng một trong các đề nghị đó và thông báo các lựa
chọn cho bên khởi tạo. Các thuộc tính của I AKMP A là:
Thuật toán mã hóa và thuật toán băm (có thể dùng mã khối AE trong
chế độ CBC để mã hóa dữ liệu thuật toán băm dùng phép biến đổi xác
thực HMAC với hàm băm HA2 để xác thực dữ liệu).
Phương pháp xác thực và thông tin về nhóm Diffi -Hellman (xác thực
27
PKI X.509 RSA1024 bít nhóm Diffi -Hellman 1024, 2048 bít).
- Th a thuận khóa d ng lược đồ Diffie-Hellman: Khi đã thỏa thuận
được các thuật toán mã hóa được dùng (thuật toán mã, hàm băm, phương
pháp xác thực), các giá trị khóa công khai sẽ được trao đổi bằng giao thức
trao đổi khóa Diffi -Hellman với các tham số A 02 bít, 20 8 bít hoặc
ECC 192 bít, 233 bít, 283 bít, 384 bít,…[17].
1.4. Hạn chế của giải pháp ảo mật hiện tại và ề xuất hướng giải quyết.
1.4.1. Một số hạn chế của giải pháp ảo mật
Vấn đề mấu chốt đối với thiết bị bảo mật triển khai tại các điểm nút ở
lớp truy nhập đó là việc đảm bảo băng thông và tốc độ để bảo đảm cho nhiều
kết nối đồng thời. IP c có 2 giai đoạn ảnh hưởng tới tốc độ thực thi, thời
gian tính toán của giao thức và từ đó ảnh hưởng tới băng thông, làm giảm
hiệu năng cũng như thời gian thực hiện các thủ tục khi có nhiều kết nối bảo
mật di n ra đồng thời:
- Giai đoạn khởi tạo: Thiết lập các tham số an toàn và trao đổi khóa.
- Giai đoạn mã hóa/giải mã gói tin: ử dụng các thuật toán mã khối để
bảo vệ dữ liệu.
Khi số lượng kết nối cần bảo mật tương ứng với số lượng đường hầm
mật mã lớn, các thiết bị tích hợp IP c sẽ hoạt động không hiệu quả, có thể
gây ra các ảnh hưởng tới băng thông, tốc độ, độ ổn định cho hoạt động của
toàn mạng do một số vấn đề sau:
- Giao thức trao đổi khóa Diffie-Hellman sử dụng tham số RSA 2048 bít
[17] để đảm bảo độ an toàn nên ảnh hưởng đến tốc độ xử lý, tính toán. Hạn
chế này có thể được đề xuất thay các tham số của A bằng mật mã đường
cong elliptic (ECC).
- Thời gian mã hóa, giải mã chậm do độ phức tạp của các thuật toán mật
mã (chuẩn mã hóa dữ liệu AE ) [9], hoặc phương pháp cài đặt kể cả trên
28
phần cứng hoặc phần mềm chưa tối ưu. Hạn chế này có thể đề xuất bằng việc
nghiên cứu cải tiến thuật toán mã hóa và tối ưu khi thực hiện trên phần cứng.
1.4.2. Đề xuất các nội dung nghiên cứu của luận án
Trên cở sở nghiên cứu và khảo sát các công trình nghiên cứu trong và
ngoài nước được đề cập trong phần trên, luận án đề xuất một số giải pháp để
cải thiện hiệu năng, tốc độ tính toán và nâng cao hiệu quả bảo mật mạng
truyền số liệu đa dịch vụ như sau:
- Đề xuất kết hợp giao thức trao đổi khóa Diffi -Hellman trong IKEv2
với việc sử dụng mật mã đường cong elliptic (thay cho RSA) để giảm kích
thước khóa nhưng vẫn bảo đảm độ an toàn đồng thời nghiên cứu, phân tích,
chọn thuật toán nhân điểm của ECC, thực hiện cài đặt trên phần cứng để tăng
hiệu năng xử lý, giảm thời gian trao đổi khoá giữa các liên kết trong hệ thống.
- Nghiên cứu cải tiến thuật toán mã khối và tối ưu cài đặt theo tiêu chí
bảo đảm tính bảo mật an toàn, tăng hiệu năng về tốc độ mã hóa dữ liệu.
- Lựa chọn công cụ phần cứng, cài đặt mật mã (trao đổi khóa và thuật
toán mã hóa/giải mã) trên phần cứng để tăng hiệu quả xử lý, tốc độ tính toán
mã hóa/giải mã và nâng cao độ an toàn về thiết kế.
Với những nội dung cần giải quyết như trên, luận án sẽ góp phần giải
quyết một số hạn chế về bảo mật cho mạng truyền số liệu đa dịch vụ trong
tương lai và hướng tới bảo mật cho mạng truyền số liệu chuyên dùng.
1.5. Giao thức trao ổi kh a Diffie-Hellman kết hợp ECC
1.5.1. Đ t vấn ề
Mật mã đường cong lliptic (Elliptic Curve Cryptography: ECC) được
coi là một trong những thuật toán mật mã khóa công khai mới, ECC lần đầu
tiên được giới thiệu vào năm 99 bởi hai nhà toán học độc lập nghiên cứu là
N als Koblitz và Victor Mill r. Khi đó ECC chỉ được chấp nhận trong các
ứng dụng thương mại, nhưng không lâu sau đó ECC đã trở thành chuẩn và
29
được khuyến nghị bởi các tổ chức AN I, IEEE, I O và NI T. Kể từ đó ECC
đã gây được nhiều sự chú ý và được sử dụng rộng rãi hơn nhờ những đặc tính
ưu việt đó là độ bảo mật cao tương đương với các thuật toán khác nhưng với
kích thước khóa nhỏ hơn nhiều lần.
Độ an toàn của hệ thống mã hóa sử dụng đường cong lliptic dựa trên
điểm mấu chốt là tính phức tạp của bài toán logarit rời rạc trên nhóm các
điểm của đường cong lliptic. Không giống như bài toán logarit rời rạc trên
trường hữu hạn hoặc bài toán phân tích thừa số của số nguyên, bài toán logarit
rời rạc trên đường cong lliptic chưa có thuật toán để giải với thời gian tính
nhỏ hơn cấp lũy thừa.
Đối với mật mã khóa công khai, vấn đề được quan tâm nhiều nhất trong
vài năm trở lại đây chính là mật mã đường cong elliptic do một số ưu điểm
vượt trội của nó so với các thuật toán khác như A, Diffi -Hellman. Các
nghiên cứu đã chỉ ra rằng, để đảm bảo độ mật cho các thuật toán A và DH,
yêu cầu kích thước của khóa là phải rất lớn và không được nhỏ hơn 02 -bit
[13] ( một số tổ chức an ninh trên thế giới đã khuyến nghị sử dụng A có độ
dài khóa là 2048-bit). Để thực hiện yêu cầu này trên phần cứng sẽ đòi hỏi phải
tiêu tốn rất nhiều tài nguyên và thời gian tính toán. Trong vài năm trở lại đây,
hệ mật đường cong elliptic được sử dụng khá rộng rãi cho các ứng dụng chữ
ký số và trao đổi khóa thay thế cho các thuật toán ( A, DH). Ưu điểm chính
của ECC đó là:
- Với cùng mức độ an toàn thì khóa của ECC ngắn hơn rất nhiều so với
A, ví dụ ECC 0-bit khóa có mức bảo mật tương đương A 02 -bit
khóa; ECC 224-bit khóa có mức bảo mật tương đương A 2048-bit khóa
[13]. Điều này có ngh a là ECC sẽ tiêu tốn ít tài nguyên hơn A, phù hợp
với các ứng dụng trên phần cứng.
- Thuật toán ECC được cải thiện hơn về tốc độ xử lý cả trong việc thực
30
hiện trên phần mềm và phần cứng so với A.
Bảng . và Hình 1.10 đưa ra các kết quả và so sánh về độ an toàn của
các thuật toán mã hóa khóa công khai, trong đó thời gian tấn công vào khóa
được tính toán với giả thiết sử dụng phương pháp tấn công vét cạn khóa bằng
máy tính có tốc độ xử lý 06 phép tính trên 1s.
Do có kích thước khóa nhỏ và khả năng sinh khóa nhanh nên ECC rất
được quan tâm để áp dụng cho các ứng dụng trên môi trường giới hạn về
thông lượng truyền dữ liệu, giới hạn về khả năng tính toán, khả năng lưu trữ.
ECC thích hợp với các thiết bị di động kỹ thuật số cầm tay, điện thoại di động
và thẻ thông minh (smart card).
Bảng 1.1. So sánh kích thước khóa RS và với c ng độ an toàn [13]
Tỉ lệ kích thước kh a RSA : ECC
Kích thước kh a ECC
RSA/DLP
512
106
5:1
768
132
6:1
1024
160
7:1
2048
224
10:1
Thời gian c n tấn c ng vào kh a (vét cạn) (đơn vị: năm) 104 108 1011 1020 1078
21000
600
35:1
Hình 1.10. So sánh mức độ bảo mật giữa với RS /DS
31
Có nhiều ứng dụng được phát triển trên nền mật mã đường cong
lliptic, trong số đó phải kể đến là thuật toán chữ ký số ECD A, thuật toán
trao đổi khóa ECDH, ECMQV, ECHMQV, thuật toán mã hóa ECIE ... Các
ứng dụng này đều xây dựng trên nền ECC với phép tính mật mã cơ bản là
phép nhân vô hướng của một điểm trên đường cong với một số nguyên.
ng dụng mật mã đường cong elliptic ở nước ta cho bài toán bảo mật
hiện nay vẫn đang được nghiên cứu, do vậy mục đích đặt ra là nghiên cứu ứng
dụng ECC cho giao thức trao đổi khóa, đồng thời phân tích, đánh giá và thực
hiện một số phép tính nặng nhất của giao thức trên phần cứng nhằm tăng tốc
độ xử lý, tăng độ an toàn và hướng tới chuyên dụng hóa thiết bị mật mã.
1.5.2. Giao thức trao ổi kh a ECDH
Thuật toán trao đổi khóa Diffi -H llman trên đường cong lliptic
(ECDH) tương tự thuật toán trao đổi khóa Diffi -H llman thông thường trên
trường hữu hạn. ECDH cũng dựa vào nguyên lý của bài toán logarit rời rạc
nhưng áp dụng trên nhóm các điểm của đường cong lliptic [25]. Thuật toán
này dùng để thiết lập một hoặc nhiều khóa chung giữa hai đối tác A và B. Quá
trình trao đổi khóa dùng ECDH được thực hiện như sau:
ai bên thống nhất các tham số mi n của đường cong elli tic sẽ sử
dụng bao gồm: các hệ số a và b xác định đường cong E, số nguyên m xác định trường hữu h n GF(2m); một đi m cơ sở G(x, y) với cấp nguyên tố n. Ký
hiệu bộ tham số miền này là bộ 5 (a, b, m, G, n).
1: A chọn ngẫu nhiên một giá trị bí mật và tính điểm công
khai tức thì và gửi QA cho B.
2: B chọn ngẫu nhiên một giá trị bí mật và tính điểm công khai
tức thì và gửi QB cho A. Lúc này B đã nhận được QA sẽ tính ra
điểm chung (d ng làm khóa bí mật) .
32
3: Khi A nhận được QB sẽ tính ra điểm chung (d ng làm khóa bí mật)
.
Như vậy ta có thể nhận thấy để thực hiện giao thức ECDH, A phải thực
hiện phép nhân điểm , B phải thực hiện phép nhân điểm
, cả A và B tính khóa chung bằng phép nhân điểm
. Bản chất của phép nhân điểm k.P là cộng P với
chính nó k-1 lần, kết quả là một điểm Q trên đường cong. Một phương pháp
để thực hiện phép nhân điểm đó là sử dụng phép cộng điểm và phép nhân đôi
điểm lặp đi lặp lại nhiều lần. Phương pháp này được gọi là nhân đôi và
cộng .
Hình 1.11. uá trình trao đ i khóa theo giao thức D
Ví dụ: Tìm Q = k.P. Nếu k = 23 thì: k.P = 2{2[2(2P) + P] +P } + P
Phép cộng và gấp đôi điểm: [19]
Phép cộng đi m: Xét 2 điểm: P = (x1, y1) E( ) và Q = (x2, y2)
E( ), với P ≠ ±Q, phép cộng R = P + Q = (x3, y3) trong đó P, Q, R
); Khi đó E(
với (1.1)
Ph nhân đôi: Xét P = (x1, y1) E( ), khi P ≠ -P thì 2P = (x3, y3)
33
và: (1.2)
với
Như vậy, thực hiện mật mã đường cong lliptic chính là thực hiện phép
nhân điểm và đây cũng là phép tính tiêu tốn thời gian và tài nguyên nhất trong
ECC, bản chất của việc thực hiện phép nhân điểm chính là thực hiện các phép
toán của biểu thức (1.1), (1.2), trong đó phải thực hiện các phép toán trên
trường cơ sở như: nhân, chia, nghịch đảo, cộng, trừ các số nguyên.
Trên thế giới có nhiều nghiên cứu về lý thuyết để tối ưu và đánh giá
hiệu quả thực hiện các thuật toán nhân điểm như công trình của các tác giả
Darrel Hankerson, Alfred Menezes, Scott Vanstone (2004) [19]; Praful
Kumar Singh, Mrityunjay Kumar Choudhary (2013) [50] đã nghiên cứu và so
sánh đánh giá hiệu quả thực hiện một số thuật toán nhân điểm như: nhân điểm
th o nhị phân, nhân điểm th o phương pháp triển khai một số nguyên dương
th o thuật toán NAF,… hoặc các công trình thực hiện cứng hóa phép nhân
điểm như các tác giả Moncef Amara, Amar Siad (2011) [44]; Sandeeps,
Hameen Shanavas I (2012) [56] để tăng tốc cho việc thực hiện phép nhân
điểm trên ECC nhằm tăng nhanh thời gian trao đổi khóa giữa các liên kết
trong hệ thống. Tuy nhiên, hầu hết các công trình công bố không mô tả cụ thể
phương pháp thực hiện, chủ yếu là công bố kết quả, mặt khác việc so sánh kết
quả thực hiện cũng chỉ mang tính chất tương đối, vì các nghiên cứu khi thực
nghiệm được thực hiện ở các điều kiện công nghệ (phần cứng, phần mềm,
công cụ sử dụng, tốc độ, hệ quy chiếu…), môi trường hoạt động khác nhau.
Vì vậy, luận án nghiên cứu đánh giá một số thuật toán nhân điểm và chọn
thuật toán để thực hiện cài đặt cụ thể trên phần cứng nhằm mục đích tăng tốc
độ cho quá trình tính toán phép nhân điểm trong giao thức ECDH.
34
1.6. C ng nghệ cứng h a mật mã
Trong [39] đã đưa ra những ưu điểm của FPGA đối với mật mã: Những
đặc tính của FPGA cùng khả năng cấu hình lại làm FPGA trở nên thuận lợi
khi thực hiện các thuật toán mật mã đó là:
- Dễ dàng chuy n thuật toán: Các giao thức mật mã hiện đại là các thuật
toán độc lập, rất đa dạng và thường xuyên thay đổi. Với khả năng cấu hình
lại, FPGA cho phép các thuật toán, sau khi đã cứng hóa vẫn có khả năng thay
đổi mà không làm tăng giá thành.
- Dễ dàng nâng cấ thuật toán: Việc nâng cấp thuật toán cần thiết trong
các trường hợp sau: khi thuật toán hiện tại đã bị phá khi thuật toán đã quá
hạn sử dụng khi ra đời thuật toán mới.
- ang l i hiệu quả v cấu trúc: Một cấu trúc hardwar có thể hiệu quả
hơn nhiều nếu nó được thiết kế với một bộ các thông số xác định. Với FPGA
có thể thiết kế để tối ưu cấu trúc cho bộ tham số xác định của từng thuật toán
khác nhau.
- iệu quả v tài nguyên: Có thể cấu hình lại FPGA để cùng một chip
nhưng mỗi thời điểm thực hiện một thuật toán khác nhau. Ví dụ trong một
phiên liên lạc, khi thiết lập khóa chung FPGA có cấu trúc để thực hiện thuật
toán khóa công khai khi thực hiện mã hóa/giải mã, FPGA có cấu trúc để thực
hiện mã hóa/giải mã sử dụng thuật toán khóa riêng.
- Khả năng sửa đ i thuật toán: Với ngành mật mã thì yêu cầu sửa đổi
thuật toán là bắt buộc. Với FPGA, tất cả những điều đó đều d dàng thực
hiện. Hai đặc điểm dưới đây không chỉ với mật mã mà chung cho mọi l nh
vực khác:
- Thông lượng: Mặc dù so với A IC thì FPGA chậm hơn, nhưng nhanh
hơn rất nhiều so với giải pháp phần mềm.
- iệu quả v giá thành: Thời gian và giá thành phát triển của FPGA
35
thấp hơn so với A IC (Tuy nhiên với số lượng lớn thì A IC có giá thấp hơn).
Mặc dù ở nước ngoài, các nghiên cứu về ứng dụng công nghệ FPGA
trong bài toán an toàn và bảo mật thông tin đã có nhiều kết quả xuất sắc được
công bố và áp dụng. Tuy nhiên để áp dụng ở Việt Nam cần phải có những
nghiên cứu tiếp th o để phù hợp với yêu cầu thực ti n và yêu cầu sử dụng
th o quy định của pháp luật về Cơ yếu.
1.7. Kết luận Chương 1
Trên cơ sở nghiên cứu tổng quan về mạng truyền số liệu, cơ chế an
ninh, an toàn trong mạng và các yêu cầu đặt ra đối với bảo mật mạng truyền
số liệu đa dịch vụ cho thấy, việc bảo mật và nghiên cứu nâng cao hiệu quả
bảo mật thông tin trên mạng đáp ứng yêu cầu của mạng đa dịch vụ, tốc độ
cao, thời gian thực là cần thiết và cấp bách. Luận án đã đi sâu nghiên cứu giao
thức bảo mật IPSec và phân tích các yếu tố, yêu cầu cần phải nâng cao hiệu
quả bảo mật đáp ứng yêu cầu bảo mật cho mạng truyền số liệu tốc độ cao. Từ
đó đặt ra các nội dung cần giải quyết:
- Nghiên cứu về giao thức trao đổi khóa trong IPSec và đề xuất ứng
dụng mật mã đường cong lliptic (ECC) cho giao thức trao đổi khóa Diffi -
H llman trong giao thức bảo mật IP c thay thế cho thuật toán A nhằm
giảm độ dài khóa mã, nghiên cứu nâng cao hiệu quả thực hiện phép nhân
điểm của ECC để tăng hiệu năng xử lý, giảm thời gian trao đổi khóa mã (Nội
dung cụ th được trình bày trong chương 2).
- Đề xuất cải tiến, nâng cao hiệu quả thực hiện thuật toán mã hóa theo
hướng bảo đảm an toàn, tăng tốc độ, hiệu năng và giảm tài nguyên sử dụng
trong mã hóa/giải mã dữ liệu (Nội dung này được trình bày trong chương 3).
36
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 TRAO Đ I KH A
2.1. Phép nh n i m trên ường cong elliptic 2.1.1. Một số thuật toán nh n i m elliptic trên trường GF(2n) 2.1.1.1. Phép nhân điểm elliptic trên trường GF(2n)
Phép tính cơ bản và quan trọng nhất trong mật mã lliptic là phép nhân
vô hướng một điểm trên đường cong lliptic với một số nguyên dương (k.P
với k là số nguyên dương, P là một đi m trên đường cong lli tic). Trong
những năm gần đây, đã có nhiều thuật toán lý thuyết và phương án cài đặt
trên phần cứng được công bố [35], [38], [44], [47], [56], [57] để thực hiện
tăng tốc cho phép tính này. Trong số những thuật toán trên thì thuật toán nhân
điểm dựa trên khai triển một số nguyên th o thuật toán NAF là một trong
những phương pháp tính toán hiệu quả cho cài đặt trên phần cứng [19].
Thuật toán đơn giản nhất sử dụng cho tính toán phép nhân điểm là thuật
toán nhị phân. Tuy nhiên, thuật toán này hoạt động khá chậm vì cần nhiều số
lượng phép tính cộng điểm và nhân đôi lliptic. Thuật toán nhân điểm dựa
trên khai triển một số nguyên th o NAF đã có những cải tiến đáng kể khi
giảm được số lượng phép cộng điểm từ w-1 xuống 2*(w-1)/3 (với w là số bit 1
trong bi u diễn nhị hân của k) [19]. Thuật toán nhân điểm th o NAF dựa
trên ý tưởng phép cộng điểm và phép trừ điểm có hiệu quả tính toán tương
đương nhau, nên sử dụng khai triển th o NAF(k) thay vì sử dụng biểu di n
nhị phân của k. Trong phần này luận án trình bày phương pháp triển khai một
số nguyên th o NAF tính toán trực tiếp trong thực hiện phép nhân điểm, với
phương pháp này cho ta hiệu quả về thời gian tính toán và tài nguyên sử dụng
khi thực hiện phép nhân điểm trên phần cứng.
37
2.1.1.2. Một số thuật toán nhân điểm elliptic điển hình
Phép nhân vô hướng giữa một điểm trên đường cong E với một số
nguyên dương k, được xác định như sau: Q=k.P, với P là một điểm trên
đường cong E.
Thuật toán đơn giản nhất dùng để tính phép nhân vô hướng là thuật
toán nhị phân hay còn gọi là thuật toán nhân đôi và cộng
a) Thuật toán nhân đi m theo hương há nhị hân [19].
Thuật toán nhân điểm th o phương pháp nhị phân yêu cầu l-1 phép
nhân đôi và w-1 phép cộng điểm trong đó l: chiều dài chuỗi bit trong biểu
di n nhị phân của số nguyên k, w-1 là số các bit ‘ ’ có trong chuỗi bit.
Thuật toán 2.1. Nhân điểm th o phương pháp nhị phân
Input: Điểm P, số nguyên k có kích thước l bit .
Output: Q = k.P
Bước : Q ← O
Bước 2: vòng lặp đến 0
Bước 2. :
Bước 2.2: nếu thì
Bước : K t thúc vòng lặp
Bước : Trả về giá trị Q.
b) Thuật toán khai tri n một số nguyên theo N F [19]
Phép cộng điểm và trừ điểm có hiệu quả tương đương nhau trên trường
hữu hạn. Trên nếu thì ,
với GF(2n) thì do vậy tính toán phép cộng điểm và
trừ điểm có hiệu quả tương đương nhau trên , . Với thuật toán
NAF ta có thể biểu di n một số nguyên dương k th o dạng các số có dấu
38
trong đó hai số ki liên tiếp khác không.
Thuật toán khai triển một số nguyên dương th o NAF như sau:
Thuật toán 2.2. Khai triển một số nguyên dương th o NAF Input: ố nguyên dương k;
Output: NAF(k);
Thực hiện:
Bước : t c k
Bước 2: Gán tậ S <>
Bước : Trong khi c > 0 thực hiện vòng lặp:
3.1. Nếu c l thì
đ t u 2 - (c mod 4);
đ t c c – u;
3.2. Còn không thì:
u:= 0;
3.3. Kết thúc Nếu;
Bước : Thêm u vào tậ S
Bước 5: t c c/2
Bước : Kết thúc vòng lặp; Trả v tậ S
Tính chất của khai tri n một số nguyên theo N F.
(i) Với một số nguyên dương k, khai triển NAF(k) là duy nhất.
(ii) NAF(k) có số chữ số khác 0 ít nhất trong tất cả các biểu di n có dấu
của k.
(iii) Chiều dài của dãy NAF(k) lớn hơn so với chiều dài dãy biểu di n nhị
phân của k.
(iv) Nếu l là chiều dài dãy NAF(k) thì
39
(v) Mật độ số chữ số khác không trong biểu di n NAF của một số có chiều
dài l bit xấp xỉ l/3.
c) Thuật toán nhân đi m dựa trên khai tri n theo N F [19]
Thuật toán nhân điểm dựa trên khai triển th o NAF như sau:
Thuật toán 2.3. Nhân điểm dựa trên khai triển th o NAF Input: Điểm P, số nguyên k có kích thước l bit ,
;
Output: Q = k.P
Thực hiện:
Bước : ử dụng thuật toán 2.2 để tính khai triển một số nguyên dương
Bước 2: Q ← O
Bước : vòng l p j = l - 1 tới 0 thực hiện
3.1. ← 2
.2. Nếu kj = 1 thì ← + P
. . Nếu kj = -1 thì ← – P
Bước : Kết thúc vòng lặp;
Trả về k t quả Q;
Với tính chất thứ (v) của khai triển một số nguyên th o NAF ta có thể
thấy với một số k có biểu di n nhị phân với chiều dài l, giả sử số bit tương
đương số bit 0 là l/2 thì biểu di n th o thuật toán NAF(k) có số bit khác không
là l/ , như vậy khi sử dụng nhân điểm dựa trên NAF số phép tính cộng điểm
sẽ là l/3, trong khi sử dụng thuật toán nhân điểm th o phương pháp nhị phân
số phép tính cộng điểm cần sử dụng là l/2. Điều này khẳng định thuật toán
nhân điểm dựa trên triển khai một số nguyên th o NAF hiệu quả hơn thuật
toán nhị phân về tốc độ tính toán.
Ngoài ra còn một số thuật toán khác sử dụng cho phép nhân điểm vô
40
hướng: thuật toán liding indow, thuật toán Montgom ry….
Nhận x t Trong thuật toán 2.3, Bước cần tính khai triển một số
nguyên dương th o thuật toán 2.2. Các giá trị của NAF(k) cần được lưu lại
sau đó thực hiện thuật toán nhân điểm th o thuật toán 2.3. Quá trình này làm
cho thuật toán không được tính toán trực tiếp và cần không gian bộ nhớ để
lưu các giá trị sinh ra từ NAF(k), các giá trị này không có ý ngh a trong tính
toán thuật toán nhân điểm vì kết quả cuối cùng cần tính là kết quả Q= k.P. Vì
vậy trong phần sau, luận án sẽ trình bày thuật toán nhân điểm dựa trên triển
khai một số nguyên th o NAF tính toán trực tiếp.
2.1.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
Trong nội dung này, luận án sẽ đánh giá thuật toán nhân điểm dựa trên
triển khai th o NAF được tính toán trực tiếp [35] không cần lưu trước các
tham số biểu di n NAF(k) (bỏ qua Bước trong thuật toán 2.3) và đề xuất
thay đổi cách tính toán giá trị c (thuật toán 2.2) th o phương pháp xét giá trị
trực tiếp để thuận lợi cho việc cứng hóa thuật toán.
2.1.2.1. Thuật toán
Trên cơ sở thuật toán 2.2 và 2.3, thuật toán nhân điểm dựa trên khai
triển th o NAF tính toán trực tiếp được trình bày như sau:
Thuật toán 2.4. Nhân điểm dựa trên khai triển th o NAF tính toán trực tiếp
Input: Điểm P, số nguyên k có kích thước l bit , ;
Output: Q = k.P;
Thực hiện:
Bước : t c k P0 :=P
Bước 2: Đặt Q = O;
Bước : Trong khi c > 0 thực hiện vòng lặp:
41
3.1 N u c0=1 thì:
3.1 .1 N u c1 = 0 thì :
c= c - 1;
Q := Q + P0;
3 .1.2 Còn không (c1 = 1 )thì:
c := c + 1;
Q := Q – P0;
3.1.3 Kết thúc N u;
3.2 Kết thúc N u;
Bước : P0:=2P0
Bước 5: c := c/2;
Bước : Kết thúc vòng lặp;
Trả về giá trị: Q;
2.1.2.2. Đánh giá thuật toán 2.4 so với thuật toán 2.3
a) Nếu b qua các bước tính liên quan đến đi m , thì thuật toán 2.4
chính là tri n khai N F của số nguyên k.
Ta thấy Bước của thuật toán 2.4 chính là Bước của thuật toán 2.2.
Bước 2 của thuật toán 2.2 chỉ để lưu biểu di n th o NAF của k.
Bước của thuật toán 2.4 chính là Bước của thuật toán 2.2.
Ta có: c mod 4 = c1c0, trong đó c0 là bit có trọng số bé nhất của biểu
di n nhị phân của c. Thay vào bước . của thuật toán 2.2 ta có: c lẻ => c0 =
, do vậy u := 2 - (c mod 4) = 2 - {01,11} ={1,- 1} => c ={c-1, c+1} tương
ứng với bước . . và . .2 của thuật toán 2.4. Với phương pháp xét trực tiếp
giá trị của c như trên sẽ thuận lợi hơn trong việc cứng hóa thuật toán.
Bỏ qua Bước của thuật toán 2.2, bước 5 của hai thuật toán là như
nhau. Như vậy nếu bỏ qua các phép toán liên quan đến điểm Q, thuật toán 2.4
42
chính là triển khai th o NAF của số nguyên k th o thuật toán 2.2.
b) Kết quả thực hiện thuật toán 2.4 chính là h nhân đi m theo thuật
toán 2.3 mà không cần tậ S đ lưu bi u diễn theo N F của số nguyên k.
Với thuật toán 2.4, quá trình tính toán phép nhân điểm không cần tính
toán trước NAF(k). Việc tính toán NAF(k) được thực hiện song song với quá
trình tính toán phép nhân điểm. Quá trình khai triển NAF được thực hiện
thông qua việc kiểm tra các bit số 0 (bit có trọng số nh nhất LSB) và bit số
trong biểu di n nhị phân của k. Với thuật toán 2.4, việc thiết kế thuật toán trên
phần cứng hoàn toàn có thể thực hiện trực tiếp, không cần tính toán trước biểu
di n th o NAF của số nguyên k, đồng thời không cần sử dụng thêm bộ nhớ để
lưu biểu di n NAF(k) (tập S trong thuật toán 2.2).
c) Hiệu quả thực hiện của thuật toán 2.4 so với thuật toán 2.3
V m t xử lý dữ liệu: Chi phí để triển khai một số nguyên th o NAF
của thuật toán 2.3 và 2.4 là như nhau (chỉ khác là trong thuật toán 2.3 triển
khai th o NAF được tính toán trước, còn trong thuật toán 2.4 triển khai NAF
được tính toán trong quá trình thực hiện phép nhân điểm). Tuy nhiên thuật
toán 2.4 có lợi thế sử dụng trực tiếp kết quả triển khai NAF, trong khi thuật
toán 2.3 phải truy cập bộ nhớ để lấy kết quả tính NAF, điều này làm cho chi
phí của thuật toán 2.3 cao hơn thuật toán 2.4.
V tài nguyên sử dụng: Do phải lưu trước biểu di n th o NAF của số
nguyên k nên thuật toán 2.3 cần bộ nhớ để lưu giữ các giá trị của NAF(k).
T m lại: Thực hiện cài đặt thuật toán 2.4 trên phần cứng vừa hạn chế
được tài nguyên thiết kế khối nhân điểm, vừa tăng được tốc độ quá trình tính
toán phép nhân điểm so với thuật toán 2.3.
Việc phân tích thiết kế, mô phỏng, kiểm tra và so sánh đánh giá kết quả
cài đặt phép nhân điểm th o thuật toán triển khai NAF trực tiếp trên FPGA sẽ
được thực hiện trong mục 2.3.
43
2.2. X y dựng c ng thức tính số xung nhịp máy trung nh cộng hai
số nguyên khi thực hiện trên ph n cứng
Khi thực hiện hệ mật ECC, các phép tính toán số học trên các số
nguyên lớn luôn là phép tính quan trọng và nặng nề nhất. Để đánh giá được
mức độ tiêu tốn tài nguyên cũng như tốc độ thực hiện của các phép toán này,
luận án nghiên cứu đề xuất một phương pháp tính toán tính tương quan giữa
xung nhịp máy và phép cộng hai số nguyên khi thực hiện trên phần cứng.
2.2.1. Cơ sở ề xuất
Khi thực hiện tính tổng hai số nguyên X, [0, 2k) bằng mạch cộng
m-bits thì số nhịp máy cần thiết để thực hiện phép cộng này, được ký hiệu là
flops(X, ), sẽ là một số xác định. Tuy nhiên nếu ký hiệu F(k) là số nhịp máy để thực hiện phép cộng hai số nguyên trong miền [0, 2k) thì đây sẽ là một đại
lượng ngẫu nhiên [5]. Ký hiệu AAF(k) là số nhịp máy trung bình để thực hiện phép cộng hai số nguyên trong miền [0, 2k) và AAF(k) cũng chính là giá trị
kỳ vọng của đại lượng F(k). Chúng ta sẽ mô tả hoạt động của mạch cộng làm
cơ sở cho việc xác định các giá trị flops(X, ) cũng như phân phối xác suất
của đại lượng F(k), cách tiếp cận và các công cụ được sử dụng để tìm các giá
trị AAF(k). Trên cơ sở kết quả tính toán được về các giá trị AAF(k), luận án sẽ
xây dựng và chứng minh kết quả tổng quát về giá trị AAF(k).
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)
2.2.2.1. Hoạt động của mạch cộng m-bits và trạng thái các thanh ghi sau
mỗi nhịp máy
Mạch cộng bao gồm thanh ghi A được gọi là thanh ghi tổng (th o ngh a
giá trị tổng sẽ được lưu trong thanh ghi này khi mạch dừng hoạt động) còn C
được gọi là thanh ghi điều khiển (mạch sẽ dừng khi tất cả các bít trong thanh
ghi này bằng 0) [5].
Cho A và C là hai thanh ghi m-bits với m>k. Để tính tổng X+ với X,
44
Y [0, 2k), xâu m bít biểu di n nhị phân của hạng tử thứ nhất đưa vào thanh
ghi A còn của hạng tử thứ hai đưa vào thanh ghi C. Tức là nếu biểu di n nhị
phân của X và lần lượt là
X = (xm1, ..., xk, xk1, ..., x1, x0)2 (2.1)
và
Y = (ym1, ..., yk, yk1, ..., y1, y0)2 (2.2)
thì bít thứ i (i=0, ..., k) của các thanh ghi A và C tương ứng, ký hiệu là A[i] và
C[i], là A[i] = xi và C[i] = yi. (2.3) Chú ý: Do X, Y [0, 2k) nên trong vế phải của (2. ) và (2.2) ta luôn có xs =
ys = 0 với mọi sk.
Mỗi nhịp máy các giá trị ở bít thứ i của A và C được xử lý tại một khâu
tương ứng, bit tổng (không nhớ) được đưa vào bít thứ i của A còn bit tràn
được đưa vào bit thứ i+ của C. Khi thanh ghi C có trị tất cả các bít bằng 0 thì
giá trị X+ có biểu di n nhị phân chính là các bít tương ứng của thanh ghi A.
Ký hiệu A', C' và A", C" là trạng thái của hai thanh ghi A và C trước và
sau một nhịp máy nào đó thì:
(2.4)
Ví dụ 2.1. Tính tổng hai số nguyên trong [0, 2) với A, C là các thanh ghi
6=bits. X = 27, Y = 21.
f
0
1
2
3
4
5
A 011011
001110
101100
101000
100000
110000
C
010101
100010
000100
001000
010000
000000
Trạng thái của các thanh ghi A và C sau f (f = 0, , ...) nhịp máy
X = 1, Y = 15.
Trạng thái của các thanh ghi A và C sau f nhịp máy
0
1
2
3
4
5
f
000001
001110
001100
001000
000000
010000
A
001111
000010
000100
001000
010000
000000
C
45
2.2.2.2. Phân phối xác suất của đại lượng F(k)
Tính chất: F(k) là một đ i lượng ngẫu nhiên nhận giá trị nguyên từ 0 đến
k+1 có hân bố
Prob(F(k)=f) = (f=0, 1, ..., k+1). (2.5)
trong đó, N(k,f) = #{(X, ): X, [0, 2k) và flops(X,Y) = f}.
hứng minh
Với = 0 thì trạng thái của thanh ghi C có giá trị tất cả các bít bằng 0
vì vậy mạch dừng và điều này có ngh a flops(X,0) = 0. (2.6)
Với mọi f = , 2, ..., k+ lấy X = và = 2f1 thì trạng thái đầu
tiên của C là có đúng f1 bít từ các vị trí thấp nhất còn của A chỉ có đúng
một bít ở vị trí thấp nhất. Như vậy flops(1, 2f1 1) = f (f = 1, 2, ... (2.7)
Bây giờ ta sẽ chứng tỏ với mọi X, [0, 2k) thì flops(X,Y) k+1 (2.8) Thật vậy, do X, Y < 2k nên X+Y < 2k+1 , vì vậy quá trình thực hiện của
mạch cộng thanh ghi C có các bít chỉ xuất hiện ở k+ vị trí thấp nhất. Th o
công thức (2.4) sau mỗi nhịp máy thì số bít thấp nhất bằng 0 của C sẽ tăng
thêm (do phép dịch trái vị trí) cho nên nhiều nhất là k+ nhịp thì C sẽ
không còn bít và đương nhiên phép cộng đã hoàn thành. Như vậy, các kết
quả (2.6), (2.7) và (2.8) đã chứng minh tính đúng đắn của tính chất.
Từ X, [0, 2k) nên ta có 2k2k = 4k cặp (X, ) khác nhau và từ định
ngh a của giá trị N(k,f) ta có (2.5) và tính chất đã được chứng minh.
Ví dụ 2.2. Với k=2 ta có
N(2,0) = gồm các cặp (0,0), ( ,0), (2,0) và ( ,0).
N(2, ) = 5 gồm các cặp (0, ), (0,2), (0, ), ( ,2) và (2, ).
46
N(2,2) = 5 gồm các cặp ( , ), (2,2), (2, ), ( ,2) và ( , ).
N(2,3) = 2 gồm các cặp ( , ) và ( , ).
f
0
1
2
3
Prob(F(2)=f) 4/16
5/16
5/16
2/16
Bảng phân phối của F(2) là
AAF(2) = = .
2.2.2.3. Cách ti p cận và công cụ để tính giá trị AAF(k)
Để tính AAF(k) có hai tiếp cận để thực hiện đó là tính đúng giá trị này
trong trường hợp k< 5 và tính gần đúng nó trong trường hợp ngược lại.
a) ông thức tính đúng giá trị F(k)
Th o công thức (2.5) ta có công thức sau để tính đúng giá trị AAF(k):
C ng thức tính ng giá trị AAF(k) AAF(k) = (2.9)
trong đó Total(k) là t ng số nhị máy cần thiết đ thực hiện
toàn bộ 4k h cộng các số nguyên trong mi n [0, 2k).
Thật vậy, AAF(k)= E(F(k)) = = =
Như vậy công thức (2.9) đã được chứng minh.
b) ông thức tính gần đúng giá trị F(k)
Theo [6] khi khảo sát một đại lượng ngẫu nhiên X nào đó người ta tiến
hành M phép thử (quan sát giá trị nhận được của X), giả sử trong phép thử thứ
được gọi là kỳ i, giá trị nhận được của X là xi (i=1, ..., M). Khi này
vọng mẫu, M được gọi là kích thước mẫu và như một hệ quả của định lý
Markov ta có với mọi >0 nhỏ tùy ý thì
47
= 1 (2.10)
Áp dụng cho X=F(k) ta có
= 1 (2.11)
Từ (2.11) ta có thể lấy là giá trị gần đúng của AAF(k) và chứng
minh tương tự như cho công thức (2.10) ta có:
C ng thức tính g n ng giá trị AAF(k) là AAF(k) (2.12)
trong đó, Total(k,M)= là t ng số nhị máy cần thiết đ thực
hiện h cộng các số nguyên được lấy một cách ngẫu nhiên trong mi n [0, 2k).
Biểu thức vế phải = trong công thức (2.12) được ký
hiệu là AAF(k,M).
2.2.2.4. Đánh giá |AAF(k)AAF(k,M)|
a) ơ sở lý thuyết
Trong [6] cho biết với M khá lớn ta có thể sử dụng công thức sau:
= 2(t). (2.13)
trong đó với Xi là các đại lượng cùng phân phối và độc lập với
nhau.
Th o tính chất của kỳ vọng và phương sai ta có: E( ) =m ; D( ) =
Nên (2.13) trở thành = 2(t). (2.14)
Đại lượng F(k) chỉ nhận hữu hạn giá trị do đó kỳ vọng AAF(k) và phương sai
48
của nó, ký hiệu là (k)2 là hữu hạn do đó th o công thức (2.14) ta có công
thức đánh giá tương ứng đó là:
= 2(t). (2.15)
Ví dụ 1: Với t = . , giá trị ( . ) tra được trong bảng A (trang 72 [5])
(Lưu ý: Với cùng một ký hiệu (t) nhưng trong tài liệu [36] chính là 2(t)
trong [6] là 0.999032) điều này có ngh a nếu lấy (k)= thì theo công
thức (2.15) ta có = 0.9990322.
b) Ước lượng giá trị (k)
Để áp dụng được công thức (2.15) việc quan trọng tiếp th o là xác định
được giá trị (k). Trong điều kiện F(k) chưa biết phân bố nên chúng ta chỉ có
thể ước lượng giá trị (k), mà điều cần thiết để ước lượng là một cận trên của
nó. Trong mục này sẽ đưa ra cách ước lượng nói trên, ta cần chứng minh bổ
đề sau:
Bổ đề 1: ho sự kiện ngẫu nhiên có hân hối xác suất Prob( ) , nếu
trong h thử độc lậ ta thấy sự kiện này xuất hiện đúng lần thì với
mọi >0 cho trước ta có Prob(1p > )= (2.16)
hứng minh
Ký hiệu B là sự kiện {trong M phép thử độc lập sự kiện A xuất hiện
đúng M lần} ta có Porb(B.(Prob(A)=p)) = pM (2.17)
Từ (2.17) ta có
Porb(B.(u ≤ Prob(A) ≤ v)) = (2.18)
Vì (0 ≤ Prob(A) ≤ ) là sự kiện chắc chắn nên từ (2.18) ta có kết quả
49
Porb(B) = Porb(B.(0 ≤ Prob(A) ≤ )) = (2.19)
Th o công thức xác suất có điều kiện [6] và đẳng thức (2.18), (2.19) ta suy ra:
Porb((u ≤ Prob(A) ≤ v)/B) = = (2.20)
Với u=0, v= - và trong biểu thức (2.20) thay Prob(A) bằng p ta có
Prob(1p > ) = =
như vậy (2. ) đã được chứng minh.
Ví dụ 2. Với M= 07 và =0.0000006908 ta có = 0.001.
Từ bổ đề ở trên ta thu được kết quả sau dùng để ước lượng cận trên
cho giá trị .
Hệ quả: ho đ i lượng ngẫu nhiên X có mi n giá trị là {0, 1, ..., n}. Nếu thực
hiện h thử độc lậ X chỉ nhận giá trị trong mi n [s,e] và (X)
.
Khi đó với mọi 0<<1 ta đánh giá
. (2.21) 2
Thì xác suất sai lầm lo i 2 của đánh giá trên là = .
hứng minh: Ký hiệu A = {X [x1, x2]} thì với giả thiết đưa ra, th o bổ đề
ta có Prob(1p > ) =
Điều trên có ngh a nếu ta kết luận " Prob(A) = p > 1 " thì kết luận này có
xác suất sai lầm loại 2 là . Ta có
E(X) = + + = (1 )s (2.22)
50
2 = + + (2.23)
Từ điều kiện (2.22) và E(X) nên các giá trị (i E(X))2 trong
tổng thứ hai trong vế phải của (2.23) thỏa mãn
(i E(X))2 < (e E(X))2 (e (1)s)2 (2.24)
còn trong tổng thứ nhất và thứ ba trong vế phải của (2.23) thỏa mãn
(i E(X))2 < (n E(X))2 (n (1)s)2 (2.25)
Thay (2.24) và (2.25) vào (2.23) ta được
2 +
và đây là điều cần chứng minh.
2.2.2.5. Thuật toán tính hàm flops(.,.).
Việc tính hàm flops(X, ), được thực hiện th o thuật toán 2.5
Thuật toán 2.5. Tính hàm flops(.,.) Input: X, Y là hai dãy k+1 bít biểu di n nhị phân số nguyên [0, 2k). Output: f 1. f=0;
2. while (C0) {
f f+1;
B A And C;
A A Xor C;
C Shiftleft(B);
}
3. return f.
Trong đó: And: toán tử nhân các bit tương ứng của hai thanh ghi; Xor: toán
tử xor các bit tương ứng của hai thanh ghi; Shiftleft: phép dịch trái vị trí.
51
2.2.3. Kết quả tính toán số AAF(k) và AAF(k,M)
2.2.3.1. Cách tính giá trị AAF(k)
Chúng ta sử dụng hàm flops(X, ) để tính số nhịp máy; trong trường hợp
k nhỏ, cụ thể k14, ta tiến hành đếm toàn bộ số nhịp máy cho tất cả 22k phép
cộng, giá trị thu được ký hiệu là Total(k) và khi này ta có
AAF(k) = Total(k)22k (2.26) Ngược lại, chọn phương pháp thống kê đó là tiến hành lấy ngẫu nhiên M= 07
cặp số nguyên X, [0, 2k), tính Total(k,107) tổng của 07 giá trị flops(X,Y)
trong mỗi lần lấy ngẫu nhiên đó và khi này:
AAF(k,107)=Total(k,107)107 (2.27)
Để phục vụ cho việc đánh giá sai số như đã đưa ra trong mục 2.2.2.4,
ngoài việc tính Total(k) chúng ta còn phải xác định hai tham số fs(k) và fe(k)
(dùng trong công thức 2.28) với fs(k) là giá trị đầu tiên và fe(k) là giá trị cuối
cùng có N(k,f)0.
Total(1) = 3, AAF(1) = 0.750000; Total(2) = 21, AAF(2)= 1.312500;
Total(3) = 113, AAF(3)= 1.765625; Total(4) = 547, AAF(4)= 2.136719;
Total(5) = 2509, AAF(5)= 2.450195; Total(6) = 11135, AAF(6)= 2.718506;
Total(7) = 48373, AAF(7)= 2.952454; Total(8) = 206991, AAF(8)= 3.158432;
Total(9) = 876061, AAF(9) =3.341908; Total(10)=3677047, AAF(10)=3.506705;
Total(11)=15334149, AAF(11)=3.655946; Total(12)=63619791, AAF(12)=3.792035;
Total(13)=262861101, AAF(13)=3.91693; Total(14)=1082389767, AAF(14)=4.032216;
2.2.3.2. K t quả duyệt toàn bộ 22k phép cộng khác nhau với k từ 0 đ n 14
2.2.3.3. K t quả thống kê với 107 mẫu cho mỗi k từ 15 đ n 4096
Bảng 2.1 ghi kết quả thống kê được của 2 giá trị k bao gồm k từ 5
đến k từ 9 đến 02 trong dạng k= 2i (i= ,..., 0) k từ 088 đến 20 8
trong dạng k= i (i= ,..., ) và k từ 2 7 đến 09 trong dạng k= 28i (i= ,..., ). Các số liệu được ghi trong bảng bao gồm: k, AAF(k, 07), fs(k),
52
fe(k) và (k).
Các số liệu AAF(k, 07), fs(k), fe(k) có được từ thống kê còn (k) được
ước lượng th o ví dụ mục 2.2.2.4 a) (để đạt được độ tin cậy 0.999032), giá
trị 2 được đánh giá th o công thức (2.28) còn = 0.000000 908 được lấy
th o ví dụ 2 mục 2.2.2.4 b) (để đảm bảo xác suất sai không quá 0.00 ). Tóm
lại (k) được tính th o công thức sau:
(2.28) (k) =
Bảng 2.1. Kết quả thống kê 112 giá trị của k
k
AAF(k,107)
k
AAF (k,107)
(k)
(k)
fs (k)
fe (k)
fs (k)
fe (k)
0
16
0.016039
288
8.4977167
4
30
0.026065
15
4.1399501
0
17
0.017042
320
8.6502339
4
34
0.030074
16
4.2386532
0
18
0.018044
352
8.7886398
4
33
0.029072
17
4.3320945
0
19
0.019046
384
8.9146046
4
31
0.027068
18
4.4200825
0
20
0.020049
416
9.0295142
4
31
0.027068
19
4.5026766
0
21
0.021051
448
9.1369311
5
30
0.025064
20
4.5807384
0
22
0.022054
480
9.2362259
5
31
0.026067
21
4.6553482
0
23
0.023056
512
9.3298887
5
31
0.026067
22
4.7249131
1
23
0.022054
544
9.4175886
5
30
0.025065
23
4.7923977
0
24
0.024059
576
9.5004907
5
32
0.027070
24
4.8568043
1
23
0.022054
608
9.5784751
5
33
0.028073
25
4.9183709
1
24
0.023056
640
9.6527988
5
32
0.027071
26
4.9770195
1
25
0.024059
672
9.7229998
5
34
0.029076
27
5.0349873
1
24
0.023056
704
9.7910969
5
31
0.026070
28
5.0876514
1
25
0.024059
736
9.8535831
5
34
0.029077
29
5.1409723
1
24
0.023056
768
9.9160444
5
34
0.029078
30
5.1919811
1
26
0.025061
800
9.9746949
5
33
0.028076
31
5.2410299
1
27
0.026063
832
10.0314707
5
33
0.028077
32
5.2881423
1
25
0.024059
864
10.0860103
6
31
0.025071
33
5.3332005
1
25
0.024059
896
10.1386865
5
32
0.027076
34
5.3778501
1
28
0.027066
928
10.1888623
5
34
0.029081
35
5.4209489
1
27
0.026064
960
10.2389178
6
35
0.029082
36
5.4637941
1
26
0.025061
992
10.2861217
5
32
0.027078
37
5.5035587
1
27
0.026064
1024
10.3310832
5
34
0.029083
38
5.5434711
1
26
0.025061
1088
10.4188155
6
33
0.027081
39
5.5817211
1
26
0.025061
1152
10.5008227
6
35
0.029087
40
5.6189158
26
0.025061
1216
10.5797636
1
6
34
0.028086
41
5.6558295
28
0.027066
1280
10.6537093
1
6
32
0.026085
42
5.6920440
27
0.026064
1344
10.7234819
1
6
33
0.027089
43
5.7259800
31
0.030073
1408
10.7905204
1
6
34
0.028093
44
5.7601316
27
0.026064
1472
10.8558274
1
6
34
0.028095
45
5.7937005
27
0.026064
1536
10.9169641
1
6
35
0.029099
46
5.8254527
26
0.025061
1600
10.9755471
1
6
33
0.027099
47
5.8576532
29
0.028068
1664
11.0313155
1
6
34
0.028102
48
5.8874458
28
0.027066
1728
11.0867588
1
6
34
0.028105
49
5.9189435
27
0.026064
1792
11.1397614
1
6
33
0.027107
50
5.9480496
33
0.032078
1856
11.1900650
1
6
32
0.026109
51
5.9780568
27
0.026064
1920
11.2385736
1
7
32
0.025112
52
6.0063450
26
0.025061
1984
11.2870085
1
7
30
0.023115
53
6.0338280
27
0.026064
2048
11.3325767
1
6
33
0.027119
54
6.0620954
29
0.028068
2176
11.4198410
1
7
32
0.025126
55
6.0884972
28
0.026064
2304
11.5021737
2
7
32
0.025134
56
6.1156798
28
0.026064
2432
11.5800870
2
7
35
0.028141
57
6.1410676
33
0.032078
2560
11.6550679
1
7
35
0.028149
58
6.1666951
27
0.025061
2688
11.7249838
2
7
35
0.028157
59
6.1914261
28
0.027066
2816
11.7917189
1
7
34
0.027167
60
6.2161775
33
0.031076
2944
11.8547999
2
7
33
0.026178
61
6.2402992
29
0.027066
3072
11.9175576
2
7
33
0.026188
62
6.2647414
29
0.027066
3200
11.9760081
2
7
31
0.024205
63
6.2882122
27
0.025061
3328
12.0320870
2
7
35
0.028205
64
6.3104244
29
0.027066
3456
12.0871429
2
7
32
0.025225
96
6.9032910
29
0.026064
3584
12.1393587
3
7
35
0.028226
128
7.3216611
29
0.026064
3712
12.1904356
3
7
33
0.026246
160
7.6464142
28
0.025062
3840
12.2395965
3
7
34
0.027254
192
7.9104545
29
0.026064
3968
12.2859574
3
7
33
0.026272
224
8.1340866
30
0.026064
4096
12.3345439
4
8
32
0.024299
256
8.3274409
53
2.2.3.4. Đánh giá về hàm AAF(k)
K t quả 1: Trong h m vi k từ 1 đến 4096 ta có bất đẳng thức sau với xác
suất tin cậy trên 0.998
log2(k) AAF(k) log2(k)+1 (2.29)
hứng minh: Như đã được đánh giá trong ví dụ mục 2.2.2.4 a) thì
|AAF(k)AAF(k,M)| < (2.30)
54
với 2(k) là phương sai của F(k) có xác suất tin cậy là 0.9990 22 hay nói một
cách khác là xác suất sai của bất đẳng thức (2.30) là không đến 0.00 . Mặt
khác th o bất đẳng thức (2.21) trong hệ quả trong mục 2.2.2.4 b) thì
2 (2.31)
Ví dụ 2 mục 2.2.2.4 b) cho thấy xác suất sai của bất đẳng thức trên trong
trường hợp M= 07 và =0.0000006908 là 0.001.
Cho nên xác định giá trị (k) th o công thức (2.28) ta có
(k) vì vậy ta có:
AAF(k,107)(k) AAF(k) AAF(k,107)+(k) (2.32)
Với xác suất sai không đến 0.002 và do vậy xác suất tin cậy của (2.32) là trên
0.998.
Từ số liệu thống kê về các giá trị AAF(k,107) và (k) tính được đưa ra
trong bảng 2. ta có được kết quả , tuy nhiên để d quan sát hơn luận án đã
thực hiện vẽ đồ thị của các hàm AAF(k, 07)(k), ký hiệu là AAF- ,
AAF(k,107)+(k), được ký hiệu là AAF +, log2(k) và log2(k)+1 trong hình
2.1. Như vậy, bất đẳng thức trên là đúng và kết quả đã được chứng minh.
Hình 2.1. ồ thị các hàm F(k,107)(k), AAF(k,107)+(k), log2(k) và
log2(k)+1 trong khoảng [1, 4096].
55
2.2.4. Ứng dụng của kết quả
Trong thực tế, phép cộng là phép tính cơ sở cho việc thực hiện các phép
tính như phép nhân điểm, lũy thừa, nghịch đảo trong các thuật toán mật mã.
Luận án đã xây dựng được một công thức tính tương quan gần đúng giữa
xung nhịp máy và phép cộng hai số nguyên khi thực hiện trên phần cứng, hay
nói cách khác là số xung nhịp máy tiêu tốn trung bình cho phép cộng hai số
nguyên. Kết quả này sẽ là cơ sở để đánh giá tính hiệu quả của một số phép
nhân số lớn trong các thuật toán mật mã nhằm lựa chọn thuật toán mật mã
hiệu quả nhất cho bài toán cụ thể.
2.3. Thực hiện thuật toán nh n i m trên ph n cứng FPGA
2.3.1. Phương pháp thiết kế chung
Phương há thiết kế Mô hình phân lớp thiết kế được chỉ ra trong
Hình 2.2. Quá trình thực hiện cài đặt thuật toán nhân điểm được thực hiện
trên phần cứng FPGA (mức , mức 2, mức ) với chíp XC7Z045-2FFG900C
của Xilinx
Hình 2.2. ô hình hân lớ thiết kế trên kit hát tri n Z 706 của Xilinx
56
Toàn bộ phần hoạt động của giao thức như thủ tục bắt tay, kiểm tra xác
thực và điều khiển giao tiếp vào ra dữ liệu của ứng dụng sẽ được thực hiện
trên bộ xử lý nhúng A M Cort x A9 của kit phát triển ZC70 của Xilinx.
2.3.2. Lựa chọn ường cong elliptic
Trong rất nhiều các đường cong elliptic, không phải đường cong nào
cũng có tính chất mật mã tốt. Trong nội dung luận án, đường cong lliptic trên trường GF(2n) th o khuyến nghị của NI T [48] được lựa chọn với các tham
số như sau: - Tham số cho đường cong trên GF(n).
- a thức bất khả quy (2.33)
- i m cơ sở trong đó
- Bậc của đi m P (là số nguyên tố)
Tọa độ điểm P:
ồng thừa số (cofactor) h 4.
k = 3F00000FFFFFFFF800003800F8000E0000E000000FFFFFFE00000FFFFFFC0007E000000
Giá trị k:
2.3.3. Mô hình cứng h a thuật toán nh n i m
2.3.3.1. Module cứng h a phép nhân điểm elliptic trên FPGA
Thực tế việc mô tả về lý thuyết, các cải tiến nhằm tăng tốc độ, hiệu
năng thực hiện và thực hiện trên phần cứng cho phép nhân điểm đã được
nhiều tác giả công bố, tuy nhiên phương pháp thực hiện cụ thể hầu như không
được các tác giả trình bày. Trong phần này, luận án sẽ xây dựng mô hình
thực hiện cứng hóa phép nhân điểm elliptic, mô hình này có thể áp dụng cho
cả 3 thuật toán 2.1, 2.3, 2.4 được nêu ở trên và luận án sẽ thực hiện mô phỏng
57
với cả 3 thuật toán để so sánh đánh giá kết quả thực tế.
Mô hình thực hiện cứng hóa phép nhân điểm như trên Hình 2.3, ta thấy
modul cứng hóa cần sử dụng các modul cộng điểm lliptic, modul nhân đôi trên trường GF(2m). Trong phần tiếp theo luận án sẽ giới thiệu phương
pháp cứng hóa các modul cộng điểm và modul nhân đôi trên trường GF(2m).
Hình 2.3. Sơ đồ thực hiện cứng hóa h nhân đi m elliptic.
Hình 2.4. Giao diện module cứng hóa h nhân đi m trên FPGA.
58
Giao diện của module cứng hóa thuật toán mật mã lliptic gồm các cổng sau:
- Mầm khóa vào ngẫu nhiên vào: k kích thước 28 -bít.
- Tọa độ điểm bí mật P: xP,yP có kích thước 28 -bít.
- Tọa độ điểm Q (kết quả h nhân): xQ, yQ có kích thước 28 -bít.
- Tín hiệu xung nhịp và r s t: clk, reset kích thước -bít.
- Tín hiệu điều khiển quá trình tính toán: start kích thước -bít. Bắt đầu
mã hóa mức ‘ ’, dừng quá trình mã hóa mức ‘0’.
- Tín hiệu báo trạng thái: done kích thước -bít. Tính xong mức ‘ ’, chưa
tính xong mức ‘0’.
2.3.3.2. Nguyên lý hoạt động của module
Các giá trị khởi tạo ban đầu của modul nhân điểm lliptic: start ‘0’,
reset ‘0’. Các tín hiệu trạng thái lúc ban đầu có giá trị: done ‘0’.
Để thực hiện tính toán nhân điểm lliptic ta phải r s t lại toàn bộ
modul phần cứng. Quá trình thực hiện bằng cách nâng tín hiệu r s t lên ‘ ’
sau đó hạ về ‘0’. Từ thời điểm này ta có thể bắt đầu quá trình tính toán phép
nhân điểm lliptic.
Trước hết cần ghi các tham số để tính toán k∙P bao gồm: Mầm ngẫu
nhiên k, tọa độ xP, yP của điểm cơ sở P. Các tham số này được ghi vào thanh
ghi đệm ở cổng k, xP, yP của modul . Tiếp theo là quá trình điều khiển tính
toán phép nhân điểm lliptic bằng cách nâng tín hiệu start lên ‘ ’, quá trình
tính toán phép nhân điểm bắt đầu. Khi tín hiệu trạng thái đầu ra done là mức
‘ ’ tức là quá trình tính toán phép nhân điểm k.P đã hoàn thành và cho giá trị
kết quả ở cổng xQ và yQ. Để thực hiện tính toán phép nhân điểm lần tiếp
th o ta thực hiện chuyển tín hiệu start xuống ‘0’, ghi các tham số mới vào
cổng k, xP, yP và lắp lại quá trình như phần trên.
2.3.3.3. Thi t k cứng h a phép cộng điểm elliptic trên FPGA
Phép cộng điểm lliptic được định ngh a trong [19] khi đó tọa độ điểm
59
;
được xác định theo (1.1) như sau:
Hình 2.5. Sơ đồ thực hiện cứng hóa h cộng đi m elli tic.
với
Hình 2.6. Giao diện module thực hiện h cộng đi m elli tic trên FPG .
Giao diện mức trên của module cứng hóa phép cộng điểm lliptic gồm:
- Tọa độ điểm P(x1,y1), Q(x2,y2): có kích thước 283-bít.
60
- Tọa độ điểm R (kết quả h cộng đi m): x3, y3 có kích thước 283-bít.
- Tín hiệu xung nhịp và r s t modul cộng điểm: reset, clk kích thước -bít.
- Tín hiệu điều khiển quá trình tính toán modul cộng điểm: start kích thước
1-bít. Bắt đầu tính toán mức ‘ ’, dừng quá trình tính toán mức ‘0’.
- Tín hiệu báo trạng thái modul cộng điểm: done kích thước -bít. Tính
xong mức ‘ ’, chưa tính xong mức ‘0’.
2.3.3.4. Thi t k cứng h a phép nhân đôi điểm elliptic trên FPGA
Mô tả module cứng hóa h nhân đôi elli tic.
Phép nhân đôi điểm lliptic được định ngh a trong [19] với tọa độ điểm
được xác định theo (1.2) như sau: ;
với
Hình 2.7. Sơ đồ thực hiện cứng hóa h nhân đôi đi m elli tic.
61
Hình 2.8. Giao diện module thực hiện h nhân đôi đi m elli tic trên FPG .
Giao diện mức trên của cor cứng hóa phép cộng điểm lliptic gồm:
- Tọa độ điểm P(x1,y1), Q(x2,y2): có kích thước 28 -bít.
- Tọa độ điểm (kết quả h cộng đi m): x3, y3có kích thước 28 -bít.
- Tín hiệu xung nhịp và r s t modul cộng điểm: reset, clk kích thước -bít.
- Tín hiệu điều khiển quá trình tính toán modul cộng điểm: start kích thước
1-bít. Bắt đầu tính toán mức ‘ ’, dừng quá trình tính toán mức ‘0’.
- Tín hiệu báo trạng thái modul cộng điểm: done kích thước -bít. Tính
xong mức ‘ ’, chưa tính xong mức ‘0’.
2.3.3.5. Thi t k cứng h a các module tính toán cơ s trên trường GF(2m)
Như Hình 2.5, Hình 2.7 ta thấy để thực hiện phép cộng điểm, phép
nhân đôi điểm lliptic trên FPGA cần thực hiện một số modul cơ sở sau:
phép cộng modulo 2, phép nhân, phép bình phương, phép chia/nghịch đảo trên trường GF(2m). au đây luận án sẽ trình bày chi tiết giải pháp cứng hóa các phép tính cơ sở trên trường GF(2m).
a) Ph cộng trong
Phép cộng trên là phép toán đơn giản nhất, thực chất là phép
cộng lật bit tương tự như phép XO trong phần mềm hoặc phần cứng. C A + B (mod α) (am-1 bm-1) αm-1 + … + (a1 b1) α + (a0 b0) (2.34) Thuật toán 2.6: Phép cộng trong GF(2m)
Input: 2 đa thức A(x), B(x) có bậc m-1
62
Output: C(x) = A(x) + B(x)
1. for i 0, m-1 do
2. C[i] A[i] B[i]
3. end for
4. return C
b) odule thực hiện h nhân trên trường GF(2m). Để thực hiện cứng hóa phép nhân đa thức trên trường GF(2m) cần thực
hiện các thuật toán sao cho quá trình nhân chỉ sử dụng các phần tử cơ bản
trong phần cứng là AND, XO tương ứng với các phần tử cơ bản trong
FPGA là CLBs và LUTs. Trong nội dung luận án sẽ thực hiện cứng hóa phép
nhân th o phương pháp nhân đan x n (Interleaved Multiplication) [33], [34]
Nhân đan x n là một thuật toán hiệu quả, d thực hiện trong phần cứng
Thuật toán sử dụng phép dịch bit và cộng modulo 2 là các thành tố cơ bản, kết
hợp với bước tính modulo lặp. Phương pháp thực hiện như sau:
Vì vậy sau khi khai triển biểu thức nhân trong ngoặc ta được kết quả
C(x) như sau:
(2.35)
X m xét phương trình trên ta thấy, để tính toán được C(x) ta cần tính
toán các phần tử có dạng : D(x) = x∙ (x) mod F(x)
Trong đó với . (2.36)
ử dụng tính chất với F(x) là đa thức
bất khả quy bậc m:
(2.37)
Thay giá trị xm vào phương trình D(x) ta được:
63
(2.38)
Với và . Như vậy việc tính toán
D(x) chỉ cần sử dụng các phép toán AND-2 đầu vào và XO -2 đầu vào, cụ
thể mạch AND-2 sử dụng để tính x.A(x) bao gồm (am-1 AND f0, am-1 AND f1,
..., am-1 AND fm-1) và phép XO -2 sử dụng để tính phép cộng modulo 2 giữa
hai vector X, Y tương ứng (x0 XOR y0, x1XOR y1, ...,xm-1 XOR ym-1,). Có hai
phương pháp thực hiện thuật toán nhân lặp [34] là M B và L B. Phương
pháp M B thực hiện nhân bit có trọng số cao nhất của B(x) trước và L B thực
hiện nhân bit có trọng số thấp nhất của B(x) trước. Trong luận án chỉ giới
thiệu phương pháp L B ( hương há SB c ng gần tương tự).
Phương pháp L B thực hiện xử lý từ bit có trọng số thấp nhất (b0) của
B(x) trước, nên quá trình xử lý có dạng sau: (2.39)
Thuật toán 2.7: Thuật toán nhân đan x n th o L B [34]
Input: Đa thức bất khả quy F(x) bậc m, hai đa thức (x) và B(x) thuộc
Output:
Thực hiện:
Bước 1:C(x) = 0;
Bước 2: Cho i = 0 đến m – thực hiện:
Bước 2.1: ;
Bước 2.2: ;
Bước 3: Trả về C(x).
Từ đây ta có thể xây dựng sơ đồ cứng hóa modul nhân đan x n như sau:
64
Hình 2.9. Sơ đồ cứng hóa phép nhân theo thuật toán nhân đan xen.
Hình 2.10. Giao diện module thực hiện h nhân đi m trên FPGA.
Tương tự như giải pháp thiết kế và điều khiển các modul cứng hóa
phép nhân điểm, cộng điểm. Modul thực hiện phép nhân trên GF(2m) gồm:
- Giá trị thừa số A, B: kích thước 283 bít.
- Kết quả phép nhân Z: kích thước 283 bít.
65
- Tín hiệu xung nhịp và r s t phần cứng modul nhân GF(2m): reset, clk
kích thước bít.
- Tín hiệu điều khiển quá trình tính toán phép nhân GF(2m): start kích thước
1 bít. Bắt đầu tính toán mức ‘ ’, dừng quá trình tính toán mức ‘0’.
- Tín hiệu báo trạng thái modul nhân GF(2m): done kích thước bít. Tính
xong mức ‘ ’, chưa tính xong mức ‘0’. Nguyên lý ho t động của module cứng hóa h nhân GF(2m).
Các giá trị khởi tạo ban đầu của modul cứng hóa phép nhân GF(2m):
start ‘0’, reset ‘0’. Tín hiệu trạng thái lúc ban đầu: done ‘0’.
Để thực hiện quá trình tính toán phép nhân GF(2m) ta phải r s t lại toàn
bộ modul phần cứng. Quá trình thực hiện bằng cách nâng tín hiệu reset lên
‘ ’ và sau đó chuyển về ‘0’. Từ thời điểm này quá trình tính toán sẽ được bắt đầu. Trước hết cần ghi các tham số để tính toán nhân GF(2m) vào module bao
gồm: giá trị thừa số A, B, các thừa số này được ghi vào thanh ghi đệm ở cổng A, B của modul nhân GF(2m). Tiếp theo tiến hành điều khiển quá trình tính toán phép nhân GF(2m) bằng cách nâng tín hiệu start lên ‘ ’, quá trình tính
toán phép cộng điểm bắt đầu. Khi trạng thái đầu ra done là mức ‘ ’ tức là quá trình tính toán phép nhân GF(2m) đã hoàn thành và cho giá trị kết quả ở cổng Z. Để thực hiện tính toán phép nhân GF(2m) lần tiếp th o ta thực hiện quá
trình lặp lại như phần trên.
c) odule thực hiện h chia/nghịch đảo trên trường GF(2m) Phép chia trên trường GF(2m) được biểu di n như sau: Cho hai phần tử G, H thuộc GF(2m). với , khi đó ta có thể biểu di n G, H ở dạng đa thức
G(x), H(x) như sau:
(2.40)
Khi đó kết quả của phép chia Z hay biểu di n ở dạng đa thức Z(x) được tính
66
như sau: (2.41)
Trong đó F(x) là đa thức bất khả quy bậc m có dạng sau:
(2.42)
Phép chia có thể ứng dụng để tính phép nghịch đảo trong trường hợp G(x)=1.
Hiện nay có hai thuật toán phổ biến nhất cho tính toán phép nghịch đảo là
thuật toán tìm ước số chung lớn nhất mở rộng (GCD: Greatest Common
Divisor) và thuật toán ITMIA (ITMIA: Itosh–Tsujii Algorithm).
Trong nội dung này, luận án chọn thực hiện phép chia/nghịch đảo th o
thuật toán GCD mở rộng (thuật toán Euclidean mở rộng). Thuật toán 2.8: Thực hiện phép chia/nghịch đảo trên GF(2m) [34]
Input:
Output:
Thực hiện:
Khởi t o a F(x), b (x), c ero, d G(x), al ha m,
beta := m-1.
Trong khi beta > 0 thực hiện v ng l
Nếu b(0) 0 thì
b :=b/x ; old_d(x) := d/x mod f(x), beta := beta - 1;
c n không thì
old_b := b; old_d := d, old_beta := beta;
b := (a+b)/x;
d:= (c+d)/x mod f(x).
Nếu al ha > beta thì
a := old_b, c := old_d, beta := alpha -1; alpha := old_beta;
c n không thì
67
beta := beta – 1;
Kết thúc nếu
Kết thúc nếu
Kết thúc l
Gán Z c Trả v Z ;
Các hệ số anpha và beta trong thuật toán trên sử dụng để xác định bậc
cao nhất của đa thức F(x) và H(x). Quá trình tính toán sẽ làm cho bậc của đa
thức H(x), G(x) giảm dần. Khi giá trị beta tiến đến ≤ 0 thì lúc này ta có thể
xác định được GCD và giá trị của phép chia/nghịch đảo.
Như vậy để thực hiện phép chia/nghịch đảo th o thuật toán Euclid an
mở rộng ta cần tính toán các hàm cơ sở sau:
và nếu b0 = 0 (2.43)
và nếu b0 = 1 (2.44)
Trong các biểu thức trên việc tính toán các biểu thức dạng và
là rất phức tạp. Ta sẽ x m xét việc thực hiện các biểu thức
này; Giả sử ta cần tính biểu thức có dạng:
Trong đó:
khi đó ta có:
sẽ có dạng sau: Do vậy
68
Từ biểu thức này chúng ta xây dựng sơ đồ thực hiện phép chia/nghịch
đảo trên trường GF(2m) như sau:
Hình 2.11. Sơ đồ thực hiện cứng hóa h chia/nghịch đảo GF(2m).
Hình 2.12. Giao diện module thực hiện h chia/nghịch đảo trên FPG .
Về giao diện đầu vào và quá trình điều khiển tính toán modul cứng hóa phép chia/nghịch đảo trên GF(2m) tương tự như các modul nhân GF(2m),
cộng điểm lliptic đã trình bày ở trên.
69
d) Module thực hiện h bình hương trên trường GF(2m) Phép bình phương trên trường GF(2m) được coi như là phép nhân giữa
hai phần tử A(x) và B(x), trong đó B(x) = A(x); ta có:
với
do đó ta có
Việc thực hiện tính toán C(x) [34] trong phần cứng là d thực hiện do
một nửa các hệ số của C(x) bằng 0, đó là những hệ số có chỉ số lẻ (2k+1) thể
hiện trên Hình 2.13. Khi thực hiện trên phần cứng ta ch n m bit 0 vào những vị trí hệ số lẻ của A(x) thì thu được A2(x).
Hình 2.13. Chèn bit 0 thực hiện h bình hương thông thường. au khi đã tính được A2(x) ta thực hiện bước modulo cho đa thức bất khả quy F(x). Quá trình thực hiện bằng việc nhân ma trận kết quả A2(x) với
ma trận rút gọn R. Ma trận rút gọn R được xây dựng từ các hệ số của đa thức
bất khả quy F(x). Với phương pháp này chúng ta biểu di n A2(x) như một ma trận cột có
kích thước . Ma trận được sử dụng để tính modulo bao gồm ma
trận rút gọn R có kích thước và ma trận đơn vị có kích thước
. Trong đó giá trị của ma trận R được xác định dựa trên đa thức bất khả
quy F(x) th o biểu thức sau:
70
(2.45)
Với nếu . Quá trình thực hiện bước rút gọn (modulo với F(x))
chính là nhân ma trận kết quả với (ma trận đơn vị ma trận rút gọn) như sau:
Như vậy một khi đa thức bất khả quy F(x) đã được lựa chọn và cố định
thì ma trận rút gọn là hoàn toàn xác định. Khi đó phép bình phương hoàn toàn
thực hiện bằng phép nhân ma trận giữa thừa số A và ma trận rút gọn.
Có nhiều phương pháp để thực hiện cứng hóa phép nhân GF(2m) trên
phần cứng, trong trường hợp này luận án thực hiện th o phương pháp thông thường. Quá trình thực hiện modul cứng hóa phép nhân GF(2m) được thực
hiện th o hai phần; Phần thứ nhất thực hiện phép bình phương thông thường
và phần thứ 2 thực hiện phép modulo giá trị bình phương cho đa thức bất khả quy F(x) để thu được kết quả là phép bình phương trên GF(2m).
Phép bình phương được thực hiện bằng cách ch n m bit ‘0’ vào các vị
trí lẻ của thanh ghi chứa giá trị A2(x).
Phần modulo cho F(x) được thực hiện bằng phương pháp nhân ma trận
giữa ma trận cột chứa giá trị A2(x) và ma trận rút gọn.
Như vậy, ta có thể thực hiện phép bình phương trên GF(2m) bằng một
ma trận các phần tử XO và AND trong phần cứng. Hình 2.14 là mô hình
71
thực hiện phép bình phương GF(2m) trên phần cứng.
Hình 2.14. Sơ đồ cứng hóa h bình hương trên trường GF(2m).
Hình 2.15. Giao diện module thực hiện h bình hương GF(2m) trên FPGA.
Giao diện modul cứng hóa phép bình phương GF(2m) bao gồm:
- Giá trị thừa số A: có kích thước 28 bít. - Kết quả phép bình phương GF(2m) B: có kích thước 28 bít.
Modul sử dụng các tín hiệu điều khiển và xung nhịp hoàn toàn được
thực hiện từ các mạch logic số, không dùng phần tử nhớ. Thời gian tính của
modul bằng thời gian tr của tín hiệu khi đi qua các mạch logic.
2.3.4. Kết quả thực hiện
ơ đồ thực hiện cứng hóa phép nhân điểm trên trường hữu hạn GF(2m)
dựa trên khai triển một số nguyên th o thuật toán NAF được thể hiện như trên
Hình 2.3, ta thấy modul cứng hóa phép nhân điểm cần sử dụng các modul
cộng điểm lliptic, modul nhân đôi và modul thực hiện khai triển th o
NAF(k). Giao diện modul thực hiện phép nhân điểm lliptic bằng công nghệ
72
FPGA được thể hiện trong Hình 2.4. Với bộ tham số được nêu tại mục 2.3.2,
quá trình thực hiện chạy mô phỏng đã thu được kết quả của phép nhân điểm
XQ =
078AE3D89F80FF177573EA7988587EF6E39D6F0D8A367E0A90A52C2B38A29
CB2E49F2B43
YQ =
00F074EEBBFA613BCA47F853ADCAEE29B924382D7FC7F177ADCA7D35B8
C7F61336084FC0
như sau:
K t quả trên đ được luận án kiểm tra chính xác theo bộ Testvector
kiểm tra trên trang web: http://point-at-infinity.org/ecc/nisttv
Bảng 2.2. So sánh kết quả cứng hóa h nhân đi m trên FPG
Tham số
ố thanh ghi ố LUTs
Thuật toán nhị ph n (TT 2.1) 6623 6497
Thuật toán nh n i m s dụng NAF (TT 2.3) 6920 7746
Thuật toán theo NAF tính trực tiếp (TT 2.4) 6629 7093
Thời gian tính toán
3380s
2583s
2575s
Tần số
100 MHz
100 MHz
100 MHz
Hình 2.16. Kết quả mô h ng h nhân đi m theo thuật toán nhị hân
73
Thời gian tính ECC- GF(2283) sử dụng thuật toán 2.1 (thuật toán nhị
phân) với tần số xung nhịp là 00 Mhz cùng bộ tham số K, Xp, Yq như trên
cần 3,380 ms có kết quả ở đầu ra.
Hình 2.17. Kết quả mô h ng nhân đi m theo thuật toán N F thông thường
Thời gian tính toán ECC- GF(2283) sử dụng thuật toán 2.3 (thuật toán
NAF thông thường) với tần số xung nhịp là 00 Mhz cùng bộ tham số K, Xp,
Yq như trên cần 2,583 ms có kết quả ở đầu ra.
Thời gian tính toán ECC- GF(2283) sử dụng thuật toán 2.4 (thuật toán
NAF tính toán trực tiếp) với tần số xung nhịp là 00 Mhz cùng bộ tham số K,
Xp, Yq như trên cần 2,575 ms có kết quả ở đầu ra, ta thấy hiệu quả thực hiện
cao hơn so với thuật toán NAF thông thường.
Hình 2.18. Kết quả mô h ng nhân đi m theo thuật toán N F trực tiế
Bảng 2.2 tổng hợp các kết quả thực hiện cứng hóa phép nhân điểm ECC- GF(2283) trên cùng một mặt bằng về công nghệ th o thuật toán nhị
74
phân (thuật toán 2.1) thuật toán NAF thông thường (thuật toán 2.3) và thuật
toán NAF tính toán trực tiếp (thuật toán 2.4). Kết quả mô phỏng trên FPGA
được thể hiện trên các Hình 2.16, Hình 2.17, Hình 2.18 trong đó:
- V tài nguyên Thuật toán 2.3 tiêu tốn tài nguyên nhiều nhất do phải
tính toán trước và lưu các tham số của NAF(k) . Thuật toán 2.1 và 2.4 sử dụng
tài nguyên gần tương đương nhau.
- V tốc độ tính toán: Thuật toán 2.1 có tốc độ tính toán chậm nhất,
thuật toán 2.4 có tốc độ tính toán nhanh nhất (kể cả so với thuật toán 2.3) do
tính toán và sử dụng trực tiếp các kết quả triển khai số nguyên dương th o
NAF. Kết quả thực nghiệm này đúng như mô tả lý thuyết.
ánh giá kết quả: Luận án đã so sánh, đánh giá hiệu quả thực hiện các
thuật toán nhân điểm và tiến hành cài đặt các thuật toán trên FPGA. Cài đặt
thực hành cũng cho thấy kết quả đạt được phù hợp với lý thuyết đã nêu, tốc
độ tính toán phép nhân điểm th o thuật toán nhân điểm sử dụng NAF trực tiếp
(thuật toán 2.4) nhanh hơn (8µs) và sử dụng ít tài nguyên hơn (xấp xỉ 9%) so
với thuật toán nhân điểm sử dụng NAF truyền thống (thuật toán 2.3) trên trường GF(2m).
2.4. Kết luận Chương 2
Phép nhân điểm có vai trò đặc biệt quan trọng trong mật mã đường
cong lliptic. Luận án đã nghiên cứu một số thuật toán nhân điểm trong ECC
và phân tích, đánh giá, so sánh về mặt hiệu năng thực hiện của các thuật toán,
từ đó lựa chọn thuật toán nhân điểm lliptic dựa trên triển khai một số nguyên
th o NAF tính toán trực tiếp giúp tăng tốc độ tính toán cho thuật toán, tiết
kiệm tài nguyên khi thực hiện trên phần cứng và giảm thời gian trao đổi khoá
trong hệ thống mật mã bảo mật mạng truyền số liệu đa dịch vụ.
Luận án đã thực hiện các bước cài đặt phép nhân điểm ECC trên trường GF(2283) th o thuật toán NAF tính toán trực tiếp trên FPGA; kết quả thu được
75
cho thấy: tốc độ tính toán phép nhân điểm th o thuật toán nhân điểm sử dụng
NAF trực tiếp nhanh hơn (8µs) và sử dụng ít tài nguyên hơn (xấp xỉ 9%) so
với thuật toán nhân điểm sử dụng NAF truyền thống. Đây là yếu tố rất quan
trọng để thực hiện cứng hóa mật mã đường cong lliptic như giao thức trao
đổi khóa ECDH, ECHQMV, thuật toán chữ ký số ECD A, GO T . 0-
2012,… nhằm giảm thời gian tính toán và tài nguyên của thiết bị mã hóa khi
thiết bị này phải thực hiện đồng thời nhiều kết nối bảo mật tại cùng một thời
điểm, đáp ứng yêu cầu phát triển ngày càng cao của mạng truyền số liệu với
yêu cầu tốc độ cao, đa dịch vụ, thời gian thực.
Bên cạnh đó, luận án đã xây dựng công thức tính số xung nhịp trung
bình cho phép cộng hai số nguyên khi thực hiện trên phần cứng làm cơ sở cho
việc đánh giá tính hiệu quả của một số thuật toán mật mã.
Trong chương , luận án sẽ đề xuất cải tiến thuật toán mã hóa dữ liệu
và tối ưu cài đặt nhằm nâng cao tốc độ xử lý mật mã khi thực hiện trên phần
cứng.
76
CHƯƠNG 3
NÂNG CAO HIỆU QUẢ THỰC HIỆN THUẬT TOÁN
MÃ H A DỮ LIỆU TRONG BẢO MẬT MẠNG TRUYỀN SỐ LIỆU
Trong chương , luận án đã giới thiệu về giao thức bảo mật trong mạng
truyền số liệu đa dịch vụ IPSec, trong đó E P sử dụng mã khối (hệ mật khóa
đối xứng) để bảo mật dữ liệu. Tốc độ thực hiện mã hóa, giải mã phụ thuộc
phần lớn tốc độ thực thi của thuật toán mã khối. Trong chương luận án sẽ đề
xuất một giải pháp nhằm cải tiến, nâng cao tốc độ thực hiện mã hóa, giảm tài
nguyên sử dụng và bảo đảm tính an toàn cho thuật toán mã khối.
3.1. Cơ sở lý thuyết
Lịch sử phát triển của mã khối đã bắt đầu từ rất sớm, ngay từ năm 1949
C.Shannon [54] đã đề xuất một phương án tổng quát để xây dựng thuật toán
mã hóa khối an toàn bằng cách sử dụng kết hợp các thao tác mã hóa tạo ra
tính hỗn loạn và tính khuếch tán thông tin.
- Tính hỗn loạn: giúp phá vỡ mối quan hệ giữa bản rõ và bản mã,
tạo ra mối quan hệ phức tạp và chặt chẽ giữa khóa với bản mã.
- Sự khu ch tán: giúp phá vỡ và phân tán các phần tử trong các mẫu
xuất hiện trong bản rõ để không thể phát hiện ra các mẫu này trong bản mã.
Ý tưởng của Shannon được x m là một phương án tổng quát đầu tiên cho
việc xây dựng các thuật toán mã hóa khối hiện đại. Xuất phát từ ý tưởng của
Shannon, một số kiến trúc mã hóa khối đã được đề xuất. Trong số đó, mạng
Feistel và mạng thay th - hoán vị (Substitution-permutation-network - SPN)
là hai kiến trúc mã khối được sử dụng phổ biến trong việc tạo ra các thuật toán
mã hóa khối hiện đại.
3.1.1. Các mã khối c cấu tr c SPN
Năm 2000 với việc chuẩn hóa ijnda l là chuẩn mật mã nâng cao
77
(AES), xuất hiện một số lượng lớn các mã pháp mới sử dụng các thành phần
tương tự như trong mã pháp AE [20]. Chẳng hạn một số mã pháp như
ANUBIS [14], LED [26], PRINCE [15] hoặc họ hàm băm PHOTON [27], ...
Điều này đa phần là do chiến lược vệt lan rộng (Wide Trail Strategy) được
giới thiệu bởi J. Daeman đầu tiên cùng với ijnda l và tiền nhiệm của nó là
mã pháp SQUARE [22]. Chiến lược vệt lan rộng [21] được đề xuất để cụ thể
hóa cách xây dựng một lớp các thuật toán mã hóa khối th o kiến trúc SPN.
Trong chiến lược vệt lan rộng, tác giả đã đề xuất một kiến trúc trừu tượng cho
thuật toán mã hóa khối dựa trên kiến trúc SPN, đồng thời chứng minh cách xác
định giới hạn để kiểm tra tính an toàn đối với phương pháp tấn công cho các
thuật toán được xây dựng theo chiến lược vệt lan rộng.
Trong chiến lược vệt lan rộng, bản rõ được chia thành các khối dữ liệu
có kích thước bằng nhau cố định. Mỗi khối được mã hóa với khóa chính k cho
trước và tạo ra một khối có cùng kích thước. Quá trình mã hóa gồm Nr chu
kỳ biến đổi, trong chu kỳ r, (1 r Nr), khóa của chu kỳ, ký hiệu là
được phát sinh từ khóa chính k thông qua hàm sinh khóa KeySchedule.
Mỗi chu kỳ mã hóa r (1 r Nr ) gồm 2 bước xử lý:
Biến đổi độc lập khóa (ký hiệu là ): gồm một số biến đổi bool
độc lập khóa.
Cộng khóa (ký hiệu là ): mỗi bit của trạng thái hiện tại của khối
dữ liệu đang được mã hóa sẽ được XOR với bit tương ứng trong
khóa của chu kỳ r.
Trong chiến lược vệt lan rộng, thuật toán mã hóa C sử dụng khóa
chính k bắt đầu bằng thao tác cộng khóa, tiếp theo là Nr chu kỳ mã hóa.
(3.1)
Đặt là thủ tục mã hóa trong chu kỳ r, thuật toán mã
78
hóa C với khóa chính k được biểu di n lại như sau:
(3.2)
Phép biến đổi độc lập khóa được xây dựng bằng cách kết hợp hai
thao tác biến đổi khả nghịch sau:
: phép thay thế phi tuyến cục bộ. Tính chất cục bộ của được hiểu là
các bit đầu vào (và bit đầu ra) được xử lý cục bộ th o từng nhóm gồm m bit.
: phép biến đổi trộn tuyến tính có khả năng tạo ra tính khuếch tán cao
sau một số chu kỳ mã hóa.
o với kiến trúc SPN, chiến lược vệt lan rộng đã tiến thêm một bước
trong việc cụ thể hóa cách xây dựng thuật toán mã hóa khối. Tuy nhiên, chiến
lược vệt lan rộng vẫn dừng lại ở mức trừu tượng, trong chiến lược này chưa
nêu ra cách cụ thể để xây dựng từng thành phần mã hóa, ví dụ như hàm
KeySchedule để phát sinh khóa cho từng chu kỳ từ khóa chính k cho trước,
các hàm biến đổi độc lập khóa ( và ). Mỗi nhóm nghiên cứu mật mã sẽ tự
đề xuất cách xây dựng cụ thể các thành phần để gắn vào khung thuật toán
tổng quát này. Giải thuật Rijndael là một thuật toán cụ thể đã hiện thực hóa
thành công chiến lược vệt lan rộng. Ngoài ra, còn có nhiều thuật toán mã hóa
khối khác được đề xuất trên cơ sở cụ thể hóa chiến lược vệt lan rộng. Đây
cũng là cách thức để bảo đảm tính chất khuếch tán tốt và cũng như cho phép
các nhà thiết kế d dàng đưa ra cận an toàn cho khả năng chống lại thám mã
lượng sai và tuyến tính [41]. Mặt khác, nó phân ra sự lựa chọn của tầng tuyến
tính và tầng phi tuyến một cách riêng biệt. Tóm lại, một hộp thế (bảo đảm tính
xáo trộn) bất kỳ khi kết hợp với bất kỳ tầng tuyến tính tốt sẽ tạo ra một mã
pháp có khả năng chống lại tấn công tuyến tính và vi sai.
3.1.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 SPN
79
Hiện nay, để đánh giá và đo độ khuếch tán của mã khối thường sử dụng
một số phương pháp như sau:
3.1.2.1. Phương pháp dựa trên mức độ ảnh hư ng thác đổ
Năm 2000, các tác giả P. Barreto and V. Rijmen [49] đã đưa ra tiêu
chuẩn về mức độ ảnh hưởng thác đổ để đánh giá các mã khối (The avalanche
effect – AC). Phương pháp này kiểm tra mức độ của tiêu chuẩn AC, trong đó chỉ ra hàm f: (GF(2))n (GF(2))m được gọi là thỏa mãn tiêu chuẩn ảnh
hưởng thác đổ nếu trung bình có ½ các bit ra thay đổi mỗi khi một bit vào
đơn được thay đổi.
3.1.2.2. Phương pháp dựa trên mức độ ảnh hư ng thác đổ chặt
Cũng trong tài liệu [49] đánh giá thống kê mã khối (The strict
avalanche effect – SAC). Phương pháp này kiểm tra mức độ của tiêu chuẩn AC, trong đó chỉ ra Hàm f: (GF(2))n (GF(2))m được gọi là thoả mãn tiêu
chuẩn AC nếu mỗi bit ra thay đổi với xác suất /2 mỗi khi một bit vào (đơn)
được thay đổi.
3.1.2.3. Phương pháp thuộc tính đầy đủ
Đây là thuộc tính mong muốn của mỗi thuật toán mã hóa. Giả thuyết
rằng, nếu chỉ có một vài bit đầu ra phụ thuộc vào một bit đầu vào, thì bằng
cách quan sát một số lượng đáng kể của các cặp đầu ra, đầu vào, người thám
mã có thể phát hiện được mối quan hệ thống kê và sử dụng thông tin này để
tìm được khóa. Trong [49] đã đưa ra tiêu chuẩn về mức độ của thuộc tính đầy đủ: Hàm thỏa mãn tiêu chuẩn về thuộc tính đầy đủ: Hàm f: (GF(2))n (GF(2))m của n bit vào và m bit ra được gọi là thỏa mãn thuộc tính đầy đủ
nếu mỗi bit ra phụ thuộc vào một bit vào, hay với mọi i = 1 ÷ n và j = 1 ÷ n ta
được bit ra thứ j phụ thuộc vào bit vào thứ i.
3.1.2.4. Phương pháp dựa trên số nhánh của bi n đổi tuy n tính
Số nhánh (Branch number) của một biến đổi tuyến tính L được ký hiệu
80
là B(L), là số tối thiểu của hộp S hoạt động trong hai vòng liên tiếp bất kỳ của
một mã khối có cấu trúc PN. Trong đó, một hộp song ánh được gọi là hoạt
động nếu cả hai đầu vào và đầu ra của nó đều khác 0 trong một đặc trưng
tuyến tính hoặc lượng sai. Giả sử: Z=(Z0, Z1,...,Zm-1) là một khối gồm mb bit
được tạo thành bằng cách kết hợp m từ, mỗi từ gồm b bit. Trong đó B(L) ≤
m+1, số nhánh B(L) là tối ưu nếu B(L)=m+1, mã tuyến tính được gắn với L sẽ
có khoảng cách tối thiểu cực đại. Trong thực tế, để đạt được mã tuyến tính có
khoảng cách tối thiểu cực đại, người ta xây dựng các mã MDS.
3.1.2.5. Phương pháp tính điểm bất động trong bi n đổi tuy n tính
Phương pháp mới nhất xuất hiện vào tháng 7/2010, do Tiến s
Muhammad za Z’aba đề xuất có tên là Phương há đo độ khuếch tán
bằng cách đếm số đi m bất động [64], trong đó, tác giả đưa ra khái niệm
điểm bất động của tầng tuyến tính , trong đó , A
là ma trận không suy biến kích thước d × d. Như vậy, số lượng điểm bất động
của biến đổi tuyến tính trên chính là số nghiệm của hệ phương trình:
trong đó I là ma trận đơn vị kích thước (3.3) . Từ đó số lượng điểm bất động
(ký hiệu là NL) cho biến đổi tuyến tính nói trên được tính theo công thức sau:
. (3.4)
Do đó số lượng các điểm bất động phụ thuộc vào hạng của ma trận
Thực tế tồn tại nhiều tầng tuyến tính mà ở đó có nhiều điểm bất động,
tuy nhiên số nhánh của tầng tuyến tính này vẫn được đảm bảo mặc dù giá trị
đầu ra không bị ảnh hưởng bởi tác động của biến đổi tuyến tính này. Nhưng
thực tế trong [64] đưa ra những nghiên cứu chứng tỏ tồn tại những tấn công
tiềm ẩn khi sử dụng điểm bất động của tầng tuyến tính.
Giá trị NL lớn ngh a là có nhiều khối đầu vào không thay đổi bởi phép
81
biến đổi tuyến tính L khi tạo khối đầu ra tương ứng. Giá trị số NL nhỏ ngh a là
có nhiều khối đầu vào được thay đổi hiệu quả bởi biến đổi tuyến tính L khi
tạo ra các khối đầu ra tương ứng. Ngoài ra, hệ số NL còn biểu thị mức độ
khuếch tán tốt đến đâu, ngh a là nó có thể thể hiện biến đổi tuyến tính L thay
đổi hiệu quả như thế nào các khối đầu vào khi tạo khối đầu ra tương ứng. Với
phương pháp đo độ khuếch tán này, rõ ràng là không có sự khuếch tán đối với
các điểm bất động.
Chuẩn mã hóa dữ liệu AE được coi là thuật toán điển hình của mã
khối có cấu trúc PN. Trong nội dung tiếp th o luận án sẽ giới thiệu về chuẩn
mã hóa dữ liệu AE và một số mã pháp dạng AE , trong đó đi sâu phân tích
về tầng biến đổi tuyến tính của thuật toán th o các tiêu chí đã nêu ở trên.
3.2. Chuẩn mã h a dữ liệu AES
AES (Advanced Encryption Standard) [48] là một thuật toán mã khối
được chính phủ Hoa kỳ áp dụng làm tiêu chuẩn mã hóa. Thuật toán được thiết
kế bởi hai nhà mật mã học người Bỉ là Joan Daemen và Vincent Rijmen nên
còn có tên gọi là ijnda l.
Thuật toán AE làm việc trên một khối dữ liệu với kích thước 128 bit,
được tổ chức trong một ma trận có kích thước x gọi là một trạng thái (stat )
và khóa có độ dài 128 bit, 192 bit, 256 bit tương ứng với các tên AES-128,
AES-192, AES-256.
AES là thuật toán xử lý trên byte, dữ liệu được xử lý theo từng nhóm 8 bit. Mỗi byte được xem là một phần tử của trường Galois GF(28) xác định bởi đa thức bất khả quy f x x8 x4 x3 x 1 .
Mỗi khối dữ liệu trong AE được biểu di n bằng ma trận × Nb byt với
Nb = 4, 6 hoặc 8. Mỗi vector gồm 4 byte được xem là một từ, do đó mỗi khối
có thể được xem là một vector gồm Nb từ. Khóa chính của AE có độ dài là
128 bit, 192bit hoặc 25 bit cũng được biểu di n bằng ma trận 4 × Nk byte
82
hoặc một v ctor gồm Nk từ tương ứng với các giá trị của Nk =4, 6 hay 8.
Tương ứng với độ dài của khóa sử dụng, số vòng lặp của thuật toán Nr
nhận các giá trị 0 (Nk = 4), 12 (Nk = ) hoặc (Nk=8), được minh họa trong
bảng 3.1:
Bảng 3.1. ộ dài khóa của S
TT, Tham số Độ dài kh a (Nk) Kích thước khối (Nb)
AES-128 AES-192 AES-256 4 6 8 4 4 4
Số l n l p (Nr) 10 12 14
Trong cả quá trình mã hóa và giải mã, AE đều sử dụng một hàm lặp là
kết hợp của bốn hàm biến đổi (đơn vị xử lý là byt ) sau:
a) Biến đổi thay thế byt sử dụng một bảng thế ( -Box).
b) Dịch các hàng của mảng trạng thái với số lần dịch của mỗi hàng là
khác nhau.
c) Kết hợp dữ liệu của mỗi cột trong mảng trạng thái.
d) Cộng một khóa oud K y vào trạng thái.
Thuật toán mã hóa
Bắt đầu thuật toán, bản rõ đầu vào được copy vào mảng trạng thái. au
khi cộng với khóa Round Key, khởi tạo mảng trạng thái được biến đổi bằng
cách thực hiện một hàm vòng (Round Function) Nr lần ( 0, 2 hoặc phụ
thuộc vào độ dài khóa), trong đó lần cuối cùng thực hiện khác các lần trước.
Trạng thái sau lần lặp cuối cùng sẽ được chuyển thành đầu ra của thuật toán.
Hàm vòng được tham số hóa sử dụng một dãy các khóa (k y sch dul )
được biểu di n như là một mảng một chiều của các word byt được sinh ra
từ thủ tục sinh khóa (Key Expansion).
Tất cả các vòng đều thực hiện các công việc giống nhau dựa trên hàm
(th o thứ tự) là SubBytes(), ShiftRows(), MixColumns() và AddRoundKey()
trừ vòng cuối cùng bỏ qua việc thực hiện hàm MixColumns().
83
ơ đồ thuật toán mã hóa và giải mã AES được mô tả trong Hình 3.1:
a) Hàm ShiftRows()
Trong hàm ShiftRows(), các byt trong hàng cuối của mảng trạng thái
sẽ được dịch vòng với số lần dịch (hay số byt bị dịch) khác nhau. Hàng đầu
tiên r = 0 không bị dịch. Cụ thể, hàm này sẽ thực hiện biến đổi sau:
(3.5) (Nb = 4)
Trong đó, giá trị shift(r, Nb) phụ thuộc vào số hàng r như sau:
shift(1, 4) = 1, shift(2, 4) = 2, shift(3, 4) = 3
Thao tác này sẽ chuyển các byt tới các vị trí thấp hơn trong các hàng,
trong khi các byt thấp nhất sẽ được chuyển lên đầu của hàng. Tất cả các mô
tả trên có thể minh họa như trên hình .2.
Hình 3.1. Sơ đồ m hóa và giải m của thuật toán AES
84
Hình 3.2. Hàm ShiftRows()
b) Hàm MixColumns()
Hàm MixColumns() làm việc trên các cột của mảng trạng thái, nó coi
mỗi cột của mảng trạng thái như là một đa thức gồm hạng tử. Các cột sẽ được x m như là các đa thức trên GF(28) và được nhân th o modulo x4 + 1
với một đa thức cố định a(x):
a(x) = {03}x3 + {01}x2 + {01}x + {02} (3.6)
Có thể biểu di n bằng phép nhân ma trận như sau:
s'(x) = a(x)s(x) (3.7)
với mọi 0 c < Nb = 4
Kết quả là byt trong mỗi cột sẽ được thay thế th o công thức sau:
(3.8)
(3.9)
(3.10)
(3.11)
Có thể minh họa việc thực hiện của hàm này bằng hình . như sau:
85
Hình 3.3. Hàm MixColumns()
Đối với các mã pháp dạng AE , tầng tuyến tính được kết hợp gồm hai
thành phần tương tự như phép biến đổi AE MixColumns và AES ShiftRows.
Phép biển đổi MixColumns là phép nhân ma trận với một cột của trạng thái và
phép toán ShiftRow là một hoán vị các từ của trạng thái [20].
Các tiêu chuẩn được áp dụng để các phép biến đổi này phải có số nhánh
cao phù hợp bảo đảm tốt nhất cho sự khuếch tán của tầng tuyến tính. Do đó,
để đạt được độ an toàn cao nhất thông thường các nhà thiết kế thường chọn
lựa các ma trận có tính chất MD [46] trong thiết kế của mình như thuật toán
AES, thuật toán LED, …
3.3. Đánh giá một số ma trận MDS trong các mã pháp dạng AES
3.3.1. Một số ịnh nghĩa
Trong phần này luận án sẽ trình bày một số định ngh a, khái niệm và
kiến thức cần thiết cho nội dung nghiên cứu. Trước hết chúng ta sẽ x m xét
khái niệm ma trận có cấu trúc dịch vòng (còn gọi là ma trận luân hoàn).
Mã MDS (Maximum Distance Separable - Phân tách tuyến tính có
khoảng cách cực đại) đã được nghiên cứu từ lâu trong lý thuyết mã sửa sai
[46]. Nếu C là mã tuyến tính với tham số [n,k,d], trong đó n là độ dài từ mã, k
là độ dài bản rõ cần mã và d là khoảng cách của mã C thì người ta thấy rằng
các tham số này sẽ thỏa mãn bất đẳng thức d <= k+ . Đó là giới hạn
Singleton, mã MD là mã tuyến tính [n,k,d], trong đó d = n-k+ ngh a là nó
86
tối ưu về khoảng cách mã. Mã MD là trường hợp đặc biệt của mã Reed-
Solomon [59].
Gắn với mã C là ma trận sinh G, đó là ma trận có k hàng, n cột, có hạng
k (k≤ n) và khi cần mã một thông báo có độ dài k thì người ta thực hiện phép
nhân véc tơ a với G như sau để được từ mã c có độ dài n: c = aG. Luôn luôn
có thể đưa G về dạng G = [I | A], trong đó I là ma trận đơn vị bậc k, A là ma
trận k hàng, n-k cột. Nếu C là mã MDS thì A được gọi là ma trận MD .
Định nghĩa 3.1: [53] Ma trận dịch vòng là ma trận mà các hàng (hoặc
các cột) của nó nhận được từ hàng (cột) trước nó bằng cách dịch vòng đi một
phần tử.
Th o đó một ma trận có dạng:
(3.12)
được gọi là ma trận dịch vòng hay còn gọi là ma trận luân hoàn (circulant
matrix), ký hiệu là . Trong trường
hợp thiết kế tầng tuyến tính của thuật toán AE , ma trận tuyến tính sử dụng
có kích thước x , có ngh a rằng d = 4.
Trong thiết kế cần đảm bảo số nhánh lớn nhất có thể, để đảm bảo tính
chất này trong thiết kế của nhiều mã pháp đã sử dụng các ma trận MD . Để
bảo đảm là ma trận MDS, ta x m xét mệnh đề sau đây.
Mệnh đề 3.2. [53] Ma trận vuông kích thước dxd là một ma trận MDS
khi và chỉ khi tất cả các ma trận con vuông của nó không suy biến.
Đối với mỗi ma trận MD kích thước dxd được sử dụng trong tầng
tuyến tính. Số nhánh của nó chính bằng khoảng cách nhỏ nhất giữa các từ của
87
mã tuyến tính, với điều kiện mã tuyến tính này sử dụng ma trận MDS nói trên
trong thành phần ma trận sinh của nó [46]. Trong trường hợp này, số nhánh sẽ
bằng d + 1.
3.3.2. Đánh giá một số ma trận MDS s dụng trong mã pháp dạng AES
3.3.2.1. Tầng tuy n tính của các m pháp dạng A
Hầu hết các mã khối được thiết kế đều dựa trên hai nguyên tắc xây
dựng cơ bản của hannon, đó là tính xáo trộn (confusion) và tính khuếch tán
(diffusion) [54]. Nếu như tính xáo trộn được đảm bảo bởi các hộp thế thì tính
khuếch tán được đảm bảo bởi tầng biến đổi tuyến tính (được gọi là tầng tuyến
tính). Trong đó, tầng tuyến tính là thành phần nguyên thủy mật mã chậm nhất
trong một mã khối. Vì vậy việc nghiên cứu lựa chọn tầng tuyến tính không
những liên quan trực tiếp đến độ an toàn của mã khối kháng lại một số thám
mã quan trọng như thám mã lượng sai và thám mã tuyến tính mà còn ảnh
hưởng đến việc cài đặt hiệu quả của mã khối.
Đối với các mã pháp dạng AE , tầng tuyến tính bao gồm phép biến đổi
AES ShiftRows và phép biến đổi AE MixColumns. Trong đó ShiftRow là một
hoán vị các từ của trạng thái và MixColumns là phép nhân ma trận với một cột
của trạng thái và cũng là phép tính phức tạp tiêu tốn nhiều thời gian trong
tầng tuyến tính [23]. Trong tầng tuyến tính của AE , ma trận MD sử dụng là
một ma trận có cấu trúc dịch vòng được lựa chọn kỹ lưỡng trên cơ sở đảm bảo
độ an toàn và khả năng cài đặt. Tuy nhiên th o đánh giá trên quan điểm điểm bất động của tác giả Z’aba M. . [64] thì tầng khuếch tán này lại có 216 điểm
bất động, cũng trong [64] tác giả cũng đã chỉ ra sự tương quan tỷ lệ nghịch
giữa sự thay đổi dữ liệu đầu ra so với dữ liệu đầu vào và số điểm bất động đó
là càng nhiều điểm bất động thì sự thay đổi dữ liệu càng thấp, điều này ảnh
hưởng trực tiếp đến tính an toàn của thuật toán mã khối.
Trong một số công trình nghiên cứu về khả năng cài đặt cứng hóa trên
88
FPGA đối với AE [16], [24], [42], các phương pháp cài đặt tầng tuyến tính
chủ yếu dựa trực tiếp trên phép nhân với các hằng số của ma trận trong biến
đổi MixColumns. Mặc dù các hằng số của ma trận này được lựa chọn để d
dàng cài đặt, tuy nhiên phép nhân trực tiếp khi cứng hóa là chưa tối ưu và
chưa đưa ra được một đánh giá trực quan về chiều sâu thiết kế của mạch phần
cứng nhận được cụ thể là số xung nhịp cần thiết khi thực hiện phép nhân.
Trong [53] nhóm tác giả Sim, S.M đề xuất một số ma trận MD và
MD cuộn có dạng Hadamard hiệu quả trong cài đặt phần cứng. Cụ thể trong
tài liệu này đưa ra số cổng XO cần thiết đối với mỗi một ma trận đề xuất,
tuy nhiên những đánh giá cho tài nguyên cài đặt phần cứng của nhóm tác giả
này là chưa chặt và cũng chưa đưa ra chiều sâu thiết kế (số xung nhịp cần
thiết khi thực hiện), đây là yếu tố có ảnh hưởng trực tiếp đến tốc độ xử lý của
mạch phần cứng. Hơn nữa tầng tuyến tính mà mã pháp dạng AE sử dụng ma
trận MD Hadamard cuộn lại có nhiều điểm bất động.
3.3.2.2. Độ phức tạp của bi n đổi Mixcolumns sử dụng ma trận MDS
Đối với tầng tuyến tính của mã pháp dạng AES, phép biến đổi
MixColumns chính là thực hiện phép nhân ma trận : với Y là ma
trận dữ liệu đầu ra; X là ma trận dữ liệu đầu vào M là ma trận MD .
, (3.13)
. Để tính được một phần tử, ví dụ , ta cần trong đó
. thực hiện
Phép cộng XOR 4 số hạng yêu cầu 2 xung nhịp (2 clock cycl ). Như
vậy số xung nhịp để tính phần tử này là t +2, trong đó t là số xung nhịp lớn
nhất yêu cầu khi thực hiện phép nhân với a hoặc b. Số cổng XOR yêu cầu để
89
tính là , ở đây là ký hiệu số cổng XO khi thực hiện
phép nhân với phân tử trong . Do vậy để thực hiện tính toàn bộ giá trị
đầu ra cần tiến hành phép tính song song với nhau (do các hàng trong ma
trận dịch vòng có các phần tử giống nhau) với số xung nhịp yêu cầu chỉ là
t+2, còn tổng số cổng XO yêu cầu là , do tính chất các
hàng trong ma trận dịch vòng có các phần tử giống nhau.
3.3.2.3. Hiệu quả cài đặt phép Mixcolumns của m pháp dạng AES
Ma trận tuyến tính trong biến đổi MixColumns của chuẩn mã hóa AES
là một ma trận 4×4 với các phần tử thuộc trường hữu hạn , đa thức sinh là
. Với ma trận M là ma trận MD
Ký hiệu M là Cir(2, , , ), để thực hiện phép biến đổi này ta cần thực
hiện phép nhân với phần tử 2 và 3 (biểu di n ở dạng cơ số 10) trong .
Trong một số cài đặt AES trên phần cứng [16], [24], [42] đã được công bố
phép nhân với 2 và được thực hiện th o sơ đồ trong hình 3.4-a), 3.4-b).
Biểu thức phép nhân với 2 trên trường đang xét như trong công thức (3.14);
trong đó . Như vậy phép nhân
này cần sử dụng 3 cổng XOR với đầu vào 2 bit và đầu ra 1 bit và yêu cầu một
xung nhịp (hình 3.4-a). Khi thực hiện phép nhân với 3 yêu cầu 11 cổng XOR
và hai xung nhịp (công thức .15 và hình 3.4-b).
Trong công thức (3.15) ta thấy biểu thức tính các cặp bit hoặc
có một số thành phần giống nhau. Như vậy có thể viết lại công thức
(3.15) thành (3.16) với việc đặt một số tham số trung gian. Th o đó phép nhân
90
này cũng cần 2 xung nhịp để thực hiện và cần 9 cổng XO thay vì như cài
đặt trước đó. Minh họa cho phép nhân này được thể hiện trong hình 3.4–c).
(3.14) (3.15) (3.16)
Hình 3.4. Phép nhân với 2 và 3 trên với
Như vậy số cổng XOR cần thiết cho cài đặt phép nhân một hàng của
ma trận MDS trong MixColumns với một cột của ma trận dữ liệu bằng (3+9)
+ 3x8 = 36. Còn số xung nhịp yêu cầu khi đó sẽ là 2 + 2 = , trong đó 2 xung
nhịp đầu tiên là để thực hiện phép nhân với 3, còn 2 xung nhịp tiếp theo là
yêu cầu khi cộng XO byt để nhận được byt đầu ra.
Hình 3.5. Phép nhân với 2, 4 và 145 trên với
91
Trong [53] các tác giả đề xuất ma trận Had (1,2,4,145), trên với đa
thức sinh là . Phép nhân phần tử x với 2, và 5 này
tương ứng với biểu thức (3.17), (3.18) và (3.19) và được minh họa trên hình
3.5. Các ma trận Hadamard cũng có mỗi hàng (hoặc mỗi cột) có các phần tử
giống nhau, đây chính là một lợi thế trong cài đặt nó. Trong [53] đã đánh giá
số tài nguyên cài đặt của phép nhân một hàng của ma trận Had( ,2, , 5) với
một cột của khối dữ liệu cần
(3.17) (3.18) (3.19)
số cổng XO là + 3x8 = 37. Tuy nhiên theo luận án, đánh giá này là chưa
chặt vì nhóm tác giả không xét đến sự trùng lặp trong những biểu thức trong
phép nhân với và 5. Như vậy thực chất số cổng XO cần thiết chỉ là
+ 3x8 = 35. Theo (3.18), (3.19) phép nhân với hoặc 5 cần 2 xung nhịp, do
vậy để cài đặt ma trận Had( ,2, , 5) cần 2+2 = xung nhịp. Giá trị này
cũng chính bằng số xung nhịp khi cài đặt ma trận sử dụng trong biến đổi
MixColumns của thuật toán AE , tuy nhiên ma trận Hadamard trong [53] khi
cài đặt tốn ít tài nguyên hơn.
3.4. Đề xuất ma trận MDS mới cải tiến t ng tuyến tính cho các mã
pháp dạng AES
Trong nội dung này, luận án đề xuất một ma trận MDS mới để sử dụng
trong biến đổi MixColumns đạt hiệu quả cài đặt phần cứng tốt hơn so với ma
92
trận đang sử dụng trong AE . Đây cũng là một ma trận MD ×4 có cấu trúc
dịch vòng, nhưng tầng tuyến tính nhận được ngoài khả năng đạt hiệu năng cao
khi cài đặt trên phần cứng nó còn không có điểm bất động.
3.4.1. Đề xuất ma trận MDS mới và ánh giá hiệu quả hoạt ộng
Độ phức tạp trong cài đặt ma trận tuyến tính trên phần cứng chính là
việc cài đặt phép nhân với các phần tử của ma trận trong trường hữu hạn. Các
nguyên thủy mật mã được sử dụng trong thực tế phải lựa chọn sao cho chúng
d dàng cài đặt cả trên phần cứng và phần mềm. Như vậy khi cài đặt các ma
trận tuyến tính việc lựa chọn các hệ số trong mỗi ma trận sẽ quyết định tính
chất cài đặt của nó. Trong trường hữu hạn bất kỳ, với đa thức sinh là đa
thức bậc n thì phép nhân với phần tử , 2 và 2-1 là d cài đặt [23]. Thực tế trong cài đặt trên phần cứng, phép nhân với 2 và 2-1 có độ phức tạp như nhau
và chỉ cần duy nhất xung nhịp, do vậy nó đạt được hiệu quả cao nhất về mặt
tốc độ.
Như chúng ta biết để nhận được số nhánh cực đại thì ma trận có cấu
trúc dịch vòng M trong (3.13) phải có tính MD [46], tức là tất cả các ma trận
con vuông của nó phải không suy biến. Kết hợp với các yếu tố trên, ta có điều
kiện để M có tính MDS là:
(3.20)
Thông thường những phần tử là bội trên trường hữu hạn của phần tử 2
hoặc nghịch đảo của nó được ưu tiên lựa chọn. Trong biểu thức (3.20) ta thấy
cặp giá trị luôn thỏa mãn trên trường bất kỳ. Tuy nhiên
phải lựa chọn đa thức sinh của trường này làm sao cho phép nhân với phần tử 22 (phần tử ) khi cài đặt trong phần cứng chỉ yêu cầu xung nhịp. Ta giả sử
93
đa thức sinh xác định phép nhân đang xét là:
(3.21)
trong đó là hệ số nhận giá trị 0 hoặc . Khi thực hiện phép nhân
(hình 3.6) ta cần thực hiện việc kiểm tra true-false đối với bit x7, là bit cao
nhất của x. Kết quả là một số trong số các bit đầu ra của được xác
định bằng tổng th o modul 2 của bit x7 với bít đầu vào tương ứng
như sau:
(3.22)
Tiếp th o khi thực hiện phép có dạng:
Ta cần điều kiện làm sao cho biểu thức các bit của z không chứa số hạng,
như vậy phép nhân với chỉ cần xung nhịp. Từ biểu thức của z, ta có điều
kiện như sau:
(3.23)
Nếu , ta có: (3.24)
Nếu , ta có: (3.25)
điều này dẫn đến , tuy nhiên trong trường hợp này đa thức
nhận được là không bất khả quy, do đó trong trường
hợp này không thỏa mãn điều kiện cần.
Từ phân tích trên luận án sử dụng điều kiện (3.24) đối với đa thức sinh để nhận được phép nhân với 22 mà chỉ yêu cầu một xung nhịp. của trường
94
Như vậy áp dụng điều kiện ( .2 ) cho đa thức tổng quát ( .2 ) kết hợp với
các đa thức nguyên thủy được thống kê trong bảng .2 để ta tìm đa thức sinh mà khi thực hiện phép nhân với 22 chỉ yêu cầu một xung nhịp. Cụ thể, với giá
trị n = 8 chỉ có duy nhất một đa thức thỏa mãn các yêu cầu trên đó là đa thức
. Đây là một đa thức nguyên thủy trong tổng số
đa thức nguyên thủy có thể có bậc bằng 8 (bảng 3.2), trong
đó là hàm Euler [23] và đây cũng là đa thức nguyên thủy duy nhất có bậc
bằng 8 thỏa mãn yêu cầu được các yêu cầu trên. Do vậy nó có thể được sử
dụng trong vài trò đa thức sinh của trường , với đa thức sinh
thì phân tử 2-1 có giá trị là 9 (được tính toán
th o thuật toán Euclid an) như vậy cặp giá trị tạo
được lợi thế khi cài đặt trên phần cứng trong trường hữu hạn nhận được, do
đó ma trận MD mới được đề xuất là ma trận M1 thỏa mãn điều kiện ( .20)
ký hiệu Cir(4,149,1,1)
Bảng 3.2. Danh sách 16 đa thức nguyên thủy bậc 8 trên
TT
Đa thức
Đa thức
TT
9
1
10
2
11
3
12
4
13
5
14
6
15
7
8
95
16
Tương tự như trong mục .3.2.3, phép nhân a với 2, , 9 trong
với đa thức sinh là được minh họa trong hình 3.6
và các biểu thức ( .26), (3.27), (3.28).
(3.26) (3.27) (3.28)
Hình 3.6. Phép nhân với 2, 4 và 149 trên với
Ta thấy phép nhân với phần tử (2, 2-1) chỉ yêu cầu xung nhịp, điều
này nhận được là do tính chất của đa thức sinh của trường .
Như vậy, ta có thể tính được số xung nhịp cho cài đặt phép nhân một
hàng của ma trận đề xuất với một cột của ma trận dữ liệu sẽ là + 2 =
(clock) và số cổng XO yêu cầu là 9 + 8x = , giảm được xung nhịp (tức
là nhanh hơn khoảng , lần) và cổng XO (khoảng 0%) so với ma trận
96
đang sử dụng trong AE , giảm được xung nhịp và 2 cổng XO so với ma
trận được đề xuất trong [53]. Ma trận MDS do luận án đề xuất hoàn toàn thỏa
mãn điều kiện ( .20), vì vậy bảo đảm tính an toàn cho tầng tuyến tính của các
mã pháp dạng AE .
Trong một số tài liệu nghiên cứu về thiết kế xây dựng tầng tuyến tính
thỏa mãn tính chất cài đặt trên phần cứng tốt chủ yếu dựa trên việc lựa chọn
những phần tử d dàng cài đặt, tuy nhiên khai thác cấu trúc, cũng như tính
chất của trường hữu hạn nói chung và đa thức sinh của trường này nói riêng
thì chưa có một tài liệu nào đề cập đến. Đây cũng chính là điểm mới mang
tính khoa học của nghiên cứu này, mặc dù có thể kết quả không xuất phát từ
một quan điểm lý thuyết, mà xuất phát từ quan điểm kinh nghiệm cài đặt thực
tế và tổng hợp lại. Kết quả này sẽ là nền tảng cho việc lựa chọn những hệ số
khi xây dựng những ma trận có tính chất mật mã tốt, mà có kích thước lớn
hơn trên trường hữu hạn có bậc mở rộng . Bởi vì khi đó sẽ tồn tại nhiều
đa thức nguyên thủy thỏa mãn điều kiện (3.24) hơn.
3.4.2. Ph n tích cài t các ma trận th o quan i m ph n mềm
Để đánh giá được tính hiệu quả của ma trận đề xuất khi cài đặt trên
phần cứng so với phần mềm, sau đây luận án mô tả phương pháp cài đặt th o
quan điểm phần mềm. Tài liệu mô tả gốc của chuẩn AE trình bày phương
pháp cài đặt trên môi trường 2 bit sử dụng kỹ thuật tra bảng [20]. Th o đó
phương pháp này là đúng với biến đổi MixColumns tuyến tính × bất kỳ.
Để có thể phân tích cài đặt một cách tổng thể th o quan điểm phần mềm,
trong mục này luận án chỉ quan tâm đến độ phức tạp, hay nói cách khác là số
phép toán cần thiết khi cài đặt mà không sử dụng kỹ thuật tra bảng. Bản chất
kỹ thuật này là thực hiện biến đổi tuyến tính khi x m xét phép nhân trực tiếp
với các hệ số của ma trận tuyến tính sử dụng trong biến đổi MixColumns.
Trong nội dung này chỉ xét những ma trận MD có cấu trúc dịch vòng hoặc là
97
Hadamard, đó là những ma trận có số phần tử trong mỗi hàng hoặc mỗi cột là
giống nhau, vì vậy độ phức tạp đối với toàn bộ biến đổi MixColumns có thể
đánh giá thông qua độ phức tạp khi thực hiện phép nhân một hàng trong ma
trận MixColumns với một cột trong ma trận trạng thái. Chúng ta sẽ xét từng
trường hợp cụ thể.
Đối với ma trận có cấu trúc dịch vòng trong biến đổi MixColumns sử
dụng trong AE , ký hiệu là Cir(2, 3, 1, 1). Th o biểu thức ( .13), xét biểu
thức nhân một hàng của ma trận M với một cột của ma trận trạng thái X, ta có
(3.29) Th o biểu thức (3.29) để tính byt đầu ra cần phép XO hai số 8 bit
và 1 phép Xtime. Phép Xtim là phép nhân với phần tử 2 hoặc là nghịch đảo
của nó trong trường hữu hạn [23]. Từ phân tích này để thực hiện một biến đổi
MixColumns đầy đủ phải cần x = phép Xtim và x = phép
XOR.
Đối với ma trận do luận án đề xuất, Cir( , 9, , ). Xét biểu thức
(3.30)
Thực hiện tính byt dữ liệu đầu ra
(3.31)
Th o biểu thức ( .31), phép tính này cần phép Xtim và phép XO
hai số 8 bit. Như vậy khi thực hiện (3.30) cần x = 8 phép Xtim và x
= 48 phép XOR.
Đối với ma trận Had (1, 2, 4, 145) trong [53]. Xét biểu thức
98
(3.32)
Thực hiện tính byt dữ liệu đầu ra
(3.33)
Biểu thức (3.32) yêu cầu 3 + 2 + 1 + 1 = 7 phép Xtime và 5 phép XOR.
Do vậy để thực hiện biểu thức (3.32) cần x 7 = 112 phép Xtime và 16x5 =
80 phép XOR. Bảng . dưới đây là so sánh khi cài đặt th o quan điểm cài đặt
phần mềm khi không dùng kích thước bảng tra.
Bảng 3.3. So sánh cài đ t các ma trận DS 4x4 bằng hần m m
Ma trận XOR Xtime
Cir(2, 3, 1, 1) 64 16
Cir(4, 149, 1, 1) 48 48
Had(1, 2, 4, 145) 80 112
Qua bảng 3.3, phân tích ta thấy ma trận MD trong AE yêu cầu số
phép toán ít nhất, còn ma trận MD Hadamard trong [53] là không hiệu quả
khi cài đặt trên phần mềm và không thích hợp khi sử dụng trong cài đặt trên
các môi trường hạn chế về tài nguyên khi so sánh với ma trận MixColumns
trong AE và ma trận MD do luận án đề xuất. Thực tế cho thấy ma trận sử
dụng trong biến đổi MixColumns của thuật toán AE là ma trận tối ưu nhất
trong tất cả các ma trận MD x trên khi cài đặt trên phần mềm, tuy
nhiên kết quả so sánh cho thấy khi cài đặt trên phần cứng như phân tích ở
mục trước thì ma trận do luận án đề xuất là ma trận tối ưu nhất. Trên thực tế
khi lựa chọn ma trận ta phải xét tất cả các tính chất có thể của nó để đảm bảo
99
các yếu tố về hiệu năng, độ an toàn và sự tiện lợi khi sử dụng. Do vậy trong
phần tiếp th o luận án sẽ phân tích thêm một tính chất nữa, đó là số lượng
điểm bất động của tầng tuyến tính.
3.4.3. Đi m ất ộng của t ng tuyến tính th o ma trận ề xuất
Như đã phân tích ở trên số nhánh là tham số quan trọng nhất của tầng
tuyến tính, khi xây dựng tầng tuyến tính th o mã pháp dạng AE mà sử dụng
ma trận MD × trong biến đổi MixColumns ta sẽ đảm bảo được tính chất
th o chiến lược vệt lan rộng [21], bên cạnh đó số lượng điểm bất động của
tầng tuyến tính [64] sẽ là một tham số quan trọng khác khi lựa chọn tầng
tuyến tính, nó ảnh hưởng đến độ an toàn và được x m như là một tham số bổ
sung cho khái niệm số nhánh của tầng tuyến tính.
Tầng tuyến tính trong AE gồm 2 biến đổi: ShiftRows và MixColumns.
Khi kết hợp cả hai biến đổi này có thể biểu di n bởi phép nhân một ma trận
tuyến tính × được gọi là A với một véc tơ cột. Th o [64] số lượng điểm
bất động phụ thuộc vào , trong đó I là ma trận đơn vị. Đối với
tầng tuyến tính của AE có và , như vậy theo
công thức (3.4) ta có điểm bất động.
Tương tự đối với ma trận đề xuất Cir( , 9, , ) và ma trận Had(1, 2, 4,
145) ta có và
điểm bất động.
Như vậy là nếu sử dụng hai ma trận này để thay thế ma trận trong biến
đổi MixColumns trong AE thì sẽ nhận được tầng tuyến tính mà chỉ có một
điểm bất động và đây chính là điểm 0 tầm thường, là một trong những yếu tố
quan trọng bảo đảm cho sự khuếch tán của tầng tuyến tính liên quan đến độ
an toàn mật mã.
100
Bảng 3.4. Số đi m bất động của một số ma trận đang x t
Ma trận Số i m ất ộng
Cir (2, , , ) của AE 216
Cir (4,149,1,1) do luận án đề xuất 1
Had(1,2,4,145) trong [53] 1
3.4.4. Kết quả cài t thực nghiệm trên FPGA
Luận án đã thực hiện thiết kế các chức năng của biến đổi MixColumns
khi sử dụng ma trận đề xuất và một số ma trận đã x m xét ở trên. Chương
trình được viết bằng ngôn ngữ VHDL cho FPGA của XIlinx. Công cụ thiết kế
là Xilinx I E phiên bản . . Kết quả cụ thể như sau:
3.4.4.1. Đối với ma trận MD mới do luận án đề xuất
Hình 3.7 là kết quả mô phỏng Mod lIsim đối với ma trận MDS đề xuất,
trong cài đặt này ta thấy sau xung nhịp ta sẽ nhận được kết quả đầu ra tính
từ thời điểm xuất hiện tín hiệu đầu vào. Kết quả thực nghiệm này đúng bằng
giá trị do luận án đánh giá lý thuyết ở mục 3.4.1.
Hình 3.7. Kết quả mô h ng đối với ma trận đ xuất ir(4, 149, 1, 1)
Bảng .5 là tài nguyên cần sử dụng khi thiết kế biến đổi MixColumns
sử dụng ma trận MD mới đề xuất Cir(4, 149, 1, 1) và được thống kê trong
bảng .6. ố LUT cần tiêu tốn là 528 cho cài đặt toàn bộ biến đổi
MixColums, giá trị này đúng bằng x như đánh giá lý thuyết ở mục 3.4.1.
101
Bảng 3.5. Tài nguyên sử dụng đối với ma trận đ xuất ir(4, 149, 1, 1)
3.4.4.2. Đối với ma trận MDS đang sử dụng trong AES
Đối với ma trận Cir(2, , , ) sử dụng trong AE . Tiến hành đánh giá
luận án cũng nhận được số xung nhịp và tài nguyên yêu cầu thực tế đúng với
giá trị phân tích lý thuyết. Hình 3.8 là kết quả mô phỏng Mod lIsim về số
xung nhịp và bảng 3.6 là tài nguyên cần sử dụng cho cài đặt thực nghiệm này.
Hình 3.8. Kết quả mô h ng đối với ma trận trong AES Cir(2, 3, 1, 1)
Luận án cũng thực hiện cài đặt cho trường hợp khi sử dụng ma trận
Had(1, 2, 4, 145) và nhận được kết quả giống như đánh giá lý thuyết.
Bảng 3.6. Kết quả cài đ t trên hần cứng FPG của Xilinx
Ma trận
LUTs
Slice Registers
LUT-FF pairs
Clock cycles
Speed (Mbps)
Cir(2,3,1,1)
688
530
576
4
Maximum Frequency (MHz) 1225.415
39213
Cir(4,149,1,1)
656
520
528
3
1225.415
52284
Had(1,2,4,145)
702
546
560
4
1225.415
39213
Kết quả nhận được tại bảng .6 cho thấy ma trận do luận án đề xuất
Cir(4,149,1,1) có tham số cài đặt phần cứng tốt nhất, tốc độ xử lý dữ liệu vượt
102
trội khi so sánh với ma trận đang sử dụng cho thuật toán AE (Cir(2,3,1,1))
và ma trận đề xuất trong [53] (Had(1,2,4,145)).
3.4.5. Kết quả cài t AES chuẩn và AES với ma trận MDS ề xuất
Luận án đã thực hiện cài đặt thuật toán AE chuẩn và AE sử dụng ma
trận MD mới đề xuất Kết quả cụ thể như sau:
Hình 3.9. Kết quả mô h ng cài đ t thuật toán S chuẩn
Hình 3.10. Kết quả mô h ng cài đ t thuật toán S với ma trận DS mới
Kết quả thực hiện thuật toán AE với khối dữ liệu 28 bít, khóa có độ
dài 128 bít (10 vòng), thời gian mã hóa khối dữ liệu hết 7, 8ns với tần số
500MHz, tài nguyên cần sử dụng 0. 5 LUTs cũng với các tham số trên
kết quả mã hóa khối dữ liệu bằng thuật toán AE với ma trận MD đề xuất
hết 5, 7ns và tài nguyên cần sử dụng 9 78 LUTs (về thời gian gấp xấp xỉ
1,33 lần về tài nguyên giảm khoảng 0%) kết quả nhận được hoàn toàn phù
hợp với đánh giá về mặt lý thuyết.
103
Bảng 3.7. So sánh kết quả cài đ t trên FPG
3.5. Kết luận Chương 3
Trên cơ sở nghiên cứu, luận án đã đề xuất một ma trận MDS có tính
chất mật mã tốt có thể thay thế ma trận MDS trong biến đổi MixColumns của
AE . Ma trận này là một ma trận MD kích thước × trên trường hữu hạn GF(28). Khi sử dụng trong biến đổi MixColumns của AE sẽ nhận được tầng
tuyến tính đảm bảo được số nhánh th o chiến lược vệt lan rộng [21] mà không
có nhiều điểm bất động như trường hợp ma trận gốc của AE . Luận án cũng
tập trung so sánh với ma trận Had(1,2,4,145) trong [53]. Ma trận do luận án
đề xuất th o quan điểm cài đặt phần mềm có thể so sánh với ma trận gốc
trong AE và tốt hơn nhiều so với ma trận đề cập trong [53]. Th o quan điểm
cài đặt phần cứng, ma trận do luận án đề xuất không những yêu cầu tài
nguyên ít hơn mà còn có tốc độ xử lý dữ liệu tốt hơn cả ma trận gốc trong
AE và ma trận đề cập trong [53]. Các hệ số trong ma trận này là những hệ số
duy nhất (tương ứng với sự duy nhất của đa thức nguyên thủy
khi sử dụng trong vai trò là đa thức sinh của
trường).
Ma trận MD do luận án đề xuất chỉ có một điểm bất động (là điểm 0
tầm thường) là một trong những yếu tố nâng cao chất lượng mật mã của tầng
tuyến tính th o đánh giá trong [64].
Về mặt lý thuyết luận án đưa ra điều kiện đối với đa thức sinh của
trường để từ đó có thể lựa chọn các hệ số trong ma trận tuyến tính mà phép
104
nhân đối với nó chỉ yêu cầu xung nhịp, đây chính là yếu tố ảnh hưởng trực
tiếp đến tốc độ tính toán của tầng tuyến tính nói riêng và cả thuật toán nói
chung. Ngoài ra, luận án cũng thực hiện đánh giá lại tài nguyên khi cài đặt ma
trận Had(1, 2, 4, 145) trên phần cứng; kết quả phân tích thấy rằng đánh giá
của luận án là sâu và chặt hơn. Về đánh giá lý thuyết và kết quả thực nghiệm
cài đặt trên FPGA cho thấy ma trận đề xuất giảm được khoảng 10% về tài
nguyên và có tốc độ xử lý dữ liệu cao hơn khoảng 1,33 lần so với ma trận gốc
trong AE và ma trận đề cập trong [53] khẳng định tính đúng đắn của lý
thuyết đưa ra. Kết quả nghiên cứu có ý ngh a rất lớn trong việc thực hiện nâng
cao hiệu quả mã hóa, giải mã dữ liệu khi sử dụng mã khối cho các ứng dụng
trên thực tế đặc biệt là đối với các mạng truyền thông có bảo mật yêu cầu tốc
độ cao, băng thông rộng, đa dịch vụ và yêu cầu thời gian thực.
105
KẾT LUẬN
An ninh, an toàn, bảo mật thông tin trên mạng truyền số liệu luôn là đòi
hỏi cần thiết và cấp bách đối với mỗi quốc gia trong giai đoạn hiện nay, đặc
biệt khi vấn đề tác chiến trên không gian mạng đang là hiện hữu. Với mục
tiêu đặt ra là 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 đã có những đóng góp sau:
A. Các kết quả ạt ược của luận án
- Đề xuất ứng dụng mật mã đường cong elliptic (ECC) cho giao thức
thỏa thuận khóa Diffie-Hellman thay cho tham số mã hóa khóa công khai
A trong giao thức bảo mật IP c nhằm giảm độ dài khoá mã, cho phép
tăng tốc độ trao đổi khóa mà vẫn bảo đảm được mức bảo mật. Phân tích, lựa
chọn 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 giúp tăng tốc độ tính toán cho thuật toán (8µs so với
phương pháp tính th o NAF thông thường), tiết kiệm tài nguyên (xấp xỉ 9%)
khi thực hiện trên phần cứng và giảm thời gian trao đổi khoá trong hệ thống
mật mã bảo mật mạng truyền số liệu đa dịch vụ.
- Xây dựng công thức tính số xung nhịp trung bình cho phép cộng hai
số nguyên khi thực hiện trên phần cứng làm cơ sở cho việc đánh giá tính hiệu
quả của một số thuật toán nhân số lớn trong mật mã.
- Đề xuất ma trận MD Cir(4,149,1,1) mới có tính chất mật mã tốt ứng
dụng trong tầng tuyến tính của các thuật toán mã khối có cấu trúc PN cho
phép nâng cao chất lượng mật mã và góp phần tăng tốc cho thuật toán mã/giải
mã dữ liệu (tăng khoảng , lần so với AE chuẩn), giảm tài nguyên khi cài
đặt trên phần cứng (khoảng 0%). Luận án đưa ra điều kiện đối với đa thức
sinh của trường để từ đó có thể lựa chọn các hệ số trong ma trận tuyến tính
mà phép nhân đối với nó chỉ yêu cầu xung nhịp, đây chính là yếu tố ảnh
hưởng trực tiếp đến tốc độ tính toán của tầng tuyến tính nói riêng và cả thuật
106
toán mã hóa nói chung.
- Thực hiện cứng hóa thành công thuật toán nhân điểm th o NAF tính toán trực tiếp trên trường GF(2283) và thuật toán AE với ma trận MD mới
do luận án đề xuất bằng công nghệ FPGA, từ đó có thể xây dựng giải pháp
bảo mật góp phần 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. Đ ng g p mới của luận án
- Đề xuất ứng dụng mật mã đường cong lliptic cho giao thức trao đổi
khóa Diffie-Hellman trong giao thức bảo mật IP c dựa trên thuật toán nhân
điểm th o NAF tính toán trực tiếp thay cho tham số mã hóa khóa công khai
A nhằm giảm độ dài khóa mã tăng tốc độ, giảm tài nguyên sử dụng khi
thực hiện phép nhân điểm giúp tăng tốc độ trao đổi khóa trong hệ thống bảo
mật.
- Đề xuất ma trận MD Cir(4,149,1,1) mới có tính chất mật mã tốt ứng
dụng trong tầng tuyến tính của các thuật toán mã khối có cấu trúc PN nhằm
nâng cao tốc độ thực thi và tiết kiệm tài nguyên khi thực hiện trên phần cứng.
- Thực hiện cứng hóa thành công thuật toán nhân điểm th o NAF tính toán trực tiếp trên trường GF(2283) cho ECC và thuật toán AE với ma trận
MDS mới do luận án đề xuất bằng công nghệ FPGA.
C. Đề xuất hướng nghiên cứu tiếp th o
- Nghiên cứu ứng dụng các kết quả trên để xây dựng và cài đặt giao
thức bảo mật cho mạng truyền số liệu đa dịch vụ trên thực tế.
- Nghiên cứu cải tiến vấn đề tăng kích thước các gói tin được xử lý th o
IPSec do phải thêm vào các tiêu đề khác nhau làm ảnh hưởng đến thông
lượng hiệu dụng của mạng.
107
DANH MỤC CÁC CÔNG TRÌNH KHOA HỌC Đ CÔNG BỐ
1. Nguy n Quốc Toàn, Hoàng Nam, Hoàng Văn Quân (2010): Xây
dựng giao thức trao đổi khóa an toàn trên hệ mật Elliptic , T chí
Nghiên cứu K &CNQS – Viện K & N S, số 9/ 0-2010, tr. 35-40.
2. Lều Đức Tân, Hoàng Văn Quân, Hoàng Ngọc Minh (2014): Một
phương pháp tính toán tương quan giữa xung nhịp máy và phép cộng
hai số nguyên khi thực hiện trên phần cứng , T chí Nghiên cứu
KH&CNQS – Viện K & N S, số / 0-2014, tr. 75-81
3. Nguy n Biên Cương, Hoàng Văn Quân (2015), Hiệu quả thiết kế cứng hóa phép nhân điểm cho đường cong Koblitz trên trường GF(2m) , ội
nghị Kỹ thuật o lường toàn quốc, Tháng 5/2015, tr. 948-953.
4. Hoàng Văn Quân, Nguy n Biên Cương, Lều Đức Tân (2015), Một
phương pháp hiệu quả thực hiện phép nhân điểm trên đường cong
lliptic sử dụng thuật toán NAF , T chí Nghiên cứu K & NQS –
Viện K & N S, số Đặc san Viện Điện tử, 0-2015, tr. 217-224
5. Hoàng Văn Quân (2015), Đề xuất ma trận MD đạt hiệu năng cao khi
cài đặt trên phần cứng cho các mã pháp dạng AE , T chí Nghiên
cứu K & N S – Viện K & N S, số 40/12-2015, tr. 118-125.
108
TÀI LIỆU THAM KHẢO
Tiếng Việt:
1. Ban Cơ yếu Chính phủ (20 ), Xây dựng hệ thống xác thực, bảo mật
cho các hệ thống thông tin hính hủ , Hà Nội - 2011.
2. BTL Thông tin liên lạc (20 0), Xây dựng m ng truy n số liệu quân sự
đa dịch vụ , Hà Nội - 2010.
3. Đặng Minh Tuấn (20 ), Nghiên cứu, thiết kế, chế t o thiết bị mật m
hiệu năng cao có khả năng tích hợ trong các sản hẩm d ng trong
thông tin liên l c và truy n số liệu , Đề tài KHCN cấp Nhà nước, Viện
Điện tử – Viện KHCN Quân sự – 2013.
4. Nguy n Tiến Ban (20 ), ông nghệ P/ PLS và các m ng riêng ảo ,
Nhà xuất bản thông tin và truyền thông – Hà Nội 2011.
5. Nguy n Thúy Vân, Kỹ thuật số , Nhà xuất bản Khoa học & Kỹ thuật
– Hà Nội 999.
6. Trần Tuấn Điệp, Lý Hoàng Tú ( 999), Lý thuyết xác suất và thống kê
toán học - Nhà xuất bản Giáo dục – Hà Nội 999.
Tiếng Anh:
7. A. Alshamsi, T. aito (200 ), A Technical Comparison of IPSec and SSL
8. B. A. Salman, M. Rogawski and J. Kaps, Efficient Hardware
Accelerator for IPSec based on partial reconfiguration on xilinx
FPGAs, in Reconfigurable Computing and FPGAs, 2011 International
Conference on, 2011, pp. 242–248.
9. Anirban Chakrabarti, Manimaran Govindarasu, P Security–IPSec
10. Ashwini R. Tonde and Akshay P. Dhande, m lementation of S
lgorithm Based on FPG International Journal of Current
Engineering and Technology , 2014
109
11. A. M n z s, T. Okamoto, and . Vanston ( 99 ), ducing lliptic
curv logarithms to logarithms in a finit fi ld , IEEE Transactions on
Information Theory 39, 1993, pp 1639-1646.
12. Bruce S. Davie, Yakov Rekhter (2000). MPLS: Technology and
Application. Morgan Kaufmann Press.
13. B. Kaliski (2003), Twirl and rsa key si e , RSASecurity.com, May
2003.
14. Biryukov, A. Analysis of involutional ciphers: Khazad and Anubis. in
Fast Software Encryption. 2003. Springer.
15. Borghoff, J., et al., PRINCE–a low-latency block cipher for pervasive
computing applications, in Advances in Cryptology–ASIACRYPT 2012.
2012, Springer; pp 208-225.
16. Chodowiec, P. and K. Gaj, Very compact FPGA implementation of the
AES algorithm, in Cryptographic Hardware and Embedded Systems-
CHES 2003. 2003, Springer; pp 319-333
17. Cas Cr m rs (20 ), Key Exchange in IPsec revisited: Formal Analysis of
IKEv1 and IKEv2 .
18. Chen Lin, Wang Guowei, Security Research of VPN Technology
Based on PLS , August 2010, pp 168-170
19. Darrel Hankerson, Alfred Menezes, Scott Vanstone, Guide to lli tic
Curve Cryptography , Springer – 2004.
20. Daemen, J. and V. Rijmen, The design of Rijndael: AES-the advanced
encryption standard. 2002: Springer
21. Daemen, J. and V. Rijmen, The wide trail design strategy, in
Cryptography and Coding. 2001, Springer; pp 222-238.
22. Daemen, J. L. Knudsen and V.Rijmen, The block cipher Square, in
110
Fast Software Encryption, 1997. Springer
23. Eнзин, О. and М. Иванов, Стардарт криптографической
защиты- S. Конечные поля. 2002: КУДРИЦ-ОБРАЗ М
24. Elbirt, A.J., et al., An FPGA-based performance evaluation of the AES
block cipher candidate algorithm finalists. Very Large Scale
Integration (VLSI) Systems, IEEE Transactions on, 2001. 9(4): pp
545-557
25. Elaine Barker, Don Johnson, and Miles Smid, Recommendation for
Pair-Wise Key Establishment Schemes Using Discrete Logarithm
ry togra hy NIST SP; 800-56A March, 2007
26. Guo, J., et al., The LED block cipher, in Cryptographic Hardware and
Embedded Systems–CHES 2011. 2011, Springer. pp 326-341.
27. Guo, J., T. Peyrin, and A. Poschmann, The PHOTON family of
lightweight hash functions, in Advances in Cryptology–CRYPTO 2011.
2011, Springer. pp 222-239.
28. H. oussi, M.Hussain, H.Afifi, D. r t (20 ), IKEv1 and IKEv2: A
Quantitative Analyses .
29. International Organization for Standardization (1989), ISO 7498:
Information processing systems, Open Systems Interconnection, Basic
Reference Model.
30. International Organization for Standardization (1989), ISO 74982:
Information processing systems, Open Systems Interconnection, Basic
Reference Model, Part 2: Security Architecture
31. IPSec, VPN, and Firewall Concepts. Cisco Press, 2004
32. JoseOscar Fajardo, Jon Ander Picó, Alejandro (20 ), New
tunnelling capabilities for BGP/MPLS IP VPN in GNU/Linux .
33. Jean-Pierre Deschamps, Gustavo D. Sutter Enrique Cantó (2012),
111
Guide to FPG m lementation of rithmetic Functions Springer -
2012.
34. Jean-Pierre Deschamps José Luis Imaña Gustavo D. Sutter (2009),
ardware m lementation of Finite-Field rithmetic . Electronic
Engineering.
35. Jerome A. Solinas (2000), fficient rithmetic on Koblit urves ,
Designs, Codes and Cryptography, 2000; (pp 195-249)
36. Jiři Lik š, Jos f Laga, Základní Statiscke Tabulky", SNTL-
Nakladatelstvi technicke literatury, Praha 1978.
37. Kaur A, Bhardwaj P and Naveen Kumar, FPGA Implementation of
fficient ardware for the dvanced ncry tion Standard , (IJITEE)
ISSN: 2278-3075, Volume-2, Issue-3, February 2013.
38. Kapil A. Gwalani, Omar Elkeelany, Design and valuation of FPG
Based Hardware Accelerator for Elliptic Curve Cryptography Scalar
ulti lication , Issue 5, Volume 8, May 2009; pp (884-893)
39. LeonLeon Adams (2002), Choosing the Right Architecture for Real-Time
Signal Processing Designs , SPRA879 Texas Instruments – 2002.
40. Liji L.Wu, Yun Niu and X. Zhang, n PSec ccelerator Design for a
10Gb s nLine Security Network Processor , Journal Of Computers,
Vol. 8, No. 2, February 2013; pp 319-325.
41. Langford, S.K. and M.E. Hellman. Differential-linear cryptanalysis. in
Advances in Cryptology— RYPTO’94. 1994. Springer.
42. Liu Bozhong, et al., On the security of 4-bit involutive S-boxes for
lightweight designs, in Information Security Practice and Experience.
2011, Springer. pp. 247-256.
43. Mohd Nazri Ismail: European Journal of Scientific Research ISSN
1450-216X Vol.28 No.2 (2009), pp.215-226)
112
44. Monc f Amara, Amar iad (20 ), Hardware Implementation of
Elliptic Curve Point Multiplication over GF(2m) for rotocols .
45. Michael H. Behringer, Monique J.Morrow (2005). MPLS VPN
Security. Cisco Press.
46. Mac Williams Florence Jessie and Neil James Alexander Sloane, The
theory of error-correcting codes. Vol. 16. 1977: Elsevier.
47. Masoumi & Mahdizadeh, Novel and fficient ardware
Implementation of Scalar Point ulti lier . Iranian Journal of
Electrical & Electronic Engineering, Vol. 8, No. 4, Dec. 2012
48. National Institute for Standards and Technology (NIST).
Recommended lli tic urve for Federal Government Use , July
1999
49. P. Barreto and V. Rijmen. The Anubis block cipher. First Open
NESSIE Workshop, Leuven, Belgium, November 13-14, 2000.
50. Praful Kumar Singh, Mrityunjay Kumar Choudhary (2013), Scalar
Multiplication Algorithms of Elliptic Curve Cryptography over GF (2m) , (IJITEE) ISSN: 2278-3075, Volume-3, Issue-1, June 2013
51. FC 8 8, HMAC-SHA256, SHA384, and SHA512 in IPsec .
52. RFC 4945, The Internet IP Security PKI Profile of IKEv1/ISAKMP,
IKEv2, and PKIX
53. Sim S.M, K. Khoo, Thomas Peyrin, Lightweight MDS Involution
Matrices . in Fast Software Encryption. 2015
54. Shannon, C.E., Communication theory of secrecy systems. Bell system
technical journal, 1949. 28(4): pp 656-715
55. usan trom, Oskar ikst n (200 ), Important of cryptography in
network security .
56. Sandeeps, Hameen Shanavas I (2012), Design of Hardware
113
m lementation of lli tic urve ry togra hy over Binary Field ,
International Journal of Electronic and Communication Engineering,
Vol 2, No 2 – 2012; pp 78-82.
57. Shylashree N, Nagarjun Bhat, V Shridhar (2012), FPG
Implementations of high speed elliptic curve cryptography: A surv y
58. Shylashree.N, Nagarjun Bhat and V. Shridhar, FPG
Implementations of Advanced Encrytion Standard SURV Y ,
International Journal of Advances in Engineering & Technology, May
2012.
59. Sajadieh, M., Dakhilalian, M., Mala, H., Sepehrdad, P. “Recursive
Diffusion Layers for Block Ciphers and Hash Functions”. In: Canteaut,
A. (ed.) FSE 2012. LNCS, vol. 7549, pp. 385-401. Springer, Heidelberg
(2012).
60. Xilinx (2015), Z 706 valuation Board for the Zynq-7000 XC7Z045
ll Programmable So User Guide , April 28, 2015.
61. Xilinx (2015), Zynq-7000 All Programmable SoC ZC706 Evaluation
Kit Getting Started Guide , January 28, 2015.
62. William Stallings (2011), Cryptography and network security - fifth
edition , 2011.
63. William Stalling Ph.D (1999), ry togra hy and Network security
Principles and Practice –Second edition , Prentice – Hall, Inc., USA.
64. Z'aba, M.R. Ph.D, Analysis of linear relationships in block ciphers ,
Queensland University of Technology, 2010
1
PHỤ LỤC:
MỘT SỐ MODULE THỰC HIỆN PH P NHÂN ĐI M
A.1. Giới thiệu cấu tr c của kít phát tri n FPGA Zynq ZC706
Với những phân tích về việc lựa chọn công nghệ phần cứng FPGA để
thực hiện các thuật toán mật mã, luận án lựa chọn phần cứng có khả năng phù
hợp đó là họ Zynq của Xilinx, cụ thể là bảng mạch phát triển ZC70 với chíp
xử lý Znq7Z0 5FFG900- của Xilinx tích hợp bộ xử lý nhúng A M cort x
A9 [60], [61] do họ linh kiện này cung cấp các bộ xử lý số học chuyên dụng
tốc độ cao và tài nguyên bộ nhớ trong lớn, phù hợp cho nhiều ứng dụng như:
xử lý tín hiệu số, phát triển hệ thống nhúng, ứng dụng mạng, thực thi các bài
toán tính toán phức tạp... ZC70 Evaluation Kit cung cấp nhiều tính năng nổi
trội như:
Chip FPGA xử lý trung tâm XC7Z045: XC7Z0 5 là chip FPGA thế
hệ thứ 7 mới nhất hiện nay của Xilinx dựa trên nền công nghệ 28 nm có mật
độ tích hợp cao, cung cấp tới 50.000 khối logic C lls, 900 khối D P, 2 80
Kb block AM. Ngoài ra, XC7Z0 5 có các tính năng mạnh của họ Zynq
7000 như: tích hợp cor vi xử lý cứng A M cort x A9 (2 cor ), hỗ trợ chuẩn
truyền dẫn tốc độ cao PCI , U B 2.0.
Hỗ trợ giao ti p với các thi t bị lưu giữ bộ nhớ với dung lượng lớn:
Ngoài bộ nhớ (Block Ram) tích hợp trong chip, ZC70 Evaluation Kit có hỗ
trợ bộ nhớ mở rộng với chuẩn DD gồm 02 khối, GB cho khối PL và GB
cho khối P . Ngoài ra, board còn tích hợp bộ điều khiển D card, cho phép
truy xuất dữ liệu trên card D hoặc lưu giữ 8 cấu hình khác nhau cho FPGA.
Hỗ trợ nhiều chuẩn ngoại vi: ZC70 Evaluation Kit cũng hỗ trợ nhiều
chuẩn giao tiếp với máy tính như: một cổng Eth rn t với tốc độ truyền là
0/ 00/ 000 Mb, PCI , 0 cổng U B 2.0 OTG JTag, 0 cổng U B UA T,
2
Board còn có 2 kh cắm mở rộng, trong đó một kh hỗ trợ ngoại vi tốc độ cao
và một kh hỗ trợ ngoại vi tốc độ thấp.
Hình A.1 Kit hát tri n Z 706 valuation Kit của Xilinx
ZC 70 là bảng mạch phát triển bộ xử lý nhúng Zynq-7000 XC7Z045-
2FFG900C AP SoC cung cấp môi trường phần cứng cho việc phát triển
nhúng. XC7Z0 5 AP oC tích hợp trên cùng khuôn gồm: Hệ thống xử lý (PS-
processing system), bộ lôgics lập trình (PL-programmable logic). Hệ thống
xử lý được tích hợp 02 bộ xử lý ứng dụng A M® Cort x™-A9 MPCor ™,
AMBA® các đường kết nối bộ nhớ bên trong, giao diện bộ nhớ ngoài và các
thiết bị ngoại vi gồm: U B, Eth rn t, PI, D/ DIO, I2C, CAN, UA T, and
GPIO.
3
Hình A.2 Sơ đồ khối kiến trúc của kít Zynq-7000 XC7Z045-2FFG900C
Chip XC7Z045-2FFG900C AP SoC [61] thuộc dòng Kint x-7 FPGA
của Xilinx có cấu trúc tích hợp mật độ cao với 900 chân vào ra, 50.000
Logic Cells, 218.600 Look-Up Tables (LUTs), 437.200 Flip-Flops, 2.180KB
RAM, ngoài ra nó còn cung cấp:
- Hoạt động với tần số xung nhịp clock lên đến GHz.
- Giao diện PCI Expr ss.
- 08 bộ mạch vòng khóa pha PLL nhúng.
Thành phần nhỏ nhất trong chip FPGA Zynq (họ Kint x-7 của XILINX
cũng cùng cấu trúc) được gọi là logic element (LE). Về cơ bản LE là một
bảng tra (lookup table-LUT) với đầu vào trên cơ sở cấu trúc AM và thanh
ghi trạng thái, bất kỳ sự kết hợp nào với một hàm logic của đầu vào đều
được lưu giữ và ghi lại trong LE. Mỗi một LE có thể hoạt động ở 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
Hình A.3 ô tả các khối chức năng của bộ xử lý R
6
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: -- ------------------------------------------------------------
------------------------------------------------------------ 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)
7
xP0 <= (others => '0'); yP0 <= (others => '0'); elsif load = '1' then xP0 <= xP; yP0 <= yP;
xQ_tmp <= (others => '0'); yQ_tmp <= (others => '0');
begin if clk' event and clk = '1' then if reset = '1' then 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 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';
8
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';
9
elsif ((aEqual1 = '1') and (Q_infinity = '1'))
TT <= 11;
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; 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 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;
10
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.
ì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
ình .6 Bus hệ thống nối lõi mật m elli tic và R cortec A9
- void ECC_Start(XGpio *control, u8 mode)
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ó:
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
- void ECC_WriteData(XGpio *nonci, XGpio *control,
u32* data, u8 type)
ho t động
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
- void ECC_ReadData(XGpio *resci, XGpio *control, u32
*data, u8 type)
-> type Lo i dữ liệu đầu vào
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
ì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…