Tải bản đầy đủ (.pdf) (126 trang)

Thiết kế hệ thống mã khối bằng công nghệ fpga

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.31 MB, 126 trang )

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
........................................

LỤC VŨ KHANH

THIẾT KẾ HỆ THỐNG MÃ KHỐI
BẰNG CÔNG NGHỆ FPGA

LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỆN TỬ

THÁI NGUYÊN 2010
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

Tai ngay!!! Ban co the xoa dong chu nay!!!




ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP
........................................

LUẬN VĂN THẠC SĨ KỸ THUẬT ĐIỆN TỬ

Tên đề tài:

THIẾT KẾ HỆ THỐNG MÃ KHỐI
BẰNG CÔNG NGHỆ FPGA

Ngành: KỸ THUẬT ĐIỆN TỬ


Mã số: 60 52 70
Học viên: Lục Vũ Khanh
Người hướng dẫn Khoa học: PGS.TS. Đỗ Xuân Tiến

THÁI NGUYÊN 2010
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




1

MỤC LỤC
Trang
Trang phụ bìa
Lời cam đoan
Lời cảm ơn
MỤC LỤC .............................................................................................................. 1
DANH MỤC CÁC TỪ VIẾT TẮT ......................................................................... 5
DANH MỤC CÁC BẢNG ...................................................................................... 7
DANH MỤC CÁC HÌNH VẼ ................................................................................. 8
MỞ ĐẦU .............................................................................................................. 10
CHƢƠNG 1 HỆ TRUYỀN TIN MẬT VÀ CƠ SỞ LÝ THUYẾT MÃ KHỐI ....... 13
1.1. TỔNG QUAN VỀ HỆ TRUYỀN TIN MẬT. ................................................. 13
1.1.1. Mô hì nh hệ thống truyền tin mật. ................................................................. 13
1.1.2. Các phƣơng pháp mã mật cơ bản. ................................................................ 15
1.1.2.2. Phƣơng pháp thay thế. .............................................................................. 15
1.1.3. Mô hì nh hệ mật. ........................................................................................... 16
1.1.3.1. Hệ mật đối xƣ́ng (Hệ mật khoá bí mật). .................................................... 16
1.1.3.2. Hệ mật không đối xƣ́ng (Hệ mật khoá công khai ). .................................... 17

1.1.4. Phân loại hệ mã............................................................................................ 18
1.1.5. Đánh giá độ mật của hệ thống truyền tin mật. .............................................. 20
1.2. CƠ SỞ LÝ THUYẾT VỀ MÃ KHỐI. ............................................................ 21
1.2.1. Khái niệm về mã khối. ................................................................................. 21
1.2.2. Nguyên lý thiết kế mã khối. ......................................................................... 22
1.2.2.1. Nguyên lý thiết kế chung về độ an toàn..................................................... 22
1.2.2.2. Nguyên lý thiết kế cho ƣ́ng dụng.............................................................. 23
1.2.3. Các tham số của mã khối. ............................................................................ 23
1.2.3.1. Độ dài khối m. .......................................................................................... 23
1.2.3.2. Độ dài khóa k và cỡ khóa đúng k t. ............................................................ 24
1.2.4. Các cấu trúc mã khối cơ bản. ...................................................................... 24
1.2.4.1. Cấu trúc mã Feistel. .................................................................................. 24
1.2.4.2. Cấu trúc cộng - nhân. ................................................................................ 26
1.2.5. Các mã lặp. .................................................................................................. 27
1.2.5.1. Mã lặp và hàm vòng.................................................................................. 27
1.2.6. Độ an toàn của các hệ mã khối. .................................................................... 28
1.3. GIỚI THIỆU MỘT SỐ KỸ THUẬT MÃ KHỐI ............................................ 29
1.3.1. Chuẩn mã dƣ̃ liệu DES ................................................................................ 29
1.3.2. Chuẩn mã dƣ̃ liệu Xơ-Viết. .......................................................................... 30
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




2

1.3.3. Thuật toán mã hoá dƣ̃ liệu IDEA. ................................................................ 32
1.3.3.1. Quá trình mã hoá của IDEA. ..................................................................... 32
1.3.3.3. Quá trình giải mã của IDEA. ..................................................................... 35
1.3.4. Các chế độ ứng dụng của mã khối. ............................................................... 35

1.3.5. Một số giải pháp kỹ thuật thiết kế mã khối. .................................................. 38
1.3.5.1. Thiết kế mã khối bằng chƣơng trình phần mềm. ....................................... 38
1.3.5.2. Thiết kế mã khối bằng công cụ phần cứng. ............................................... 39
1.3.5.3. Lựa chọn giải pháp thiết kế module mã khối ở Việt Nam. ......................... 40
1.4. Kết luận chƣơng. ............................................................................................ 40
CHƢƠNG 2: CÔNG NGHỆ FPGA ....................................................................... 42
2.1. TỔNG QUAN VỀ CÔNG NGHỆ FPGA. ....................................................... 42
2.1.1. Giới thiệu về công nghệ FPGA. ................................................................... 42
2.1.1.1. Sự phát triển của các thiết bị lập trình đƣợc. ............................................. 42
2.1.1.2. Cấu trúc cơ bản của FPGA. ..................................................................... 45
2.1.1.3. Phân loại FPGA. ...................................................................................... 49
2.1.1.4. Ứng dụng của FPGA................................................................................. 52
2.1.2. Quá trình thiết kế cơ bản trên FPGA. ........................................................... 52
2.1.2.1. Giới thiệu về quá trình thiết kế. ................................................................. 52
2.1.2.2. Tối ƣu lô gic. ............................................................................................ 54
2.1.2.3. Ánh xạ công nghệ. ................................................................................... 54
2.1.2.4. Sắp xếp các phần tử (Placement). .............................................................. 55
2.1.2.5. Định tuyến trên FPGA (rounting).............................................................. 56
2.1.2.6. Tải nạp chƣơng trình. ................................................................................ 57
2.1.3. Giới thiệu về FPGA của hãng ALTERA. ..................................................... 57
2.1.3.1. Các loại FPGA trên thị trƣờng. ................................................................. 57
2.1.3.2. Đặc điểm thiết bị FPGA của hãng Altera. ................................................ 58
2.1.3.3. Các họ FPGA của hãng Altera. ................................................................. 59
2.1.4. Các công cụ thiết kế. .................................................................................... 60
2.1.4.1. Giới thiệu về EDA. ................................................................................... 60
2.1.4.2. Giới thiệu công cụ thiết kế Quartus II. ...................................................... 61
2.1.4.3. Giới thiệu công cụ thiết kế MAX + PLUS II. ............................................ 63
2.1.5. Các ngôn ngữ mô tả phần cứng. ................................................................... 65
2.2. NGÔN NGỮ MÔ TẢ PHẦN CỨNG VHDL. ................................................. 66
2.2.1. Giới thiệu chung về ngôn ngữ VHDL. ......................................................... 66

