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

Thiết Kế Vi Mạh Thự Hiện Thuật Toán Aes Dựa Trên Ông Nghệ Fpga.pdf

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 (2.67 MB, 108 trang )

Mẫu bìa luận văn có in chữ nhũ

Khổ 210 x 297 mm

Đ inh kim chi

Bộ giáo dục và đào tạo
Trờng đại học bách khoa hà nội
-------------------------------------

Luận văn thạc sĩ khoa học

B
0

Đ iện tử viễn thông

Thiết kế vi mạch thực hiện thuật toán AES
dựa trên công nghệ FPGA

đinh kim chi

B
1

2004 - 2006
Hµ Néi
2006

Hµ néi 2006


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


2

Mục lục

Mục lục ......................................................................................................... 2

T
51

T
51

Danh mục các bảng ...................................................................................... 5

T
51

T
51

Danh mục các hình vẽ, đồ thị ....................................................................... 6

T
51

T
51


Các từ viết tắt................................................................................................ 8

T
51

T
51

Lời nói đầu .................................................................................................... 9

T
51

T
51

Chơng 1. Tổng quan về vấn đề nghiên cứu ............................................. 11

T
51

1.1. Giới thiệu về bảo mật thông tin ............................................................. 11

T
51

T
51


T
51

T
51

1.2. Lĩnh vực bảo mật .................................................................................. 12

T
51

T
51

T
51

T
51

1.3. Các thuật toán bảo mật đợc áp dụng .................................................... 13

T
51

T
51

T
51


T
51

1.4. Vấn đề quản lý khóa ............................................................................. 16

T
51

T
51

T
51

T
51

1.4.1. Cách tạo khóa.............................................................................. 16

T
51

T
51

1.4.2. Các khóa ngẫu nhiên ................................................................... 18

T
51


T
51

1.4.3. Phân phối khóa............................................................................ 18

T
51

T
51

1.4.4. Quản lý khóa theo mô hình tập trung và theo mô hình điểm - điểm
................................................................................................... 19

T
51

T
51

1.5. Các tiêu chuẩn bảo mật số liệu thông dụng hiện nay .............................. 20

T
51

T
51

1.5.1. Tiªu chuÈn DES .......................................................................... 20


T
51

T
51

1.5.2. Tiªu chuÈn Triple-DES ................................................................ 21

T
51

T
51

1.5.3. Tiêu chuẩn AES .......................................................................... 22

T
51

T
51

1.6. So sánh giữa bảo mật cứng và bảo mật mềm .......................................... 23

T
51

T
51


1.7. Các yêu cầu đối với thiết bị bảo mật cứng.............................................. 24

T
51

T
51

1.8. Các hệ thống bảo mật cứng đợc ứng dụng hiện nay ............................. 24

T
51

T
51

1.9. Đề xuất giải pháp chế tạo vi mạch thực hiện thuật toán bảo mật AES .... 25

T
51

T
51


3

Chơng 2. Tiêu chuẩn bảo mật số liệu AES .............................................. 28


T
51

2.1. Các định nghĩa ....................................................................................... 28

T
51

T
51

2.2. Các quy ớc ........................................................................................... 31

T
51

T
51

2.3. Cơ sở toán học ....................................................................................... 34

T
51

T
51

2.4. Thuật toán AES ..................................................................................... 39

T

51

T
51

Chơng 3. Thiết kế vi mạch thực hiện thuật toán AES ............................ 52

T
51

3.1. Thiết kế phần cứng vi mạch AES ........................................................... 52

T
51

T
51

3.1.1. Đề xuất kiến trúc phần cứng vi mạch AES .................................. 52

T
51

T
51

3.1.2. Mô tả chi tiết một chu trình mà hóa, giải mà ............................... 54

T
51


T
51

3.2. Lập trình cho vi mạch AES .................................................................... 58

T
51

T
51

3.2.1. Công cụ lập trình ......................................................................... 58

T
51

T
51

3.2.2. Phơng pháp lập trình ................................................................. 61

T
51

T
51

3.2.3. Kiến trúc phần mềm vi mạch AES............................................... 61


T
51

T
51

3.2.4. Cách thực hiện ............................................................................ 63

T
51

T
51

3.2.5. Giao diện vào/ra module mà hóa và giải mà ................................ 65

T
51

T
51

Chơng 4. Kết quả thực nghiệm ................................................................ 66

T
51

4.1. Kết quả thực hiện bằng ngôn ngữ mô tả phần cứng ................................ 66

T

51

T
51

4.2. Kết quả thực hiện trên phần cứng........................................................... 67

T
51

T
51

4.2.1. Đề xuất kiến trúc phần cứng của mạch thử nghiệm ..................... 67

T
51

T
51

4.2.2. Lựa chọn linh kiện ...................................................................... 69

T
51

T
51

4.2.3. Sơ đồ nguyên lý........................................................................... 70


T
51

T
51

4.2.4. Thiết kế mạch in PCB.................................................................. 70

T
51

T
51

4.2.5. Kết quả thực hiện trên chip FPGA của toàn bộ module AES và một
số module giao tiếp khác cho mạch thử nghiệm .......................... 72

T
51

T
51

4.3. Một số kết quả khác............................................................................... 73

T
51

T

51

4.3.1. Thực hiện thuật toán AES trên máy tính ...................................... 73

T
51

T
51


4

4.3.2. Phần mềm điều khiển cho mạch thử nghiệm ............................... 84

T
51

T
51

4.4. Kết luận và hớng phát triển .................................................................. 85

