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 982, 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 982 [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 1s.

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 = (xm1, ..., xk, xk1, ..., x1, x0)2 (2.1)

Y = (ym1, ..., yk, yk1, ..., 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 sk.

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à = 2f1  thì trạng thái đầu

tiên của C là có đúng f1 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, 2f1  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ó 2k2k = 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(1p > )= (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(1p > ) = =

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(1p > ) =

Đ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 (C0) {

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ể k14, 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)22k (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)107 (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= 2i (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= 28i (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

3380s

2583s

2575s

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 74982:

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…