2.2.1.1. Mô tả cấu trúc. ......................................................................................... 66
2.2.1.2. Mô tả hoạt động. ....................................................................................... 67

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




3

2.2.1.3. Mơ hình thời gian theo các sự kiện rời rạc. ............................................... 68
2.2.2. Mơ hình tổ chức........................................................................................... 69
2.2.2.1. Thƣ viện thiết kế. ...................................................................................... 69
2.2.2.2. Các cấu hình. ............................................................................................ 70
2.3 Kết luận chƣơng. ............................................................................................. 70
CHƢƠNG 3: THIẾT KẾ HỆ THỐNG MÃ KHỐI................................................ 71
3.1. CẤU TRÚC CỦA MODULE MÃ KHỐI. .................................................... 71
3.1.1. Cấu trúc chung. ........................................................................................... 71
3.1.2. Một số yêu cầu đối với module mã khối...................................................... 71
3.2. LỰA CHỌN THUẬT TOÁN CHO MÔ PHỎNG THIẾT KẾ. ....................... 72
3.2.1. Lựa chọn thuật toán. .................................................................................... 72
3.2.2. Mô tả thuật toán DES. .................................................................................. 72
3.2.2.1. Hàm F trong thuật toán DES. .................................................................... 73
3.2.2.2. Lƣợc đồ tạo khoá mã dịch. ........................................................................ 78
3.3. PHƢƠNG PHÁP THIẾT KẾ MODULE DES TRÊN FPGA. ........................ 80
3.3.1. Quy trình và cơng cụ thiết kế. ...................................................................... 80
3.3.1.1. Quy trình thiết kế. ..................................................................................... 80
3.3.1.2. Công cụ thiết kế. ....................................................................................... 81
3.3.2. Sơ đồ khối chức năng của module mã khối DES trên FPGA. ....................... 81
3.3.2.1. Sơ đồ khối tổng quát. ................................................................................ 81

3.3.2.3. Sơ đồ khối chức năng của module DES. .................................................. 83
3.3.3. Mô tả hoạt động của các khối trong module DES bằng VHDL. .................. 85
3.3.3.1. Khối các phép hoán vị............................................................................... 86
3.3.3.2. Mô tả khối DES16. ................................................................................... 87
3.3.3.3. Khối deskey (tính toán khoá). ................................................................... 92
3.3.3.4. Khối Control (điều khiển). ........................................................................ 93
3.3.3.5. Khối Converter (lấy dữ liệu vào/ra)........................................................... 94
3.3.3.6. Tổng hợp các khối chức năng của module DES. ....................................... 95
3.3.3.7. Kiểm tra thiết kế. ...................................................................................... 96
3.3.4. Phần cứng mô phỏng module DES............................................................... 96
3.3.4.1. Khối xử lý chính (mã hoá/giải mã). .......................................................... 97
3.3.4.2. Khối cấu hình cho FPGA. ......................................................................... 97
3.3.4.3. Các phần mạch khác. ............................................................................... 99
3.3.5. Kiểm tra sự hoạt động của DES trong module mã khối. ............................... 99
3.4. KẾT QUẢ THIẾT KẾ MODULE MÃ KHỐI DES. ..................................... 101
3.4.1. Kết quả thiết kế. ......................................................................................... 101

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




4

3.4.1.1. Sơ đồ phần cứng của module. ................................................................. 101
3.4.1.2. Kiểm tra kết quả thiết kế. ........................................................................ 104
3.4.2. Đánh giá kết quả thiết kế module mã khối. ................................................ 105
3.5 Kết luận chƣơng. ........................................................................................... 106
3.6 Kết luận chung............................................................................................... 106
TÀI LIỆU THAM KHẢO ................................................................................... 108

PHỤ LỤC 1 ......................................................................................................... 110
PHỤ LỤC 2: CHƢƠNG TRÌNH MƠ TẢ DES BẰNG VHDL ............................ 113

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




5

DANH MỤC CÁC TỪ VIẾT TẮT
Viết
tắt
APEX
ASIC

Tiếng Anh
Advanced ProgrammablE logic
matriX
Application-Specific Integrated
Circuit

CAE

Computer-Aided Electronics

CBC

Cipher Block Channing mode
Complex Programmable Logic

Devices

CPLD
CDL

Computer Design Language

CFB

ECB
DES
DSP
EDA

Cipher Freed Back
Component & Supplier
Management
Electronic Code Book
Data Encryption Standard
Digital Signal Processing
Electronic Design Automation

FPGA

Field-Programmable Gate Array

FLEX
GOST

Flexible Logic Element MatriX

Gosudarstvennyy Standart
International Data Encryption
Algorithm
Integrated Circuit
Institude of Electrical and
Electronic Engineers
Logic Array Block
Look-Up Table
Logic Block
Logic Cell

CSM

IDEA
IC
IEEE
LAB
LUT
LB
LC

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

Tiếng VIệt
Ma trận logic lập trình đƣợc
Vi mạch tích hợp chun dụng
Cơng cụ thiết kế mạch điện tử có
hỗ trợ máy tính
Phƣơng thƣ́c móc xí ch khới mã
Thiết bị lơgíc lập trình phức hợp

Ngơn ngữ mơ tả dịng dữ liệu phát
triển trong qúa trình đào tạo
Chế đợ phản hồi mã
Hệ thống quản trị nhà cung cấp và
thành phần
Chế độ sách mã điện tử
Chuẩn mã hoá dữ liệu
Xử lý tín hiệu số
Thiết kế điện tử tự động hoá
Vi mạch dùng cấu trúc mảng phần
tử logic mà ngƣời dùng có thể lập
trình đƣợc
Ma trận phần tử logic linh hoạt
Hệ mã dữ liệu Xô Viết
Thuật toán mã hoá dữ liệu quốc tế
Mạch tích hợp
Học Viện kỹ nghệ Điện và Điện Tử
Mảng lớn các Block lập trình đƣợc
Bảng tìm kiếm
Khối Logic
Tế bào Logic




6

Multiple Array matriX
Ma trận chuỗi đa phần tử
Multi-Chip Module

Mô đun đa chip
Mechanical Computer-Aided
Hệ thống thiết kế cơ khí có trợ giúp
MCAD
Design
của máy tính
OFB
Output Freed Back
Chế đợ phản hồi đầu ra
OTP
One - Time Programmable
Loại SRAM lập trình mợt lần
PES
Proposed Encryption Standard
Chuẩn mã hóa dữ liệu
PLD
Programmable Logic Device
Thiết bị logic lập trình đƣợc
PAL
Programmable Array Logic
Mảng logic lập trình đƣợc
PLA
Programmable Logic Array
Mảng logic lập trình đƣợc
PROM Programmable Read Only Memory Chíp bợ nhớ chỉ đọc lập trình đƣợc
RSA là mợt thuật toán mật mã hóa khóa công khai. Thuật toán đƣợc Ron
Rivest, Adi Shamir và Len Adleman mô tả lần đầu tiên vào năm 1977 tại
RSA
Học viện Công nghệ Massachusetts (MIT). Tên của thuật toán lấy từ 3
chữ cái đầu của tên 3 tác giả.