T
51

T
51

4.4.1. Kết luận ...................................................................................... 85


T
51

T
51

4.4.2. Hớng phát triển ......................................................................... 85

T
51

T
51

Tài liệu tham khảo ..................................................................................... 87

T
51

T
51

Phụ lục 1 - Tạo khóa mà ............................................................................ 88

T
51

T
51


Phô lôc 2 - M· hãa...................................................................................... 93

T
51

T
51

Phô lôc 3 - Phần mềm thực hiện thuật toán AES trên máy tính.............. 95

T
51

T
51


5

Danh mục các bảng

Bảng 1.1. Số khóa có thể trong các trờng hợp khóa độ dài khác nhau. ........ 17
T
51U

U
T
51


Bảng 1.2. Thời gian tìm kiếm nhiều nhất với các trờng hợp khóa có độ dài
khác nhau. ..................................................................................... 17
T
51U

T
51U

Bảng 3.1. Giá trị của các hằng số D[31..0]. ................................................... 58
T
51U

T
51U

Bảng 3.2. Giao diện vào/ra của module mà hóa và giải mÃ. .......................... 65
T
51U

T
51U

Bảng 4.1. Kết quả biên dịch module mà hóa. ................................................ 66
T
51U

U
T
51


Bảng 4.2. Kết quả biên dịch module giải mÃ................................................. 67
T
51U

U
T
51

Bảng 4.3. Tính năng chính của chip FPGA EP1C6Q240-C8. ........................ 69
T
51U

U
T
51

Bảng 4.4. Kết quả biên dịch module AES và module giao tiếp khác trên cùng
một chip FPGA EP1C6Q240-C8. .................................................. 72
T
51U

T
51U


6

Danh mục các hình vẽ, đồ thị

Hình 1.1. Mô hình phân phối khóa đơn giản. ................................................ 19

T
51U

T
51U

Hình 2.1. Biểu diễn các mẫu bit theo hệ hex. ................................................ 32
T
51U

T
51U

Hình 2.2. Các chỉ số của Byte và Bit. ............................................................ 33
T
51U

T
51U

Hình 2.3. Mảng Trạng thái, đầu vào và đầu ra. ............................................. 33
T
51U

U
T
51

Hình 2.4. Mối quan hệ giữa Khóa - Khối - Chu trình. ................................... 39
T

51U

U
T
51

Hình 2.5. Thuật toán mà hóa. ....................................................................... 40
T
51U

T
51U

Hình 2.6. SubBytes() sử dụng bảng S-box biến đổi từng byte của mảng Trạng
thái. ............................................................................................... 41
T
51U

T
51U

Hình 2.7. S-box: các giá trị thay thế cho các byte xy (dạng hex)................... 42
T
51U

T
51U

Hình 2.8. ShiftRows() thực hiện dịch vòng ba hàng cuối cùng của mảng Trạng
thái. ............................................................................................... 43

T
51U

T
51U

Hình 2.9. MixColumns() thực hiện trên mảng Trạng thái theo từng cột. ....... 44
T
51U

U
T
51

Hình 2.10. AddRoundKey() thực hiện phép XOR từng cột của mảng Trạng
thái với một từ trong chuỗi khóa. ................................................... 45
T
51U

T
51U

Hình 2.11. Thuật toán tạo khóa..................................................................... 46
T
51U

U
T
51


Hình 2.12. Thuật toán giải mÃ. ..................................................................... 47
T
51U

U
T
51

Hình 2.13. InvShiftRows() dịch vòng ba hàng cuối cùng mảng Trạng thái. .. 48
T
51U

U
T
51

Hình 2.14. Bảng S-box đảo: giá trị thay thế cho các byte xy (dạng hex). ...... 48
T
51U

U
T
51

Hình 2.15. Thuật toán giải mà tơng đơng. ................................................. 51
T
51U

T
51U


Hình 3.1. Khối mà hóa vi mạch AES. ........................................................... 53
T
51U

T
51U

Hình 3.2. Khối giải mà vi mạch AES. ........................................................... 53
T
51U

T
51U

Hình 3.3. Chu trình mà hóa. ......................................................................... 54
T
51U

T
51U

Hình 3.4. Chu trình giải mÃ. ......................................................................... 55
T
51U

U
T
51


Hình 3.5. Phép biÕn ®ỉi ShiftRow................................................................. 56
T
51U

T
51U


7

Hình 3.6. Phép biến đổi InvShiftRow............................................................ 56
T
51U

U
T
51

Hình 3.7. Khối Logic KeyRound. ................................................................. 57
T
51U

T
51U

H×nh 3.8. Khèi Logic InvKeyRound. ............................................................ 57
T
51U

T

51U

H×nh 3.9. Cấu trúc chơng trình mà hóa. ...................................................... 62
T
51U

T
51U

Hình 3.10. Cấu trúc chơng trình giải mÃ. .................................................... 62
T
51U

T
51U

Hình 3.11. Đồ thị thời gian của quá trình mà hóa AES. ................................ 63
T
51U

U
T
51

Hình 3.12. Đồ thị thời gian của quá trình nạp khóa trong giải mà AES. ........ 64
T
51U

T
51U


Hình 3.13. Đồ thị thời gian của quá trình giải mà AES. ................................ 64
T
51U

U
T
51

Hình 4.1. Kết quả chạy mô phỏng quá trình mà hóa. .................................... 66
T
51U

T
51U

Hình 4.2. Kết quả chạy mô phỏng quá trình giải mÃ. .................................... 67
T
51U

T
51U

Hình 4.3. Kiến trúc phần cứng mạch thử nghiệm AES. ................................. 68
T
51U

U
T
51


Hình 4.4. Sơ đồ mạch in sau khi thiết kế....................................................... 71
T
51U

U
T
51

Hình 4.5. Bảng mạch thử nghiệm AES sau khi đà hàn. ................................. 72
T
51U

T
51U

Hình 4.6. Sơ đồ khối phần mềm thực hiện thuật toán AES trên máy tính. ..... 74
T
51U

T
51U

Hình 4.7. Lu đồ thuật toán quá trình mà hóa............................................... 75
T
51U

T
51U


Hình 4.8. Lu đồ thuật toán quá trình giải mÃ. ............................................. 76
T
51U

U
T
51

Hình 4.9. Lu đồ thuật toán quá trình tạo khóa. ............................................ 77
T
51U

U
T
51

Hình 4.10. Giao diện phần mềm thực hiện thuật toán AES trên máy tính. ..... 78
T
51U

U
T
51

Hình 4.11. Chi tiết quá trình mà hóa. ............................................................ 78
T
51U

T
51U


Hình 4.12. Chi tiết quá trình giải mÃ............................................................. 79
T
51U

T
51U

Hình 4.13. Giao diện chơng trình điều khiển giám sát phần cứng. .............. 84
T
51U

U
T
51


8

Các từ viết tắt

Tiếng Anh
A
AES

Tiếng Việt

Advanced Encryption Standard

Tiêu chuẩn mà hóa tiên tiến


Analog Hardware Description
Language

Ngôn ngữ lập trình mô tả phần cứng
tơng tự

DES

Data Encryption Standard

Tiêu chuẩn mà hóa số liệu

F
FPGA

Field-Programmable Gate Array

Thiết bị có khả năng lập trình đợc

H
HDL

Hardware Description Language

Ngôn ngữ lập trình mô tả phần cứng

Integrated Development
Environment


Môi trờng phát triển tích hợp

Key Distribution Center
Key Translation Center

Trung tâm phân phối khóa
Trung tâm biên dịch khóa

Ron Rivest, Adi Shamir and
Leonard Adleman

Thuật toán bảo mật khóa công khai

Very high scale IC Hardware
Description Language

Ngôn ngữ lập trình mô tả phần cứng
mật độ tÝch hỵp cao.

AHDL

D

I
IDE

K
KDC
KTC
R

RSA

V
VHDL


9

Lời nói đầu

Bảo mật là các phơng pháp, kỹ thuật và công nghệ nhằm bảo vệ những
thông tin bí mật nh thông tin giao dịch, thông tin cá nhân... nhằm ngăn cản
việc đánh cắp hay truy cập bất hợp pháp vào các nguồn tài nguyên không đợc
phép. Bảo mật thông tin đà ra đời từ rất lâu, lúc đầu nó chỉ đợc sử dụng trong
quân sự. Nhng cho đến nay, bảo mật đà đợc áp dụng rộng rÃi hơn trong dân
sự, đặc biệt trong các ngành kinh tế, tài chính, ngân hàng và cả trong nghiên
cứu khoa học.
Cuộc cách mạng công nghệ thông tin đà tạo một bớc ngoặt lớn cho
nhân loại. Cơ hội phát triển cho mỗi quốc gia là vô cùng thuận lợi. Sự giao lu
và hội nhập toàn cầu đà mở rộng trớc mắt tất cả các quốc gia kể cả những
quốc gia đang phát triển. Thông tin và tri thức chính là năng lực cạnh tranh
mạnh mẽ nhất trong kỷ nguyên mới, kỷ nguyên Internet và thông tin số. Tuy
nhiên, nếu ta lạm dụng môi trờng thông tin quá mức mà không có những
biện pháp kiểm soát hay bảo vệ thì không thể lờng hết đợc những tác động
xấu mà nó đem lại. Vì thế, vấn đề cần giải quyết tiếp theo chính là vấn đề an
toàn, bảo mật và tin cậy cho các thông tin dới cả góc độ kỹ thuật và pháp lý.
Tại Việt Nam, các chính sách mới đà tạo điều kiện cho các doanh
nghiệp phát triển mạng thông tin về cơ sở hạ tầng. Trong thời gian sắp tới, khi
công nghệ WAN đáp ứng tốt các yêu cầu về băng thông, chất lợng dịch vụ,
đồng thời nạn tấn công trên mạng với mục đích chính trị và kinh tế gia tăng

nhanh chóng thì việc bảo mật thông tin ngày càng đợc chú trọng hơn. Không
chỉ các nhà cung cấp dịch vụ mà các cơ quan chính phủ, quân đội, khối ngân
hàng và các doanh nghiệp cũng bắt đầu có ý thức về an toàn thông tin.
Tuy nhiên, các sản phẩm bảo mật hiện nay đều đợc sản xuất ở nớc
ngoài thờng có giá thành rất đắt, do đó chỉ dành cho các doanh nghiệp lớn
nh ngân hàng, tài chính... Với những doanh nghiệp vừa và nhỏ, mặc dù họ có
nhu cầu về bảo mật thông tin nhng họ không có đủ khả năng để mua những
sản phẩm đó. Bên cạnh đó, các ngành an ninh quốc phòng lại không muốn


10