RISC
Reduced Instructions Set Computer Máy tính với tập lệnh đơn giản hóa
SRAM Static Random Access Memory
Bộ nhớ truy cập ngẫu nhiên tĩnh
SSI
Small Scale Integrated
Vi mạch tích hợp cỡ nhỏ
VLSI
Very Large-Scale Integration
Vi mạch tích hợp cỡ lớn
Very high speed integrated circuits Ngôn ngữ mô tả các hệ thống điện
VHDL
HDL
tử số
MAX
MCM

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




7

DANH MỤC CÁC BẢNG
Bảng

Nội dung

2.1


Một số loại FPGA trên thị trƣờng

2.2

Số cổng sử dụng và các chân I/O của các họ FPGA Altera

3.1

Các tham số của phép hoán vị ban đầu IP

3.2

Các tham số của phép hoán vị FP

3.3

Các tham số của hàm mở rộng E

3.4

Tham số của các hộp S-Box

3.5

Các tham số của phép hoán vị P

3.6

Các tham số của phép hoán vị PC-1


3.7

Các tham số của phép hoán vị PC-2

3.8

Mơ tả các tín hiệu vào ra của modul DES

3.9

Danh sách các tệp tin của module DES

3.10

Chức năng các tín hiệu vào/ra của EPC2 LC20

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




8

DANH MỤC CÁC HÌNH VẼ
Hình vẽ
1.1
1.2
1.3
1.4

1.5
1.6
1.7
1.8
1.9
1.10
1.11
1.12
1.13
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
3.1
3.2
3.3
3.4
3.5
3.6
3.7
3.8

Nội dung

Mơ hì nh hệ thống truyền tin
Mô hì nh hệ thống truyền tin mật
Mô hình hệ mật khoá bí mật
Mơ hình hệ mật khoá công khai
Sơ đồ cấu trúc cộng-nhân
Một mã lặp r vòng với hàm vòng f
Mô tả một vòng của DES
Sơ đồ một vòng lặp của GOST
Sơ đồ cấu trúc của IDEA
Chi tiết mỗi vòng đơn của IDEA
Phép biến đổi ra của quá trình mã hoá IDEA
Các chế đợ hoạt đợng của mã khối
Các kỹ thuật thiết kế mã khối
Cấu trúc của PLA
Cấu trúc của PAL
Cấu trúc của CPLD
Mơ tả mơ hình của một FPGA
Cấu trúc Logic Cell trong FPGA
Cấu trúc của FPGA
Bốn loại FPGA điển hình
Cấu trúc SRAM FPGA (SRAM Logic Cell)
Cấu trúc của OTP FPGA (OTP Logic Cell)
Quá trình thiết kế trên FPGA
Kiến trúc tổng quát của Altera FPGA MAX 7000
Cấu trúc chung của Module mã khối
Lƣợc đồ của thuật toán DES
Một vòng của DES
Hàm F trong thuật toán DES
Sơ đồ tính khoá của thuật toán DES
Sơ đồ khối tổng quát của Module mã khối DES trên FPGA

Quá trình mã hoá/giải mã DES
Mô tả chức năng module mã hoá DES

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




9

3.9
3.10
3.11
3.12
3.13
3.14
3.15
3.16
3.17
3.18
3.19
3.20
3.21

Cấu trúc I/O của DES trên công cụ Quartus
Sơ đồ thực thể phép hoán vị IP
Mô tả 16 vòng lặp của DES
Sơ đồ thiết kế của một vòng lặp
Sơ đồ thực thể hộp S-BOX
Sơ đồ khối tạo khoá con

Mô tả khối vào/ra dữ liệu
Sơ đồ liên kết giữa các khối trong module DES
Sơ đồ khối phần cứng của module mã khối DES
Sơ đồ ghép nối giữa FPGA và cáp MV
Sơ đồ ghép nối giữa FPGA và linh kiện cấu hình
Sơ đồ khối phần cứng mơ phỏng
Hình ảnh module mã khối DES đã đƣợc thiết kế

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




10

MỞ ĐẦU
Khi nhu cầu trao đổi thông tin dữ liệu ngày càng lớn và đa dạng, các tiến bộ
về điện tử - viễn thông và công nghệ thông tin không ngừng đƣợc phát triển ứng
dụng để nâng cao chất lƣợng và lƣu lƣợng truyền tin thì các quan niệm về ý tƣởng
và biện pháp bảo vệ thông tin dữ liệu cũng đƣợc đổi mới. Bảo vệ an tồn thơng tin
dữ liệu là một chủ đề rộng, có liên quan đến nhiều lĩnh vực và trong thực tế có thể
có rất nhiều phƣơng pháp đƣợc thực hiện để bảo vệ an tồn thơng tin dữ liệu. Các
phƣơng pháp bảo vệ an tồn thơng tin dữ liệu có thể đƣợc quy tụ vào ba nhóm
chính:
- Bảo vệ an tồn thơng tin bằng các biện pháp hành chính.
- Bảo vệ an tồn thơng tin bằng các biện pháp kỹ thuật (phần cứng).
- Bảo vệ an tồn thơng tin bằng các biện pháp thuật tốn (phần mềm).
Ba nhóm trên có thể đƣợc ứng dụng riêng rẽ hoặc phối kết hợp. Mơi trƣờng
khó bảo vệ an tồn thơng tin nhất và cũng là mơi trƣờng đối phƣơng dễ xâm nhập
nhất đó là môi trƣờng mạng và truyền tin. Biện pháp hiệu quả nhất và kinh tế nhất

hiện nay trên mạng truyền tin và mạng máy tính là biện pháp thuật tốn.
Để bảo mật thơng tin trên đƣờng truyền ngƣời ta sử dụng các phƣơng pháp
mã hoá. Dữ liệu đƣợc biến đổi từ dạng nhận thức đƣợc sang dạng không nhận thức
đƣợc theo một thuật toán nào đó và sẽ đƣợc biến đổi ngƣợc lại ở trạm nhận.
Mật mã là một ngành khoa học chuyên nghiên cứu các phƣơng pháp truyền
tin bí mật. Mật mã bao gồm : Lập mã và phá mã. Lập mã bao gồm hai q trình: mã
hóa và giải mã. Để bảo vệ thông tin trên đƣờng truyền ngƣời ta thƣờng biến đổi nó
từ dạng nhận thức đƣợc sang dạng khơng nhận thức đƣợc trƣớc khi truyền đi trên
mạng, quá trình này đƣợc gọi là mã hố thơng tin (encryption), ở trạm nhận phải
thực hiện quá trình ngƣợc lại, tức là biến đổi thông tin từ dạng không nhận thức
đƣợc (dữ liệu đã đƣợc mã hoá) về dạng nhận thức đƣợc (dạng gốc), quá trình này
đƣợc gọi là giải mã. Đây là một lớp bảo vệ thông tin rất quan trọng và đƣợc sử dụng
rợng rãi trong mơi trƣờng mạng.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