mua các sản phẩm bảo mật của nớc ngoài lại xuất phát từ chính vấn đề bảo
mật thông tin.
Trên cơ sở đó, tác giả đà nghiên cứu và phát triển thành một đề tài
Thiết kế vi mạch thực hiện thuật toán AES dựa trên công nghệ FPGA
đợc sử dụng cho nhiều mục đích khác nhau. AES là một trong những tiêu
chuẩn bảo mật đang đợc ứng dụng rộng rÃi nhất hiƯn nay, do mét nhãm hai
kü s ngêi BØ lµ Joan Daemen, Vincent Rijmen nghiên cứu và đề xuất vào
tháng 6 năm 1998 và đợc Viện tiêu chuẩn công nghệ quốc gia Hoa Kỳ NIST
thông qua tháng 11 năm 2001 nh là một tiêu chuẩn chính thức áp dụng cho
bảo mật số liệu. Bên cạnh đó, tác giả đà sử dụng một phơng pháp thiết kế
phần cứng tiên tiến nhất hiện nay là dựa trên công nghệ FPGA. Với công nghệ
này nhiều chức năng điều khiển, logic đều có thể thiÕt kÕ trªn mét con chip
duy nhÊt.
Bè cơc cđa ln văn nh sau: Chơng 1 trình bày tổng quan về vấn đề
nghiên cứu và đề xuất giải pháp, Chơng 2 giới thiệu về tiêu chuẩn bảo mật
AES, Chơng 3 trình bày các vấn đề về thiết kế phần cứng và phần mềm vi
mạch AES, Chơng 4 đa ra các kết quả thu đợc cả về lý thuyết và thực tế
cũng nh những đề xuất về hớng phát triển tiếp theo của đề tài.

Trong thời gian qua, để hoàn thiện luận văn, em đà nhận đợc sự tận
tình hớng dẫn của T.S Nguyễn Hữu Trung. Tuy nhiên, do thời gian có hạn,
luận văn khó tránh khỏi những thiếu sót, vì vậy em rất mong nhận đợc sự
đóng góp ý kiến của các thày cô giáo để hoàn thiện hơn nữa.
Xin chân thành cảm ơn.


11

Chơng 1
Tổng quan về vấn đề nghiên cứu

1.1.

giới thiệu về bảo mật thông tin

Bảo mật là khoa học về truyền đạt, mà hóa và giải mà các bản tin bí
mật. Julius Caesar đà sử dụng một trong những hệ thống bảo mật đợc ghi
nhận sớm nhất trong trận chiến Rome tại Gaul năm 58 trớc công nguyên.
Nhờ khả năng chuyển giao an toàn mệnh lệnh tới những ngời chỉ huy, các
chiến dịch của Caesar đà rất thành công.
Cuộc cách mạng công nghệ thông tin đà tạo một bớc ngoặt lớn cho
nhân loại. Cơ hội phát triển cho mỗi quốc gia là vô cùng thuận lợi. Sự giao lu
và hội nhập toàn cầu đà mở rộng trớc mắt tất cả các quốc gia kể cả những
quốc gia đang phát triển. Thông tin và tri thức chính là năng lực cạnh tranh
mạnh mẽ nhất trong kỷ nguyên mới, kỷ nguyên Internet và thông tin số. Tuy
nhiên, nếu ta lạm dụng môi trờng thông tin quá mức mà không có những
biện pháp kiểm soát hay bảo vệ thì không thể lờng hết đợc những tác động
xấu mà nó đem lại. Môi trờng thông tin mở toàn cầu chứa đựng trong bản
thân nó nhiều hiểm họa, rủi ro. Các thông tin dữ liệu trao đổi có thể bị đánh

cắp, sửa đổi. Vì thế, vấn đề cần giải quyết tiếp theo chính là vấn đề an toàn,
bảo mật và tin cậy cho các thông tin dới cả góc độ kỹ thuật và pháp lý.
Bảo mật là các phơng pháp, kỹ thuật và công nghệ nhằm bảo vệ những
thông tin bí mật nh thông tin giao dịch, thông tin cá nhân... nhằm ngăn cản
việc đánh cắp hay truy cập bất hợp pháp vào các nguồn tài nguyên không đợc
phép. Tuy vậy, khi sử dụng bảo mật cũng không thể tránh khỏi những sai sót,
việc này sẽ dẫn đến sơ hở cho những xâm nhập trái phép nên hiệu quả việc mÃ
hóa sẽ không cao, trong khi đó chi phí để duy trì hệ thống bảo mật cịng hÕt
søc tèn kÐm. ChÝnh v× vËy, viƯc sư dơng bảo mật nh thế nào và đến mức độ


12

nào là câu hỏi cần giải quyết, đồng thời chi phí cho hệ thống bảo mật đó cũng
không quá lớn để giữ đợc tính phổ biến và đem lại lợi ích cho ngời sử dụng.
Trớc tình hình công nghệ thông tin đóng một vai trò ngày càng quan
trọng trong nền kinh tế xà hội, giá trị của thông tin ngày càng đợc nâng cao,
tại nhiều nớc phát triển, việc nghiên cứu ứng dụng bảo mật thông tin đà đợc
tiến hành từ rất lâu.
Việc mà hóa không chỉ bảo đảm bí mật thông tin lu trữ mà còn giữ bí
mật đợc cả thông tin truyền đi giữa ngời gửi và ngời nhận. Việc đảm bảo
này bao gồm cả việc nhận biết thông tin bị sai lệch do lỗi đờng truyền hay sự
truy cập trái phép.

1.2.

Lĩnh vực bảo mật

Trớc đây bảo mật thông tin thờng đợc áp dụng trong an ninh, quốc
phòng, đặc biệt trong các cuộc chiến tranh gồm các thông tin về thời điểm mở

màn cho một trận đánh, địa điểm đánh... Các thông tin này cần phải đợc
chuyển từ bộ chỉ huy ra các mặt trận một cách an toàn. Nếu chúng bị rò rỉ cho
đối phơng thì tổn thất có thể sẽ không thể lờng trớc đợc.
Ngày nay, bảo mật không những đợc sử dụng trong quân sự mà còn
đợc áp dụng rộng rÃi hơn trong dân sự, đặc biệt trong các ngành kinh tế, tài
chính, ngân hàng và cả trong nghiên cứu khoa học.
Một ví dụ cho thấy vai trò quan trọng của việc áp dụng bảo mật là hÃng
Intel có nhiều phân xởng độc lập, lúc đầu họ không ý thức đến việc bảo vệ
thông tin và đà có chuyện thông tin bị rò rỉ và một thời gian sau đó tại Nhật
Bản đà sản xuất mét chip gièng hƯt. Tõ ®ã hä ®· ý thøc đợc việc bảo mật
thông tin là cực kỳ quan trọng.
Tại Mỹ bảo mật thông tin đợc áp dụng vào rất nhiều lĩnh vực. Tuy
nhiên Mỹ lại không thích các nớc khác bảo vệ thông tin của nớc mình vì họ
muốn quản lý hay tìm cách đánh cắp thông tin nớc khác, do đó họ đà hạn chế
việc xuất khẩu các phần mềm, các sản phẩm liên quan đến lĩnh vực bảo mật,
nếu không giá thành để mua một sản phẩm sẽ rất đắt.


13

Tại Việt Nam, các chính sách mới đà tạo điều kiện cho các doanh
nghiệp phát triển mạng thông tin về cơ sở hạ tầng. Trong thời gian sắp tới, khi
công nghệ WAN đáp ứng tốt các yêu cầu về băng thông, chất lợng dịch vụ,
đồng thời nạn tấn công trên mạng với mục đích chính trị và kinh tế gia tăng
nhanh chóng thì việc bảo mật thông tin ngày càng đợc chú trọng hơn. Không
chỉ các nhà cung cấp dịch vụ mà các cơ quan chính phủ, quân đội, khối ngân
hàng và các doanh nghiệp cũng bắt đầu có ý thức về an toàn thông tin. Các
giải pháp Firewall đà đợc áp dụng trong hầu hết các mạng WAN tại Việt
Nam hiện nay cũng chỉ giúp ngăn chặn nguy cơ tấn công từ bên ngoài vào
trong mạng nội bộ. Trong khi đó, vấn đề bảo mật thông tin trên đờng truyền

giữa các mạng WAN sử dụng leased-line, X25, Frame Relay hay VPN IP thì
hầu nh đang bị bỏ ngỏ. Thậm chí việc bỏ qua đảm bảo an toàn thông tin trên
đờng truyền còn xuất hiện ở cả các khối mạng đặc thù nh ngân hàng, tài
chính, an ninh quốc phòng... An toàn thông tin trên đờng truyền không chỉ là
sự rò rỉ, thất thoát thông tin mà cũng bao hàm cả sự toàn vẹn của thông tin
(nguy cơ thay đổi nội dung thông tin) và sự khai thác mạo danh (kết nối trái
phép). Chẳng hạn các nhà tài chính nghĩ gì khi chuyển 1 triệu đồng qua mạng
thì ngời nhận lại có đợc 10 triệu đồng hay có kẻ mạo danh ngời nhận
chiếm đoạt khoản tiền đó. Bởi vậy, khi xây mạng Intranet, WAN cho mình,
các doanh nghiệp phải coi an toàn thông tin là một phần không thể thiếu trong
tổng thể toàn bộ hệ thống thông tin.

1.3.

Các thuật toán bảo mật đợc áp dụng

Bảo mật gồm hai quá trình mà hóa và giải mÃ. Tuy nhiên chỉ cần một
quá trình mà hóa đà cho thấy đặc trng của một thuật toán bảo mật. Do đó từ
nay về sau ta chỉ cần nhắc đến thuật ngữ mà hóa thay cho bảo mật.
Hệ thống mà hóa hiện nay có thể phân thành hai loại chủ yếu: Loại thứ
nhất, ít thông dụng hơn là mà hóa theo kiểu bí mật thuật toán. Loại thứ hai là
công khai thuật toán. Loại mà hóa này có thể sử dụng khóa công khai hay
khóa bí mËt t theo tõng øng dơng cơ thĨ.


14

Với phơng pháp mà hóa bí mật thuật toán, khả năng bảo mật trên
phơng diện kỹ thuật là hoàn toàn tối u. Với phơng pháp bí mật thuật toán
thì công việc quản lý khóa sẽ đơn giản hơn rất nhiều. Tuy nhiên, các hệ thống