11

Trong kỹ thuật mật mã , hệ mã khối đƣợc đánh giá là hệ mật có nhiều ƣu
điểm, phù hợp cho các hoạt động bảo mật tốc độ cao . Tuy nhiên, tƣ̀ trƣớc đến nay ở
nƣớc ta, việc thƣ̣c hiện mã khối mới chỉ thƣ̣c hiện bằng phần mềm trên máy tí nh PC
và chỉ áp dụng đƣợc cho các hệ truyền tin có tốc độ kh

ông cao , do vậy khả năng

ứng dụng mã khối vào bảo mật cho các luồng thông tin tốc độ cao còn gặp nhiều
khó khăn. Bài toán bảo mật luồng dữ liệu tốc độ cao chỉ có thể giải quyết đƣợc trên

cơ sở “cƣ́ng hoá” đƣợc các thuật toán mã khối , theo nghĩ a việc thƣ̣c hiện các thuật
toán mã khối đƣợc thiết kế bằng phần cứng . Do tí nh chất phƣ́c tạp của các thuật
toán mã khối, việc cƣ́ng hoá mã khối theo phƣơng pháp thiết kế mạch điện tƣ̉ truyền
thống trong điều kiện nền khoa học và công nghệ ở Việt Nam còn hạn chế là rất khó
khăn, trong khi đó hiện nay đã có nhiều công nghệ hiện đại để xƣ̉ lý bài toán này
nhƣ công nghệ ASIC (Application-Specific Integrated Circuit) hay FPGA (FieldProgrammable Gate Array ).
Xuất phát từ các vấn đề trên, tác giả tập trung nghiên cứu “Thiết kế Hệ
thống mã khối bằng công nghệ FPGA” để cứng hoá các thuật toán mã khối. Việc
nghiên cƣ́u để có thể cƣ́ng hoá các thuật toán mã khối trên c ác công cụ phần cứng
nhằm đáp ƣ́ng các yêu cầu về tốc độ xƣ̉ lý dƣ̃ liệu , tính chủ đợng, chun dụng hoá
thiết bị bảo mật cũng nhƣ giá thành là một hƣớng nghiên cƣ́u mới.
Kết quả nghiên cứu của đề tài sẽ góp phần làm rõ tính ƣu việt của cơng nghệ
FPGA đƣợc ứng dụng trong thiết kế hệ chuyển đổi mã mật tốc độ cao, đáp ƣ́ng
đƣợc yêu cầu về tốc độ xử lý dữ liệu, tính chủ đợng, chun dụng hoá thiết bị bảo
mật là một sƣ̣ vận dụng , nghiên cƣ́u phù hợp với điều kiện thƣ̣c t ế về công nghệ và
yêu cầu sƣ̉ dụng ở Việt Nam .
Nội dung của đề tài “Thiết kế hệ thống mã khối bằng công nghệ FPGA”
bao gồm:
Chƣơng 1: Hệ truyền tin mật và cơ sở lý thuyết mã khối.
Trình bày các vấn đề cơ bản về lý thuyết truyền tin, lý thuyết mã và mã mật
kết hợp với sự phát triển của kỹ thuật vi xử lý hiện đại; Giới thiệu tổng quan về hệ
truyền tin mật và cơ sở lý thút mã khới.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




12


Chƣơng 2: Công nghệ FPGA và ngôn ngƣ̃ mô tả phần cƣ́ng VHDL.
Trình bày các vấn đề liên quan đến công nghệ FPGA, cấu trúc chức năng của
FPGA, phân loại cũng nhƣ các ứng dụng thực tế của công nghệ FPGA. Giới thiệu
FPGA của hãng Altera và các công cụ thiết kế đi kèm của hãng cùng với ngôn ngữ
mô tả phần cứng VHDL.
Chƣơng 3: Thiết kế hệ thống mã khối.
Chƣơng này trình bày về phƣơng pháp thiết kế module mã khối trên công
nghệ FPGA, phần cứng mô phỏng module DES và các kết quả thiết kế module mã
khối DES trên FPGA.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




13

CHƢƠNG 1
HỆ TRUYỀN TIN MẬT VÀ CƠ SỞ LÝ THUYẾT MÃ KHỚI
1.1. TỞNG QUAN VỀ HỆ TRÙN TIN MẬT.
1.1.1. Mơ hì nh hệ thống truyền tin mật .
Trong cuộc sống , con ngƣời luôn có nhu cầu trao đổi thông tin với nhau có
nghĩa là có nh u cầu truyền tin cho nhau . Hình 1.1 biểu diễn mơ hì nh của hệ thống
truyền tin bao gồm: Nguồn tin, kênh tin và nhận tin.
ngn tin

kªnh tin

nhËn tin


Hình 1.3: Mơ hì nh hệ thống truyền tin.
Trong mô hì nh này : Nguồn tin là nơi sản sinh ra các tin tƣ́c cần truyền đi trên
kênh tin dƣới dạng các bản tin . Kênh tin là môi trƣờng vật lý xác đị nh để truyền các
bản tin dƣới các dạng tín hiệu điện , quang …. Nhận tin là cơ cấu khôi phục thông
tin ban đầu tƣ̀ tí n hiệu lấy ở đầu ra của kênh tin.
Do xã hội ngày càng phát triển , nên nhu cầu trao đổi thông tin cũng tăng theo
không ngƣ̀ng. Các nội dung thông tin có liên quan đến lợi ích , qùn lợi của mợt sớ
ngƣời hay một giai cấp nào đó cần đƣợ c giƣ̃ kí n, bí mật vì vậy nhu cầu bảo mật nội
dung thông tin đƣợc truyền đi hì nh thành và phát triển ngày càng lớn.
Song song với sƣ̣ phát triển mạnh mẽ của khoa học công nghệ nói chung và
công nghệ thông tin nói riêng thì bảo mật nội dung thông tin đóng một vai trò hết
sƣ́c quan trọng đối với tất cảc các lĩ nh vƣ̣c : Chính trị, quân sƣ̣ , ngoại giao, kinh tế ,
xã hội … và đối với an ninh của mọi quốc gia trên toàn thế giới.
Do vậy hệ thống tru yền tin mật là hệ thống mà trong đó nội dung thông tin
phải đƣợc bảo vệ và giữ bí mật khi truyền trên kênh tin trƣớc sự tấn công , khám phá
bất hợp pháp của mã thám . Hình 1.2 mơ tả mợt cách tổng quát về mô hì nh của một
hệ thống truyền tin mật . Trong đó : Mã hoá là quá trình biến đổi các bản tin rõ R
thành các bản tin mã M bằng thuật toán mã hoá E K và đƣợc xem nhƣ một hàm :
M = E(R,KE)

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




14

nhiễu

mà thám


nguồn tin

mà hoá

kênh tin

giải mÃ

nhận tin

khoá mật mÃ

khoá mật m·