mà hóa tự động lại chủ yếu hoạt động dựa trên một thuật toán cố định, việc
thay đổi thuật toán sẽ hết sức khó khăn và tốn kém. Một điểm yếu của hệ
thống này là rất khó giữ đợc bí mật nếu đem sử dụng rộng rÃi. Chính vì thế,
phơng pháp mà hóa thuật toán bí mật chủ yếu sử dụng trong các ứng dụng
chuyên biệt. Để khắc phục khó khăn khi giải mà và mà hóa với các thuật toán
khác nhau, ngời ta đà áp dụng phơng pháp kết hợp, tức là trong thuật toán
sẽ có một phần cố định của nhà sản xuất và một phần thay đổi do ngời sử
dụng quy định. Tuy nhiên, do giá thành cũng nh độ phức tạp khi vận hành sử
dụng nên phơng pháp mà hóa bí mật thuật toán không thể áp dụng trong các
ứng dụng dân sự rộng rÃi.
Phơng pháp thứ hai, đợc sử dụng rộng rÃi nhất hiện nay là mà hóa
công khai thuật toán và bí mật khóa. Đặc điểm của phơng pháp này là tối u
đợc hoạt động của thiết bị mà hóa và giải mÃ. Trong các thuật toán công khai
đợc chia làm hai loại, thuật toán đối xứng và thuật toán không đối xứng.
Thuật toán đối xứng, tức là việc mà hóa và giải mà cùng dựa trên một thuật
toán. Hầu hết các ứng dụng bảo mật hiện nay đều đợc mà hóa dựa trên các
thuật toán đối xứng. Do thuật toán công khai nên việc bảo mật chủ yếu dựa
trên yếu tố khóa. Việc quản lý khóa lại đợc chia làm hai dạng: khóa công
khai và khóa bí mật. Ngoài ra còn một phơng pháp mới kết hợp cả hai dạng
trên còn gọi là khóa lai.
Với thuật toán khóa bí mật, cả ngời gửi và ngời nhận tin cùng chung
nhau sư dơng mét khãa bÝ mËt. ë bªn gưi sư dụng khóa bí mật để mà hóa bản
tin, bên nhận sử dụng khóa bí mật để giải mà bản tin. Điều quan trọng nhất là
cả ngời gửi và ngời nhận cùng phải giữ bí mật khóa mà không để cho ai
khác biết đợc. Nếu họ ở cách xa nhau thì họ cần phải nhờ vào một công cụ
đa tin nào đó, hoặc một hệ thống điện thoại, hoặc một phơng tiện truyền
khác mà đảm bảo an toàn cho khóa. Bất kể ai mà biết đợc khóa trong quá
trình truyền đi sau ®ã cã thĨ ®äc, thay ®ỉi, thËm chÝ cã thể phá hỏng bản tin.
Hệ thống bảo mật khóa bí mật đợc dùng phổ biến ngày nay dựa trên cơ së



15

các thuật toán DES, Triple-DES và AES. Bởi vì tất cả các khóa trong hệ thống
bảo mật khóa bí mật cần đợc giữ bí mật do đó gây nên khó khăn trong quá
trình quản lý khóa, đặc biệt khi hệ thống thông tin là một hệ thống mở thì số
ngời sử dụng sẽ tăng lên do đó lại càng khó khăn hơn.
Để giải quyết vấn đề này Whitfield Difie và Martin Hellman đà đa ra
khái niệm bảo mật khóa công khai vào năm 1976. Hệ thống bảo mật khóa
công khai có hai yếu tố chính là mà hóa và chữ ký điện tử. Trong hệ thống
này, mỗi một ngời sẽ sử dụng một cặp khóa, một cái đợc gọi là khóa công
khai, cái còn lại đợc gọi là khóa riêng. Khóa công khai theo đúng nghĩa của
nó sẽ đợc công khai, còn khóa riêng phải đợc giữ bí mật. Do đó việc chia sẻ
các thông tin bí mật giữa ngời gửi và ngời nhận cần đợc hạn chế, mọi trao
đổi thông tin đều chỉ liên quan đến khóa công khai và không bao giờ khóa bí
mật đợc truyền hay chia sẻ. Trong hệ thống này không còn quan tâm đến các
hệ thống truyền tin bí mật. Yêu cầu duy nhất là khóa công khai phải đợc kết
hợp với ngời dùng mét c¸ch tin cËy. BÊt cø ai cã thĨ gưi đi một bản tin bí
mật bằng cách sử dụng những thông tin đà đợc công khai, nhng bản tin đó
chỉ có thể đợc giải mà bằng khóa riêng mà đợc sở hữu duy nhất bởi một
ngời sẽ nhận bản tin đó. Thêm vào đó, bảo mật khóa công khai có thể đợc
sử dụng không chỉ cho mục đích cá nhân mà còn đợc sử dụng trong kỹ thuật
xác nhận và một số kỹ thuật khác.
Trong một hệ thống bảo mật khóa công khai, khóa riêng có ràng buộc
về mặt toán học với khóa công khai. Vì vậy, luôn luôn có thể tấn công vào hệ
thống khóa công khai bằng việc tìm khóa bí mật từ khóa công khai. Để đối
phó với vấn đề này cần phải làm cho bài toán chuyển từ khóa công khai sang
khóa bí mật càng khó càng tốt. Ví dụ, một số hệ thống bảo mật khóa công
khai đợc thiết kế sao cho muốn tìm đợc khóa riêng từ khóa công khai đòi
hỏi những kẻ tấn công mất quá nhiều thời gian và không thể tính toán đợc.

Đây là ý tởng có trong hệ thống bảo mËt khãa c«ng khai RSA.


16

1.4.

Vấn đề quản lý khóa