Hình 1.4: Mô hì nh hệ thống truyền tin mật.
Giải mã là quá trình biến đổi ngƣợc của mã hoá có nghĩa là biến đổi các bản
tin mã M tƣ̀ đầu ra của kênh tin thành các bản tin rõ R để đƣa tới nhận tin và cũng
đƣợc xem nhƣ một hàm:
R = D(M,KD)

Các khoá mã K E và khoá dịch K D đƣợc gọi là khoá mã mật tham gia vào các
thuật toán mã hoá E và thuật toán giải mã D.
Mã thám là các đối tƣợng có khả năng chặn bắt , thu nhận cá c bản tin mã M tƣ̀
kênh tin, nhƣng không biết khoá mã K

và khoá giải mã K D nhằm tì m ra bản tin rõ
R (thông thƣờng mã thám sƣ̉ dụng khoá giải mã K 'D để tìm ra bản rõ R'  R).
E


Nhiễu là do sƣ̣ tác động của môi trƣờng truyền dẫn.
Đôi khi thƣờng bị đồng nhất hai khái niệm hệ thống truyền tin mật và hệ mật
khi đánh giá độ mật của hệ thống . Theo [1] hệ mật là một bộ 5 (R, M, K, E, D) thoả
mãn các điều kiện sau:
a. R (không gian các bản tin rõ) là một tập hợp hữu hạn các bản rõ có thể có.
b. M (không gian các bản tin mã ) là một tập hợp các bản tin mã có thể có.
c. K (không gian khoá ) là một tập hợp hữu hạn các khoá mật mã có thể có.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




15

d. Đối vớ i mỗi k  K có một quy tắc mã hoá e

k E

và một thuật toán giải mã

tƣơng ƣ́ng d k  D, mà mỗi e k: R  M và d k: M  R là những hàm đƣợc thoả mãn
dk(ek(x)) = x với mọi bản tin rõ x  R.
Điều kiện (d) là quan trọng nhất có nghĩa là nếu có một bản tin rõ x đƣợc mã
hoá bằng thuật toán E và bản tin mã nhận đƣợc sau đó đƣợc giải mã bằng thuật toán
giải mã D thì phải thu đƣợc bản tin rõ x ban đầu.
1.1.2. Các phƣơng pháp mã mật cơ bản .
Có hai phƣơng pháp mã mật cơ bản là: Chuyển vị (Transportation) và thay thế
(Substitution).
1.1.2.1. Phương pháp chuyển vị .

Chuyển vị là sƣ̣ thay đổi các vị trí các thành phần của bản tin rõ theo một quy
ƣớc nào đó . Sƣ̣ thay đổi vị trí này phụ thuộc vào một khoá xác đị nh dùng cho cả
mã hoá và giải mã.
Nhận thấy rằng hệ mã chuyển vị không có các phép toán đ ại số nào đƣợc thực
hiện khi mã hoá , giải mã và độ dài của bản tin mã bằng với độ dài của bản tin rõ

,

nên mã thám có thể dễ dàng khám phá để tì m ra bản tin rõ ban đầu nhờ việc tì m các
hoán vị có nghĩa từ bản ti n mã. Các thành phần của bản tin bị xáo trộn thay đổi trật
tƣ̣ làm biến đổi về hì nh thƣ́c nhƣng về “chất” thì vẫn tồn tại tần suất xuất hiện của
các phần tử rõ trong bản mã vẫn giữ nguyên . Phƣơng pháp này có độ mật r ất hạn
chế.
1.1.2.2. Phương pháp thay thế.
Thay thế là sƣ̣ thay thế các phần tƣ̉ của bản tin rõ bằng các phần tƣ̉ của bản tin
mã tƣơng ứng theo một quy ƣớc xác định nào đó để nhận đƣợc bản tin mã mong
muốn. Trong phƣơng phá p thay thế có nhiều dạng khác nhau
(Monoalphabetic), thay thế đa biểu

: thay thế đơn biểu

(Polyalphabetic) và thay thế ngẫu nhiên

(Random substitution). Điển hì nh cho phƣơng pháp thay thế đơn biểu là phƣơng
pháp Julius Caesar với mơ hình thay thế tƣ̀ng chƣ̃ cái trong bản rõ bằng một chƣ̃ cái
khác tƣơng ứng để tạo thành bản mã . Trong phƣơng pháp này các chƣ̃ cái rõ tƣ̀ A
đến Z nằm trên hai vòng tròn đồng tâm , bƣớc lệch giƣ̃a hai vòng tròn chí nh là bƣớc

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên





16

thay thế. Phƣơng pháp này chỉ làm thay đổi bộ mặt của bản rõ bằng việc dị ch
chuyển tần xuất , rất dễ dàng khám phá . Với phƣơng pháp thay thế đa biểu , việc
khám phá trở nên khó khăn hơn , đặc trƣng cho phƣơng pháp này là phƣơng pháp sử
dụng bảng Vigenère . Cuối cùng là phƣơng pháp thay thế ngẫu nhiên . Việc thay thế
càng ngẫu nhiên thì đợ mật càng cao , song việc phục hồi lại bản rõ lại càng phƣ́c
tạp. Để thƣ̣c hiện quá trì nh mã hoá và giải mã cầ n phải có khoá mã .
1.1.3. Mô hì nh hệ mật .
Các hệ mật hiện nay đƣợc chia thành hai loại : hệ mật khóa bí mật và hệ mật
khóa công khai . Trong hệ mật khóa bí mật , nhƣ̃ng ngƣời sƣ̉ dụng hợp pháp (ngƣời
gƣ̉i và ngƣời nhận ) phải chia sẻ mợt khóa bí mật chung và khóa đó không đƣợc biết
đối với thám mã đối phƣơng . Trong hệ mật khóa công khai , ngƣời sƣ̉ dụng hợp
pháp chỉ cần các thông tin trung thực công khai nào đó . Trong luận văn chỉ đề cập
đến việc ƣ́ng dụng các hệ mật khoá bí mật .
1.1.3.1. Hệ mật đối xứng (Hệ mật khoá bí mật).
Theo [2] mô hì nh hệ mật của Shannon đƣợc thể hiện trong hì nh 1.3. Trong mơ
hình này, khóa bí mật Z đƣợc phân phối tới ngƣời gửi và n gƣời nhận theo một kênh
an toàn. Khóa này sau đó đƣợc sử dụng để mã hóa bản rõ X thành bản mã Y bởi
ngƣời gƣ̉i và đƣợc dùng để giải mã bản mã Y thành bản rõ X bởi ngƣời nhận . Bản
mã đƣợc truyền trên kênh không an toàn và giả thiết rằng thám mã đối phƣơng luôn
có thể truy nhập để nhận đƣợc các bản mã . Tất nhiên thám mã không thể truy nhập
đƣợc tới khóa bí mật . Hệ mật khóa bí mật nhƣ thế đƣợc gọi là hệ mật đối xƣ́ng để
phân biệt với hệ mật khóa công khai không đối xứng trong đó các khóa khác nhau
đƣợc sƣ̉ dụng bởi ngƣời mã và ngƣời dị ch . Chú ý rằng X , Y, và Z trong mơ hình
này là các biến ngẫu nhiên . Trong mơ hì nh này , cũng luôn giả thiết bản rõ X


và

khóa Z là độc lập thống kê.
Các hệ mật khóa bí mật thƣờng đƣợc chia thành các hệ mã khối và hệ mã
dòng. Đối với mã khối bản rõ có dạng các khối "lớn" (chẳng hạn 64-bit) và dãy các
khối đều đƣợc mã bởi cùng m ột hàm mã hóa , tƣ́c là bộ mã hóa là một hàm không
nhớ. Trong mã dòng, bản rõ thƣờng là dãy các khối "nhỏ" (thƣờng là 1-bit) và đƣợc

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




17

biến đổi bởi một bộ mã hóa có nhớ.
Các hệ mã khối có ƣu điểm là chúng có thể đƣ ợc chuẩn hóa một cách dễ dàng ,
bởi vì các đơn vị xƣ̉ lý thông tin hiện nay thƣờng có dạng block nhƣ bytes hoặc
words. Ngoài ra trong kỹ thuật đồng bộ , việc mất một block mã cũng không ảnh
hƣởng tới độ chí nh xác của việc giải mã của các khối tiếp sau , đó cũng là một ƣu
điểm khác của mã khối.
Nhƣợc điểm lớn nhất của mã khối là phép mã hóa không che dấu đƣợc các
mẫu dƣ̃ liệu : các khối mã giống nhau sẽ suy ra các khối rõ cũng giống nha

u. Tuy

nhiên nhƣợc điểm này có thể đƣợc khắc phục bằng cách đƣa vào một lƣợng nhỏ có
nhớ trong quá trì nh mã hóa , tƣ́c là bằng cách sƣ̉ dụng cách thƣ́c móc xí ch khối mã
(CBC - Cipher Block Channing mode) trong đó hàm mã hóa không nhớ đƣợc áp vào
tổng XOR của khối rõ và khối mã trƣớc đó . Phép mã lúc này có kiểu cách kỹ thuật

nhƣ mã dòng áp dụng đới với các khới "lớn".
Thám mã

Nguồn rõ
X
X
X


M·hố
ho¸
EK (.)

Y

ZZ

Giải mã
DK (.)

Nhận tin
X

Z

Kênh an tồn

Nguồn
khố
Hình 1.3: Mơ hình hệ mật khố bí mật.


1.1.3.2. Hệ mật khơng đới xứng (Hệ mật khoá công khai).
Năm 1976, Diffie và Hellman ở trƣờng Đại học tổng hợp Stanford đã đƣa ra
một dạng mới của hệ mật với tên gọi là hệ mật khoá công khai
Cryptosystem). Điểm khác biệt giƣ̃a hệ mật không đối xƣ́ng và
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