Trong thực tế, việc quản lý khóa là một khâu khó khăn nhất trong công
tác bảo mật. Việc thiết kế các thuật toán bảo mật cũng nh các giao thức của
nó không phải là việc dễ dàng, chúng ta có thể dựa vào các tài liệu về bảo mật
đà đợc công khai. Tuy nhiên việc giữ bí mật cho khóa thì khó hơn nhiều.
Các chuyên gia bảo mật thờng tấn công các hệ thống bảo mật với khóa
công khai và khóa bí mật thông qua việc quản lý khóa của chúng. Trên thực tế
đà cho thấy một hệ thống bảo mật bị tấn công chủ yếu là do bị đánh mất khóa,
do đó cả ngời gửi và ngời nhận tin đều phải quản lý khóa cho tốt.
1.4.1. Cách tạo khóa
Mức độ an toàn của một thuật toán mà hóa chủ yếu dựa vào khóa. Nếu
chúng ta sử dụng một thuật toán bảo mật yếu để tạo khóa thì toàn bộ hệ thống
trở nên yếu. Do đó các chuyên gia bẻ khóa không cần quan tâm đến thuật toán
mà hóa, họ chỉ cần quan tâm đến thuật toán tạo khóa.
Độ dài khóa đóng vai trò quan trọng trong vấn đề tạo khóa, nó quyết
định tính an toàn, thời gian xử lý cho một thuật toán.
AES đơn giản sử dụng khóa 128 bit. Nếu thực hiện đúng cách thì một
chuỗi 128 bit bất kỳ có thể đợc dùng làm khóa, do vậy có tới 2128 khóa khác
nhau.
P

P


Bảng 1.1. chỉ ra số khóa có thể với những điều kiện khác nhau cho
chuỗi đầu vào. Bảng 1.2. chỉ ra thời gian tối đa để có thể tìm đợc một khóa
đúng từ các khóa trên, giả sử rằng thực hiện một triệu phép thử một giây.
4-Byte

5-Byte

6-Byte

7-Byte

8-Byte

Các chữ thờng (26):

460,000 (1)

1.2*107

3.1*108

8.0*109

2.1*1011

Các chữ thờng và con số (36):

1,700,000


6.0*107

2.2*109

7.8*1010

2.8*1012

1.5*107

9.2*108

5.7*1010

3.5*1012

2.2*1014

Các ký tự thuộc bảng chữ cái (62):

(1)

F
0T
21P

P

P


P

P

Trong trờng hợp này số khóa có thể là K p = 264 = 456976 ≈ 460,000.

P

P

P

P

P

P

P

P

P


17

Các ký tự có thể in đợc (95):

8.1*107


7.7*109

7.4*1011

7.0*1013

6.6*1015

Các ký tự trong bảng mà ASCII (128):

2.7*108

3.4*1010

4.4*1012

5.6*1014

7.2*1016

Các ký tự ASCII mở rộng (256):

4.3*109

1.1*1012

2.8*1014

7.2*1016


1.8*1019

P

P

P

P

P

P

P

P

P

P

P

P

P

P


P

Bảng 1.1. Số khóa(2) có thể trong các trờng hợp khóa độ dài khác nhau.
T
21FP

T
21P

4-Byte

5-Byte

6-Byte

7-Byte

8-Byte

Các chữ thờng (26):

0.5 giây

12 giây

5 phút

2.2 giờ


2.4 ngày

Các chữ thờng và con số (36):

1.7 giây

1 phút

36 phút

22 giờ

33 ngày

Các ký tự thuộc bảng chữ cái (62):

15 giây

12 phút

16 giờ

41 ngày

6.9 năm

Các ký tự có thể in đợc (95):

1.2 phút


2.1 giờ

8.2 ngày

2.2 năm

210 năm

Các ký tự trong bảng mà ASCII (128):

4.5 phút

9.5 giờ

51 ngày

18 năm

2300 năm

Các ký tự ASCII mở rộng (256):

1.2 giờ

13 ngày

8.9 năm

2300 năm


580,000 năm

Bảng 1.2. Thời gian tìm kiếm nhiều nhất với các trờng hợp khóa có độ
dài khác nhau (giả sử rằng thùc hiƯn mét triƯu phÐp thư trong mét gi©y).
Khi ngêi ta chọn khóa riêng cho mình, nhìn chung họ đà chän c¸c
khãa “nghÌo”. VÝ dơ, hä sÏ thÝch chän “Hello” hơn là chọn *9(hH/A. Vì
Hello dễ nhớ hơn *9(hH/A. Trong thực tế thuật toán mà hóa an toàn nhất
không có t¸c dơng nÕu nh ngêi dïng cã thãi quen chän cho mình những các
tên đơn giản dễ nhớ. Những kẻ bẻ khóa không dại gì mà đi thử tất cả các
trờng hợp khóa có thể mà sẽ chọn những khóa rõ ràng, đơn giản trớc.
Phơng pháp này đợc gọi là tấn công theo kiểu từ điển, bởi vì những
kẻ tấn công sẽ sử dụng một từ điển bao gồm các khóa phổ biến. Sau đó họ sẽ
thực hiện các phép thử dựa trên các cơ sở sau:
1. Tên ngời dùng, tên viết tắt, tên tài khoản và các thông tin cá nhân liên
quan đều có thể là mật khẩu.

(2)

Nếu gọi số ký tự tạo khóa là C, độ dài khóa là l, thì số khóa khóa có thể Kp=C l.


18

2. Các từ trong các cơ sở dữ liệu khác nhau. Nó bao gồm danh sách tên
ngời, địa điểm, tên ngời nổi tiếng, các bộ phim hoạt hình, tên nhân
vật...
3. Có thể thay đổi các từ trong bớc 2 bằng cách thay đổi ký tự đầu tiên từ
chữ thờng thành chữ viết hoa, thay đổi các ký tự điều khiển, hoặc là cả
từ viết hoa, thay đổi các ký tự thành con số ví dụ chữ o thành số 0
chữ l thành số 1.

4. Có thể viết hoa ở các vị trí khác nhau.
5. Với ngời dùng là những ngời nớc ngoài thì có thể họ sẽ sử dụng
tiếng nớc ngoài.
6. Sử dụng cặp từ là sự kết hợp của hai hay nhiều từ khác nhau để tạo mật
khẩu, khi đó số lợng sẽ tăng lên tới hàng chục triệu từ.
Phơng pháp tấn công bằng từ điển trở nên hiệu quả khi đợc sử dụng
cho một tập các khóa mà không phải là một khóa đơn. Một ngời sử dụng đơn
lẻ sẽ tự tìm cho mình một khóa an toàn, nhng khi có một nghìn ngời sử
dụng mà mỗi một ngời lại chọn riêng cho mình một khóa riêng, khi ®ã rÊt cã
thÓ sÏ cã mét ngêi chän mét khãa có trong từ điển của kẻ tấn công.
1.4.2. Các khóa ngẫu nhiên
Các khóa mạnh là các chuỗi bit ngẫu nhiên đợc tạo ra thông qua một
vài phép xử lý tự động. Khi đó các khóa đợc tạo ra từ chuỗi bit ngẫu nhiên
này sẽ phải tơng đơng nhau. Việc tạo các bit khóa này phải từ một nguồn
ngẫu nhiên đáng tin cậy hoặc từ một bộ phát giả ngẫu nhiên có tính bảo mật.
1.4.3. Phân phối khóa
Trong các hệ thống bảo mật khóa đối xứng, các khóa mà hóa đợc dùng
chung cho từng cặp ngời dùng. Trong một mạng qui mô nhỏ thì việc này rất
đơn giản. Tuy nhiên nó sẽ trở nên rắc rối khi qui mô của mạng lớn lên. Vì mỗi
một cặp ngời sử dụng cần phải trao đổi khóa cho nhau nên với một nhóm n
ngời tổng số khóa cần trao đổi là n(n-1)/2.


19

Với một mạng 6 ngời, đòi hỏi có 15 sự trao đổi khóa. Với một mạng
1000 ngời, đòi hỏi có 500.000 sự trao đổi khóa. Trong những trờng hợp này
cần phải thiết lập máy chủ quản lý khóa, khi đó hoạt động sẽ tỏ ra hiệu quả
hơn nhiều.
Với bất kỳ một thuật toán bảo mật khóa bí mật (thuật toán đối xứng),

hay thuật toán bảo mật khóa công khai đều đòi hỏi việc phân phối khóa đợc
thực hiện một cách an toàn.
1.4.4. Quản lý khóa theo mô hình tập trung và theo mô hình điểm - điểm
(a)

Phân phối khóa điểm - điểm

(b)

Trung tâm phân phối khóa

(c)

Trung tâm biên dịch khóa

Hình 1.1. Mô hình phân phối khóa đơn giản.
ã

Mô hình điểm - điểm chỉ liên quan trực tiếp tới hai bên trao đổi thông
tin với nhau.


20

ã

Các trung tâm phân phối khóa (KDCs): KDCs đợc sử dụng để phân
phối các khóa giữa ngời dùng. Tại đó ngời dùng sẽ chia sẻ các khóa
riêng với KDC, mà không phải giữa họ với nhau.
Cơ sở của giao thức KDC đợc thực hiện nh sau:


Dựa trên cở sở A muốn chia sẻ một khóa với B, trung tâm phân phối
khóa T tạo một khóa K sau đó gửi nó dới dạng đà đợc mà hóa K AT cho A
cùng với một bản copy của K (cho B) dới dạng đà đợc mà hóa cho KBT . Nói
một cách khác, T có thể thông tin với B một cách trực tiếp.
R

R

R
P

ã

R

Trung tâm biên dịch khóa (KTCs): Về tính chất và các đối tợng của
KTCs giống với KDCs ở trên, nhng ở đây giữa các bên trao đổi thông
tin cung cấp khóa phiên mà không phụ thuộc vào trung tâm biên dịch
khóa.
Cơ sở giao thức KTCs thực hiện nh sau:

A gửi khóa K tới trung tâm biên dịch T dới dạng đà đợc mà hóa KAT .
Trung tâm biên dịch sẽ thực hiện việc giải mà và mà hóa lại dới dạng KBT
sau đó chuyển lại cho A (chuyển tiếp tới B), hoặc có thể gửi trực tiếp tới B.
R

R

R


1.5.

R

các tiêu chuẩn bảo mật số liệu thông dụng hiện

nay
1.5.1. Tiêu chuẩn DES
Tiêu chuẩn DES (The Data Encrytion Standard) đợc phát triển bởi một
nhóm kỹ s của IBM vào khoảng năm 1974 và đợc ứng dụng nh là một tiêu
chuẩn quốc gia (Mỹ) vào năm 1977. DES là một phơng pháp mà hãa theo
kiĨu khãa bÝ mËt, sư dơng cïng mét khãa bí mật để mà hóa và giải mà một
bản tin - nó còn đợc xem nh là một kỹ thuật bảo mật đối xứng. Khóa bí mật
đợc chọn một cách ngẫu nhiên từ hơn 70 nghìn triệu triệu khóa có thể. Chiều
dài khóa là 64 bit, tuy nhiên 8 bit trong đó là các bit chẵn lẻ, chỉ có ý nghĩa
trong việc kiểm tra lỗi, không có tác dụng trong việc bảo mật, do đó chiều dài
thực tế chỉ là 56 bit.



×