(Public-key
hệ mật đối xƣ́ng



18

chính là khoá mã dịch . Trong hệ mật khơng đối xƣ́ng , khoá mã và khoá dịch khác
nhau, hơn nƣ̃a chúng không chỉ khác nhau mà còn đƣợc tí nh toán trong mối quan hệ
tƣơng tác theo các hàm toán học nào đó . Đây là hệ mật hiện đại dựa trên cơ sở các
thành tựu của toán học và công nghệ thông tin , thể hiện chủ yếu trên đợ phƣ́c tạp
tính toán và đợ tiện dụng trong quá trình phân phối khoá , điển hì nh cho hệ mật này
là các bài toán khoá công khai nhƣ RSA, Diffie – Hellman…

Bản rõ
(X)

Ngƣời gửi
(A)

Bợ mã hoá

Bản mã

Y=EK1 (X)

Khố cơng
khai (K1)

Ngƣời nhận
(B)

Bợ giải mã

X=DK2 (EK1 (X))

Khố bí
mật (K2)

Hình 1.4: Mơ hình hệ mật khố cơng khai.

Quá trình mã dịch đƣợc mô tả nhƣ sau:

Y = EK1 (X)
X = DK2(EK1(X))
K1 = f (K2)
K2 = f (K1)
trong đó Y - bản mã; X - bản rõ dịch; K1 - khoá mã; K2 - khoá dịch.
Hệ mật với khoá công khai đƣợc xác đị nh bởi 3 thuật toán để tạo khoá , mã hoá
và dịch mã . Thuật toán tạo khoá đƣợc công khai , có thể cung cấp cho nó đầu vào
dòng ngẫu nhiên r có độ dài cần thiết và nhận đƣợc trên đầu ra cặp khoá (k1,k2). Một
trong hai khoá (chẳng hạn khoá k 1) đƣợc công bố rợng rãi, nó đƣợc gọi là khố cơng
khai, còn khoá thứ hai đƣợc giấu kín và đƣợc gọ i là khoá bí mật. Các thuật toán mã
hoá E K1 và dịch mã D


K2

phải đƣợc bảo đảm để với bản rõ bất kỳ

m đều có :

DK2(EK1(m)) = m

1.1.4. Phân loại hệ mã .
Mã khối và mã dòng là hai loại hình mã hoá cơ bản , thƣ̣c hiện chƣ́c năng mã

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




19

dịch thơng tin bí mật trong mợt hệ thống sử dụng mật mã . Chúng thuộc hệ mã đối
xƣ́ng, sƣ̉ dụng một khoá bí mật cho các tác vụ mã hoá và giải mã .
Mã dòng: Là một dạng biến đổi loạt , biến đổi tuần tƣ̣ bản mã theo bít (ký tự).
Bợ tạo dãy khoá hay còn gọi là bộ tạo khoá chạy sinh ra các bí t k

1,

k2,…, ki,…Dãy

khoá này đƣợc cộng mô đun 2 với dãy các bí t của bản rõ : p1, p2,…, pi,… để thành
bản mã: ci = pi  ki . Tại phía nhận, bản mã đƣợc cộng mô đun 2 với dãy khoá đồng

nhất để có bản rõ: ci  ki = pi  ki  ki = pi.
Trong hệ mã dòng thay thế ngẫu nhiên one

-time pad (khoá dùng một lần ),

C.E. Shannon đã chỉ ra rằng nếu khoá là dãy ngẫu nhiên lý tƣ ởng (các phần tử khoá
xuất hiện đợc lập , đờng xác śt ) thì hệ mật là hoàn thiện . Tƣ́c là , thám mã không
thể khai thác đƣợc gì dù có bao nhiêu bản mã trong tay . Tuy nhiên, điều bất lợi của
hệ mật này là việc tạo khoá , quản lý và phân phối khoá với một khối lƣợng lớn hoặc
khoảng cách xa sẽ rất khó khăn , tớn kém. Vì thế cần phải nghiên cứu cách tạo khoá
bằng các thuật toán toán học, và chúng đƣợc gọi là khoá giả ngẫu nhiên.
Mã khối: Vấn đề đặt ra theo một góc độ khác , mỗi một lần mã , khoá đƣợc
lấy ngẫu nhiên trong không gian khoá sau đó cố đị nh lại và dùng để mã hoá cho tất
cả các khối bản rõ trong phiên liên lạc đó hoặc trong suốt thời gian ấn định nào đó .
Nhƣ vậy có thể xem , mã khối là một hệ mã thay thế tất định , với không gian khoá
đủ lớn. Khi đã cố đị nh một độ dài khoá (hay không gian khoá ) đủ lớn để tấn công
vét cạn trên chúng là vơ nghĩa , thì vấn đề đặt ra cho các nhà thiết kế mã khối là phải
tìm kiếm các hàm tổ hợp thay thế có độ khuyếch tán hay độ bất định tốt để thám mã
cho dù có khá nhiều cặp rõ

-mã tƣơng ứng cũng không thể có đủ thời gian hay

không có th uật toán để tì m ra đƣợc khoá cụ thể đã đƣợc sƣ̉ dụng

. Theo

C.E.Shannon, các hàm tổ hợp thay thế có thể sử dụng các phép biến đổi thành phần
cơ bản nhƣ hoán vị , phép nén-giãn, phép thế giản đơn...
Song song với việc nghi ên cƣ́u các mã pháp , các nghiên cứu để tấn cơng, phân
tích, thám mã các hệ này cũng phát triển . Cho tới nay, có hai phƣơng pháp tấn công

mạnh nhất đối với mã khối là: tấn công vi sai và tấn cơng tún tí nh.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




20

1.1.5. Đánh giá độ mật của hệ thống truyền tin mật .
Nhiệm vụ chủ yếu của hệ thống truyền tin mật là giƣ̃ bí mật của thông tin
đƣợc truyền trên kênh tin trƣớc sƣ̣ tấn công , khám phá của mã thám . Nhƣ vậy độ
mật của hệ thống truyền tin mậ t hoàn toàn phụ thuộc vào độ an toàn của hệ mật mà
đƣợc dùng trong nó. Có hai quan điểm cơ bản về độ an toàn của một hệ mật:
Thứ nhất là độ an toàn tí nh toán : Đợ đo này liên quan đến khả năng tính toán
cần thiết để khám phá, tấn công một hệ mật . Một hệ mật là an toàn về mặt tí nh toán
nếu thuật toán tấn công, khám phá hệ thống đó cần ít nhất N phép toán mà N là một
số rất lớn nào đó . Vấn đề là ở chỗ , không có một hệ mật t hƣ̣c tế đã biết nào có thể
chƣ́ng tỏ là an toàn theo đị nh nghĩ a này . Trên thƣ̣c tế , ngƣời ta gọi một hệ mật là “
an toàn về mặt tí nh toán” nếu có một phƣơng pháp tốt nhất phá hệ này nhƣng yêu
cầu về mặt thời gian lớn đến mức không thể chấp nhận đƣợc.
Thứ hai là an toàn không điều kiện : Độ đo này liên quan đến độ an toàn của
các hệ mật khi không có hạn chế nào đƣợc đặt ra về khả năng tính toán mà mã thám
có thể thực hiện. Mợt hệ mật đƣợc xem là an toàn không điều kiện (tuyệt mật hay lý
tƣởng) nếu nó không thể bị tấn công , khám phá với khả năng tính toán khơng hạn
chế. Tất nhiên ta cũng phải xét đến các kiểu tấn công của mã thám để xây dƣ̣ng các
hệ thống an toàn hơn nƣ̃a.
Trong hệ thống truyền tin mật khoá mật mã quyết đị nh độ bảo mật của toàn bộ
hệ thống. Trong [1] đã đƣa ra tiêu chuẩn của hệ thống truyền tin mật nhƣ sau:
 Độ mật cần thiết sẽ xác định thuật to án phù hợp cho việc mã hoá và giải

mã. Tiêu chuẩn này thể hiện một nguyên lý rất cơ bản là một thuật toán mã hoá đơn
giản cũng có thể đủ mạnh để ngăn chặn các đối tƣợng mã thám

"chặn bắt tì nh cờ "

hoặc bảo mật truyền tin trong một khoảng thời gian ngắn .
 Không gian khoá và thuật toán mã hoá không đƣợc quá phƣ́c tạp

. Tiêu

chuẩn này cho thấy rằng không nên hạn chế sƣ̣ lƣ̣a chọn các khoá hoặc các kiểu bản
tin rõ mà thuật toán mã hoá làm việc trên đó . Nếu thuật toán mã hoá chỉ làm việc
với các bản tin rõ có cùng độ dài thì đó là một thuật toán yếu

, dễ bị khám phá .

Tƣơng tƣ̣, rất khó lƣ̣a chọn khoá mà tổng các phần tƣ̉ của khoá là mợt sớ ngun tớ.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




21

Nhƣ̃ng hạn chế nhƣ vậy sẽ làm cho việc sƣ̉ dụng thuật toán mã hoá rất phƣ́c tạp

.

Mặc dù một thuật toán mã hoá phƣ́c tạp sẽ tăng độ bảo mật của hệ thống , nhƣng sẽ

làm thời gian xử lý , truyền tin tăng lên một cách đá ng kể . Nên một thuật toán mã
hoá phù hợp là thuật toán tối ƣu giảm thiểu những trở ngại cho việc truyền tin.
 Các lỗi trong quá trình mã hoá không đƣợc lan truyền và gây ngắt tin trong
các bản tin rõ nhận đƣợc khi giải mã. Mã hoá có thể gây lỗi cho quá trình truyền tin
hoặc làm sai lệch nội dung thông tin tƣ̀ đó các bản tin mã cũng bị sai lệch theo hoặc
bị gián đoạn toàn bợ quá trình truyền tin . Do đó chúng ta cần hạn chế tối đa việc
gây lỗi bởi quá trì nh mã hoá.
 Kích thƣớc hay đợ dài của bản tin mã không đƣợc lớn hơn độ dài của bản
tin rõ ban đầu, nếu điều này xảy ra nó sẽ không thể mang đƣợc nhiều thông tin nhƣ
bản tin rõ và thời gian truyền tin trên kênh cũng sẽ bị tăng theo.
Nhìn chung các tiêu chuẩn này đƣợc đề xuất nhằm đánh giá chất lƣợng của hệ
thống truyền tin mật. Trong điều kiện hiện nay nhờ sƣ̣ phát triển mạnh mẽ của khoa
học và công nghệ đặc biệt là công nghệ FPGA , các thuật toán mã hoá , giải mã có
thể đƣợc thiết kế để cƣ́ng hoá trong các thiết bị bảo mật nên việc xây dƣ̣ng độ mật
tối ƣu cho tƣ̀ng hệ thống với tƣ̀ng mục đí ch cụ thể sẽ đƣợc thƣ̣c hiện một cách thuận
lợi.
1.2. CƠ SỞ LÝ THUYẾT VỀ MÃ KHỐI.
1.2.1. Khái niệm về mã khối.
Mã pháp khối là họ các biến đổi thuận nghịch các khối (phần độ dài xác đị nh )
của bản rõ. Thƣ̣c tế, mã pháp khối là hệ mật thay thế trên bộ chữ cá i các khối (phép
thế có thể một hoặc nhiều bộ chƣ̃ cái tuỳ thuộc vào điều kiện của mã pháp khối

).

Các mã pháp khối hiện nay đƣợc sử dụng rất phổ biến.
Giả sử F 2 là trƣờng Galois hai phần tử . Ký hiệu F 2m là không gi an véc tơ các
bộ m-tuples các phần tƣ̉ của F 2. Trong phần này giả thiết không mất tổng quát rằng ,
bản rõ X, bản mã Y lấy các giá trị trong không gian véc tơ F

m

2

, còn khóa Z lấy giá

trị trong không gian véc tơ F 2k. Nhƣ vậy m-là độ dài bí t của các khối rõ và mã , còn
k-là độ dài bit của khóa bí mật.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




22

Đị nh nghĩ a 1.1: Hệ mã khối khóa bí mật là một ánh xạ E : F2m x Sz  F2m, sao cho
với mỗi z  Sz, E(., z) là một ánh xạ có ngƣợc từ F2m vào F2m.
Hàm ngƣợc E (., z) đƣợc gọi là hàm mã hóa tƣơng ƣ́ng với khóa z

. Ánh xạ

nghịch đảo của E (., z) đƣợc gọi là hàm giải mã tƣơng ƣ́ng với khóa z và sẽ đƣợc ký
hiệu là D(., z). Chúng ta viết Y = E(X, Z) đối với một mã khối có nghĩa là bản mã Y
đƣợc xác đị nh bởi bản rõ X và khóa bí mật Z theo ánh xạ E . Tham số m đƣợc gọi là
độ dài khối còn tham số k đƣợc gọi là độ dài khóa của hệ mã khối đó . Cỡ khóa đúng
của hệ mã khối đƣợc xác đị nh bởi số k t = log2 (#(Sz)) bit. Nhƣ vậy độ dài khóa sẽ
bằng cỡ khóa đúng nếu và chỉ nếu S z = F2k, tƣ́c là mọi bộ k -bit nhị phân đều là một
khóa có hiệu lực . Chẳng hạn đối với chuẩn mã dƣ̃ liệu DES , độ dài khóa là k = 64
bit, trong khi cỡ khóa đúng của nó là k t = 56 bit. Chú ý rằng ở đây ta xem xét các mã
khối có độ dài khối mã bằng độ dài khối rõ .
1.2.2. Nguyên lý thiết kế mã khối .

Một hệ mã khối tốt là phải "khó phá và dễ sử dụ ng". Cả hai hàm mã hóa E (.,
z) và hàm giải mã D (., z) nên dễ dàng tí nh toán. Còn việc giải khóa z từ y = E(x, z)
và x = D(y, z) nên là bài toán khó . Nguyên lý thiết kế cho một hệ mã khối có thể
chia thành các nguyên lý ƣ́ng dụng và các nguyên lý an toàn.
1.2.2.1. Nguyên lý thiết kế chung về độ an toàn.
Có hai nguyên lý thiết kế đƣợc chấp nhận chung đối với các mã an toàn thực
tế là các nguyên lý về độ méo

(confusion) và độ khuyếch tán (diffusion) đã đƣợc

gợi ý bởi Shannon.
- Nguyên lý về độ méo (confusion):
Sƣ̣ phụ thuộc của khóa trên bản rõ và bản mã nên phải phƣ́c tạp sao cho nó
không có í ch gì đối với thám mã . Chẳng hạn, phƣơng trì nh nhị phân mô tả mã khối
nên là phi tuyến và phƣ́c tạp sao cho để việc giải khóa z tƣ̀ x và y =E(x, z) là không
thể.
- Nguyên lý về độ khuyếch tán (diffusion):
Với mỗi khóa cụ thể hàm mã hóa không nên có sƣ̣ phụ thu

ộc thống kê nào

giƣ̃a các cấu trúc đơn giản trong bản rõ và các cấu trúc đơn giản trong bản mã và

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




23


rằng không có quan hệ đơn giản nào giƣ̃a các hàm mã hóa khác nhau

. Nguyên lý

khuyếch tán đòi hỏi , chẳng hạn một hệ mã khố i cần đƣợc thiết kế có tí nh đầy đủ hay hoàn thiện, tƣ́c là mỗi bit rõ và mỗi bit khóa đều ảnh hƣởng tới mỗi bit mã.
1.2.2.2. Nguyên lý thiết kế cho ứng dụng.
Một hệ mã khối có thể ƣ́ng dụng cả phần cƣ́ng và phần mề m. Trong ƣ́ng dụng
cƣ́ng thƣờng đƣợc thƣ̣c hiện bởi các chí p VLSI , FPGA… có tốc độ cao . Trong ƣ́ng
dụng mềm phải có tính mềm dẻo và giá thành thấp . Trên cơ sở đặc tí nh khác nhau
của phần cứng và phần mềm , các nguyên lý thiế t kế mã khối cũng chia thành hai
phần.
- Nguyên lý thiết kế cho ứng dụng mềm:
Sƣ̉ dụng khối con: Các thao tác mã khối nên thực hiện trên các khối con có độ
dài tự nhiên cho phần mềm là 8, 16, 32 bit. Hoán vị bit là kh ó thực hiện trong phần
mềm nên tránh.
Sƣ̉ dụng các phép toán đơn giản : Các thao tác mã trên các khối con nên chọn
dễ dàng cho ƣ́ng dụng với các tập lệnh cơ sở của các bộ xƣ̉ lý chuẩn chẳng hạn nhƣ
phép cộng, phép nhân, phép dịch ...
- Nguyên lý thiết kế cho ứng dụng phần cứng:
Sƣ̣ tƣơng tƣ̣ trong phép mã hóa và phép giải mã : Quá trình mã hóa và giải mã
nên chỉ khác nhau ở cách sƣ̉ dụng khóa mật sao cho cùng một thiết bị có thể s



dụng đƣợc cho cả phép mã hóa và phép giải mã.
Cấu trúc đều : Hệ mã khối nên có cấu trúc đều để có thể dễ ƣ́ng dụng công
nghệ VLSI, FPGA … trong việc thiết kế .
1.2.3. Các tham số của mã khối .
1.2.3.1. Độ dài khối m.
Để một hệ mã khối là an toàn , độ dài khối m của nó phải đủ lớn ngăn cản các

tấn công phân tí ch thống kê , tƣ́c là để không cho đối phƣơng thu đƣợc thơng tin có
ích nào về khối rõ nào đó thƣờng xuất hiện nhiều hơn các kh ối rõ khác. Ngoài ra độ
dài khối m cũng phải đƣợc chọn sao cho số các cặp rõ /mã mà đối phƣơng có thể
thu nhận đƣợc trong thƣ̣c tế phải nhỏ hơn rất nhiều so với 2m.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên




×