Tiểu luận: An toàn dữ liệu và mã hoá
Ngày nay, với sự phát triển mạnh mẽ của công nghệ thông tin việc ứng dụng các công nghệ mạng máy tính trở nên vô cùng phổ cập và cần thiết. Công nghệ mạng máy tính đã mang lại những lợi ích to lớn.
Sự xuất hiện mạng Internet cho phép mọi người có thể truy cập, chia sẽ và khai thác thông tin một cách dễ dàng và hiệu quả. Các công nghệ E-mail cho phép mọi người có thể gửi thư cho người khác cũng như nhận thư ngay trên máy tính của mình. Gần đây có công nghệ...
…………..o0o…………..
Tiểu luận: An toàn dữ liệu và mã hoá
An toàn dữ liệu và mã hoá 2
MỤC LỤC
1. AN TOÀN DỮ LIỆU TRÊN MẠNG MÁY TÍNH................................................3
2. CÁC HỆ MÃ HOÁ CỔ ĐIỂN ................................................................................5
2.1. HỆ MÃ HOÁ THAY THẾ (SUBSTITUTION CIPHER) .....................................5
2.1.1. HỆ MÃ HOÁ CAESAR .............................................................................5
2.1.2. HỆ MÃ HOÁ VIGENERE.........................................................................7
2.1.3. HỆ MÃ HOÁ HILL....................................................................................8
2.2. HỆ MÃ HOÁ ĐỔI CHỖ (TRANSPOSITION CIPHER).....................................9
3. CÁC VẤN ĐỀ VỀ MÃ HOÁ CHO MẠNG MÁY TÍNH...................................11
3.1. CÁC THUẬT NGỮ...........................................................................................11
3.2. ĐỊNH NGHĨA HỆ MẬT MÃ.............................................................................12
3.3. NHỮNG YÊU CẦU ĐỐI VỚI HỆ MẬT MÃ ....................................................13
3.4. CÁC PHƯƠNG PHÁP MÃ HOÁ .....................................................................13
3.4.1. MÃ HOÁ ĐỐI XỨNG KHOÁ BÍ MẬT..................................................13
3.4.2. MÃ HOÁ PHI ĐỐI XỨNG KHOÁ CÔNG KHAI..................................15
3.5. CÁC CÁCH PHÂN TÍCH MÃ ..........................................................................16
4. MỘT SỐ THUẬT TOÁN MÃ HOÁ CƠ BẢN....................................................19
4.1. CHUẨN MÃ HOÁ DỮ LIỆU DES ...................................................................19
4.1.1. MÔ TẢ THUẬT TOÁN...........................................................................21
4.1.2. HOÁN VỊ KHỞI ĐẦU (THE INITIAL PERMUTATION) ....................22
4.1.3. KHOÁ CHUYỂN ĐỔI (THE KEY TRANSFORMATION) ..................23
4.1.4. HOÁN VỊ MỞ RỘNG (EXPANSION PERMUTATION)......................24
4.1.5. HỘP THAY THẾ S (S-BOX SUBSTITUTION).....................................25
4.1.6. HỘP HOÁN VỊ P (THE P-BOX PERMUTATION) ...............................27
4.1.7. HOÁN VỊ CUỐI CÙNG ..........................................................................27
4.1.8. GIẢI MÃ DES..........................................................................................28
4.1.9. PHẦN CỨNG VÀ PHẦN MỀM THỰC HIỆN DES ..............................28
4.2. THUẬT TOÁN MÃ HOÁ RSA (PUBLIC-KEY ALGORITHM) ........................29
4.2.1. KHÁI NIỆM HỆ MẬT MÃ RSA.............................................................29
4.2.2. ĐỘ AN TOÀN CỦA HỆ RSA .................................................................31
4.2.3. MỘT SỐ TÍNH CHẤT CỦA HỆ RSA ....................................................31
4.3. THUẬT TOÁN MÃ HOÁ BLOWFISH .............................................................33
4.3.1. KHOÁ PHỤ..............................................................................................33
4.3.2. MÃ HOÁ DỮ LIỆU .................................................................................33
4.3.3. TÍNH TOÁN CÁC KHOÁ PHỤ..............................................................34
Liên hiệp Khoa học Sản xuất Công nghệ Phần mềm (CSE)
An toàn dữ liệu và mã hoá 3
1. AN TOÀN DỮ LIỆU TRÊN MẠNG MÁY TÍNH
Ngày nay, với sự phát triển mạnh mẽ của công nghệ thông tin việc
ứng dụng các công nghệ mạng máy tính trở nên vô cùng phổ cập và cần
thiết. Công nghệ mạng máy tính đã mang lại những lợi ích to lớn.
Sự xuất hiện mạng Internet cho phép mọi người có thể truy cập,
chia sẽ và khai thác thông tin một cách dễ dàng và hiệu quả. Các công
nghệ E-mail cho phép mọi người có thể gửi thư cho người khác cũng như
nhận thư ngay trên máy tính của mình. Gần đây có công nghệ E-business
cho phép thực hiện các hoạt động thương mại trên mạng máy tính. Việc
ứng dụng các mạng cục bộ trong các tổ chức, công ty hay trong một quốc
gia là rất phong phú. Các hệ thống chuyển tiền của các ngân hàng hàng
ngày có thể chuyển hàng tỷ đôla qua hệ thống của mình. Các thông tin về
kinh tế, chính trị, khoa học xã hội được trao đổi rông rãi.
Tuy nhiên lại nảy sinh vấn đề về an toàn thông tin. Đó cùng là một
quá trình tiến triển hợp logic: khi những vui thích ban đầu về một siêu xa
lộ thông tin, bạn nhất định nhận thấy rằng không chỉ cho phép bạn truy
nhập vào nhiều nơi trên thế giới, Internet còn cho phép nhiều người
không mời mà tự ý ghé thăm máy tính của bạn.
Thực vậy, Internet có những kỹ thuật tuyệt vời cho phép mọi người
truy nhập, khai thác, chia sẻ thông tin. Những nó cũng là nguy cơ chính
dẫn đến thông tin của bạn bị hư hỏng hoặc phá huỷ hoàn toàn.
Có những thông tin vô cùng quan trọng mà việc bị mất hay bị làm
sai lệch có thể ảnh hưởng đến các tổ chức, các công ty hay cả một quốc
gia. Các thông tin về an ninh quốc gia, bí mật kinh doanh hay các thông
tin tài chính là mục tiêu của các tổ chức tình báo nước ngoài về chính trị
hay công nghiệp hoặc kẻ cắp nói chung. Bọn chúng có thể làm mọi việc
có thể để có được những thông tin quý giá này. Thử tưởng tượng nếu có
kẻ xâm nhập được vào hệ thống chuyển tiền của các ngân hàng thì ngân
hàng đó sẽ chịu những thiệt hại to lớn như mất tiền có thể dẫn tới bị phá
sản. Chưa kể nếu hệ thông thông tin an ninh quốc gia bị đe doạ thì hậu
quả không thể lường trước được.
Theo số liệu của CERT(Computer Emegency Response Team -
“Đội cấp cứu máy tính”), số lượng các vụ tấn công trên Internet được
thông báo cho tổ chức này là ít hơn 200 vào năm 1989, khoảng 400 vào
năm 1991, 1400 vào năm 1993, và 2241 vào năm 1994. Những vụ tấn
công này nhằm vào tất cả các máy tính có mặt trên Internet, các máy tính
của tất cả các công ty lớn như AT&T, IBM, các trường đại học, các cơ
Liên hiệp Khoa học Sản xuất Công nghệ Phần mềm (CSE)
An toàn dữ liệu và mã hoá 4
quan nhà nước, các tổ chức quân sự, nhà băng... Một số vụ tấn công có
quy mô khổng lồ (có tới 100.000 máy tính bị tấn công). Hơn nữa,
những con số này chỉ là phần nổi của tảng băng. Một phần rất lớn các vụ
tấn công không được thông báo, vì nhiều lý do, trong đó có thể kể đến
nỗi lo bị mất uy tín, hoặc đơn giản những người quản trị hệ thống không
hề hay biết những cuộc tấn công nhằm vào hệ thống của họ.
Không chỉ số lượng các cuộc tấn công tăng lên nhanh chóng, mà
các phương pháp tấn công cũng liên tục được hoàn thiện. Điều đó một
phần do các nhân viên quản trị hệ thống được kết nối với Internet ngày
càng đề cao cảnh giác. Cũng theo CERT, những cuộc tấn công thời kỳ
1988-1989 chủ yếu đoán tên người sử dụng-mật khẩu (UserID-password)
hoặc sử dụng một số lỗi của các chương trình và hệ điều hành (security
hole) làm vô hiệu hệ thống bảo vệ, tuy nhiên các cuộc tấn công vào thời
gian gần đây bao gồm cả các thao tác như giả mạo địa chỉ IP, theo dõi
thông tin truyền qua mạng, chiếm các phiên làm việc từ xa (telnet hoặc
rlogin).
Để vừa bảo đảm tính bảo mật của thông tin lại không làm giảm sự
phát triển của việc trao đổi thông tin quảng bá trên toàn cầu thì một giải
pháp tốt nhất là mã hoá thông tin. Có thể hiểu sơ lược mã hoá thông tin là
che đi thông tin của mình làm cho kẻ tấn công nếu chặn được thông báo
trên đường truyền thì cũng không thể đọc được và phải có một giao thức
giữa người gửi và người nhận để có thể trao đổi thông tin, đó là các cơ
chế mã và giải mã thông tin.
Ngày nay thì việc mã hoá đã trở nên phổ cập. Các công ty phần
mềm lớn trên thế giới đều có nghiên cứu và xây dựng các công cụ, thuật
toán mã hoá để áp dụng cho thực tế. Mỗi quốc gia hay tổ chức đều có
những cơ chế mã hoá riêng để bảo vệ hệ thống thông tin của mình.
Một số vấn đề an toàn đối với nhiều mạng hiện nay:
• Một người dùng chuyển một thông báo điện tử cho một người sử
dụng khác. Một bên thứ ba trên cùng mạng LAN này sử dụng một thiết bị
nghe trộm gói để lấy thông báo và đọc các thông tin trong đó.
• Cũng trong tình huống trên bên thứ ba chặn thông báo, thay đổi các
thành phần của nó và sau đó lại gửi cho người nhận. Người nhận không
hề nghi ngờ gì trừ khi nhận ra thông báo đó là vô lý, và có thể thực hiện
vài hành động dựa trên các thành phần sai này đem lại lợi ích cho bên thứ
ba.
• Người dùng log vào một server mà không sử dụng mật khẩu được mã
hoá. Một người khác đang nge trộm trên đường truyền và bắt được mật
Liên hiệp Khoa học Sản xuất Công nghệ Phần mềm (CSE)
An toàn dữ liệu và mã hoá 5
khẩu logon của người dùng, sau đó có thể truy nhập thông tin trên server
như người sử dụng.
• Một người quản trị hệ thống không hiểu về khía cạnh an toàn và yêu
cầu của hệ thống và vô tình cho phép người dùng khác truy nhập vào thư
mục chứa các thông tin hệ thống. Người dùng phát hiện ra họ có thể có
được các thông tin hệ thống và có thể dùng nó phục vụ cho loựi ích của
mình.
2. CÁC HỆ MÃ HOÁ CỔ ĐIỂN
2.1. HỆ MÃ HOÁ THAY THẾ (SUBSTITUTION CIPHER)
Hệ mã hoá thay thế là hệ mã hoá trong đó mỗi ký tự của bản rõ
được thay thế bằng ký tự khác trong bản mã (có thể là một chữ cái, một
số hoặc một ký hiệu).
Có 4 kỹ thuật thay thế sau đây:
• Thay thế đơn (A simple substitution cipher): là hệ trong đó một ký tự
của bản rõ được thay bằng một ký tự tương ứng trong bản mã. Một ánh
xạ 1-1 từ bản rõ tới bản mã được sử dụng để mã hoá toàn bộ thông điệp.
• Thay thế đồng âm (A homophonic substitution cipher): giống như hệ
thống mã hoá thay thế đơn, ngoại trừ một ký tự của bản rõ có thể được
ánh xạ tới một trong số một vài ký tự của bản mã: sơ đồ ánh xạ 1-n (one-
to-many). Ví dụ, “A” có thể tương ứng với 5, 13, 25, hoặc 56, “B” có thể
tương ứng với 7, 19, 31, hoặc 42, v.v.
• Thay thế đa mẫu tự (A polyalphbetic substitution cipher): được tạo
nên từ nhiều thuật toán mã hoá thay thế đơn. Ánh xạ 1-1 như trong trường
hợp thay thế đơn, nhưng có thể thay đổi trong phạm vi một thông điệp. Ví
dụ, có thể có năm thuật toán mã hoá đơn khác nhau được sử dụng; đặc
biệt thuật toán mã hoá đơn được sử dụng thay đổi theo vị trí của mỗi ký
tự trong bản rõ.
• Thay thế đa sơ đồ (A polygram substitution cipher): là thuật toán trong
đó các khối ký tự được mã hoá theo nhóm. Đây là thuật toán tổng quát
nhất, cho phép thay thế các nhóm ký tự của văn bản gốc. Ví dụ, “ABA”
có thể tương ứng với “RTQ”, “ABB” có thể tương ứng với “SLL”, v.v.
2.1.1. HỆ MÃ HOÁ CAESAR
Hệ mã hoá CAESAR là một hệ mã hoá thay thế đơn làm việc trên
bảng chữ cái tiếng Anh 26 ký tự (A, B, ... , Z).
Liên hiệp Khoa học Sản xuất Công nghệ Phần mềm (CSE)
An toàn dữ liệu và mã hoá 6
Trong hệ CAESAR và các hệ tương tự còn lại ta sử dụng các số tự
nhiên thay cho các ký tự - đánh số các ký tự trong bảng chữ cái theo thứ
tự: A là 0, B là 1, ... và Z là 25.
A B C D ... L M N ... W X Y Z
0 1 2 3 ... 11 12 13 ... 22 23 23 25
Các phép toán số học thực hiện theo modul 26. Có nghĩa là 26
đồng nhất với 0, 27 đồng nhất với 1, 28 đồng nhất với 2, ... Ví dụ:
2×17 + 5×9 = 79 = 1 + 3×26 = 1
Hệ CAESAR sử dụng thuật toán mã hoá trong đó mỗi ký tự được
thay thế bởi một ký tự khác được xác định bằng cách dịch ký tự cần mã
hoá sang phải k bước theo modul 26:
Ek(α) = (α + k) MOD 26
với α là một ký tự, 0 ≤ k ≤ 26, MOD là phép chia lấy phần dư.
Thuật toán giải mã tương ứng Dk là lùi lại k bước trong bảng chữ
cái theo modul 26:
Dk(α) = (α - k) MOD 26
Không gian khoá của hệ CEACAR bao gồm 26 số 0, 1, 2, ... 25.
Ví dụ: với k=3, A được thay bằng D, B được thay bằng E, ... , W
được thay bằng Z, ... , X được thay bằng A, Y được thay bằng B, và Z
được thay bằng C. Ta có:
Bảng chữ cái gốc
A B C D E F G H I J K L M N O P Q R S T U V WX Y Z
Bảng chữ cái dùng để mã hoá
D E F G H I J K L MN O P Q R S T U V WX Y Z A B C
Trong trường hợp này bản rõ “TRY AGIAN” được mã hoá thành
“WUB DJDLQ”, bản rõ “HELP ME” được mã hoá thành “KHOSPH”.
(Chú ý: các ký tự trống trong bản mã được bỏ đi để đảm bảo tính an toàn)
Thêm một vài ví dụ minh hoạ:
E25(IBM) = HAL, E6(MUPID) = SAVOJ,
E3(HELP) = KHOS, E1(HOME) = IPNF,
E6(SAVOJ) = E20(SAVOJ) = MUPID.
Hệ CAESAR là hệ mã hoá cũ và không an toàn vì không gian khoá
của nó rất nhỏ, do đó có thể thám mã theo phương pháp vét cạn. Khoá
Liên hiệp Khoa học Sản xuất Công nghệ Phần mềm (CSE)
An toàn dữ liệu và mã hoá 7
giải mã có thể tính ngay ra được từ khoá mã hoá. Do chỉ có 26 khoá nên
ta có thể thử lần lượt các khoá cho đến khi tìm được khoá đúng.
2.1.2. HỆ MÃ HOÁ VIGENERE
Hệ mã hoá này được đặt theo tên của một nhà mật mã người Pháp
Blaise de Vigenère (1523-1596).
VIGENERE cũng giống như CAESAR, nhưng ở đây khoá được
thay đổi theo từng bước. Hình vuông VIGENERE được sử dụng để mã
hoá và giải mã.
A B C D E F G H I J K L M N O P Q R S T U V WX Y Z
B C D E F G H I J K L MN O P Q R S T U V WX Y Z A
C D E F G H I J K L MN O P Q R S T U V WX Y Z A B
D E F G H I J K L MN O P Q R S T U V WX Y Z A B C
E F G H I J K L M N O P Q R S T U V WX Y Z A B C D
F G H I J K L MN O P Q R S T U V WX Y Z A B C D E
G H I J K L MN O P Q R S T U V WX Y Z A B C D E F
H I J K L MN O P Q R S T U V WX Y Z A B C D E F G
I J K L M N O P Q R S T U V WX Y Z A B C D E F G H
J K L MN O P Q R S T U V WX Y Z A B C D E F G H I
K L MN O P Q R S T U V WX Y Z A B C D E F G H I J
L M N O P Q R S T U V WX Y Z A B C D E F G H I J K
M N O P Q R S T U V WX Y Z A B C D E F G H I J K L
N O P Q R S T U V WX Y Z A B C D E F G H I J K L M
O P Q R S T U V WX Y Z A B C D E F G H I J K L M N
P Q R S T U V WX Y Z A B C D E F G H I J K L MN O
Q R S T U V WX Y Z A B C D E F G H I J K L MN O P
R S T U V WX Y Z A B C D E F G H I J K L M N O P Q
S T U V WX Y Z A B C D E F G H I J K L M N O P Q R
T U V WX Y Z A B C D E F G H I J K L MN O P Q R S
U V WX Y Z A B C D E F G H I J K L MN O P Q R S T
V WX Y Z A B C D E F G H I J K L MN O P Q R S T U
WX Y Z A B C D E F G H I J K L M N O P Q R S T U V
Liên hiệp Khoa học Sản xuất Công nghệ Phần mềm (CSE)
An toàn dữ liệu và mã hoá 8
X Y Z A B C D E F G H I J K L MN O P Q R S T U V W
Y Z A B C D E F G H I J K L MN O P Q R S T U V WX
Z A B C D E F G H I J K L MN O P Q R S T U V WX Y
Hình n. Hình vuông VIGENERE
Mỗi cột của hình vuông VIGENERE có thể xem như là một hệ
CAESAR, với các khoá 0, 1, 2, ... , 25. Để mã hoá thì bản rõ được đọc từ
các hàng và khoá được đọc từ các cột.
Ví dụ để mã hóa bản rõ PURPLE với từ khoá CRYPTO, đầu tiên ta
tìm điểm giao nhau của hàng P và cột C, ta được R. Cứ như vậy ta được
bản mã RLPEES. Ta sẽ thu được bản mã tương tự nếu ta thay đổi vai trò
của hàng và cột trong khi mã hoá. Để giải mã bản mã RLPEES vừa mã
hoá, ta nhìn vào hàng nào có chứa R trong cột C, theo cách này ta sẽ tìm
được P. Và như vậy ta tìm được bản rõ là PURPLE.
Từ khoá thường được áp dụng một cách tuần hoàn. Nếu bản rõ dài
hơn từ khoá thì từ khoá lại được bắt đầu lại từ đầu. Ví dụ, từ khoá
CRYPTO được áp dụng với bản rõ có 15 ký tự là CRYPTO CRYPTO
CRY.
Ta thấy rằng trong hệ mã hoá VIGENERE, với khoá có độ dài d thì
sẽ có 26d khoá hợp lệ. Vì vậy, chỉ cần với giá trị d nhỏ thì phương pháp
thám mã vét cạn cũng đòi hỏi khá nhiều thời gian.
2.1.3. HỆ MÃ HOÁ HILL
Hệ mã hoá này dựa trên lý thuyết về đại số tuyến tính do Lester
S.Hill đưa ra năm 1929.
Cả không gian bản rõ và bản mã đều là Σ*, trong đó Σ là bản chữ
cái tiếng Anh. Chúng ta sử dụng các số tự nhiên thay cho các ký tự và các
phép toán số học được thực hiện theo modul 26 như đã nói ở phần trên.
Ta chọn một số nguyên (integer) d ≥ 2. Xét M là ma trận vuông d
chiều. Các phần tử của M là các số nguyên từ 0 đến 25. Hơn nữa M phải
là ma trận khả nghịch, tức là tồn tại M -1. Ví dụ:
⎛3 3⎞ -1 ⎛15 17 ⎞
M= ⎜
⎜ ⎟ và M =
⎟ ⎜ 20 9 ⎟ .
⎜ ⎟
⎝2 5⎠ ⎝ ⎠
Để mã hoá, bộ d chữ cái của bản rõ được mã hoá cùng nhau. Trong
các trường hợp sẽ xét dưới đây ta lấy d=2.
Quá trình mã hoá được thực hiện theo công thức:
MP = C
Liên hiệp Khoa học Sản xuất Công nghệ Phần mềm (CSE)
An toàn dữ liệu và mã hoá 9
trong đó P và C được viết thành các vecter cột d chiều. Mỗi bộ d chữ cái
của bản rõ được viết thành vecter P với các thành phần là các số biểu diễn
các ký tự. Và C cũng thể hiện khối d ký tự của bản mã.
Còn khi giải mã ta phải dùng ma trận nghịch đảo M –1:
P = CM -1
Ví dụ, bản rõ “HELP” được viết thành hai vecter
⎛H⎞ ⎛7⎞ ⎛ L ⎞ ⎛11 ⎞
P1 = ⎜ ⎟ = ⎜ ⎟ và P2 =
⎜E ⎟ ⎜ 4⎟ ⎜ ⎟ = ⎜ ⎟.
⎜ P ⎟ ⎜15 ⎟
⎝ ⎠ ⎝ ⎠ ⎝ ⎠ ⎝ ⎠
theo công thức mã hoá ta có
⎛3 3⎞ ⎛7⎞ ⎛ 33 ⎞ ⎛7⎞ ⎛H⎞
MP1 = ⎜
⎜ ⎟ ⎜ ⎟ = ⎜ ⎟ = ⎜ ⎟ = ⎜ ⎟ = C1 và
⎝2 5⎟
⎠
⎜ 4⎟
⎝ ⎠
⎜ 34 ⎟
⎝ ⎠
⎜8 ⎟
⎝ ⎠
⎜ I⎟
⎝ ⎠
⎛3 3⎞ ⎛11 ⎞ ⎛ 78 ⎞ ⎛ 0⎞ ⎛A⎞
MP2 = ⎜
⎜ ⎟ ⎜ ⎟ = ⎜ ⎟ = ⎜ ⎟ = ⎜ ⎟ = C2
⎝2 5⎟
⎠
⎜15 ⎟ ⎜ 97 ⎟
⎝ ⎠ ⎝ ⎠
⎜19 ⎟
⎝ ⎠
⎜T ⎟
⎝ ⎠
chúng ta thu được bản mã “HIAT”.
2.2. HỆ MÃ HOÁ ĐỔI CHỖ (TRANSPOSITION CIPHER)
Một hệ mã hoá đổi chỗ là hệ mã hoá trong đó các ký tự của bản rõ
vẫn được giữ nguyên, nhưng thứ tự của chúng được đổi chỗ vòng quanh.
Ví dụ một hệ mã hoá đổi chỗ cột đơn giản, bản rõ được viết theo
hàng ngang trên trang giấy với độ dài cố định, và bản mã được đọc theo
hàng dọc (Hình 2).
Bản rõ: COMPUTER GRAPHICS MAY BE SLOW BUT AT LEAST IT’S
EXPENSIVE
COMPUTERGR
APHICSMAYB
ESLOWBUTAT
LEASTITSEX
PENSIVE
Bản mã: CAELPOPSEEMHLANPIOSSUCWTITSBIUEMUTERATSGYAERBTX
Hình 2. Mã hoá thay đổi vị trí cột
Phương pháp này có các kỹ thuật sau:
Liên hiệp Khoa học Sản xuất Công nghệ Phần mềm (CSE)
An toàn dữ liệu và mã hoá 10
• Đảo ngược toàn bộ bản rõ: nghĩa là bản rõ được viết theo thứ tự
ngược lại để tạo ra bản mã. Đây là phương pháp mã hoá đơn giản nhất vì
vậy không đảm bảo an toàn.
Ví dụ: bản rõ “TRANSPOSITION CIPHER” được mã hoá thành
“REHPICNOITISOPSNART”.
• Mã hoá theo mẫu hình học: bản rõ được sắp xếp lại theo một mẫu hình
học nào đó, thường là một mảng hoặc một ma trận hai chiều.
Ví dụ: bản rõ “LIECHTENSTEINER” được viết thành ma trận 3×5
theo hàng như sau:
Cột 1 2 3 4 5
Bản rõ L I E C H
T E N S T
E I N E R
Nếu lấy các ký tự ra theo số thứ tự cột 2, 4, 1, 3, 5 thì sẽ có bản mã
“IEICSELTEENNHTR”.
• Đổi chỗ cột: Đầu tiên đổi chỗ các ký tự trong bản rõ thành dạng hình
chữ nhật theo cột, sau đó các cột được sắp xếp lại và các chữ cái được lấy
ra theo hàng ngang
Ví dụ: bản rõ gốc là “NGAY MAI BAT DAU CHIEN DICH
XYZ” được viết dưới dạng ma trận 5×5 theo cột như sau:
Cột 1 2 3 4 5
Bản rõ N A D I C
G I A E H
A B U N X
Y A C D Y
M T H I Z
Vì có 5 cột nên chúng có thể được sắp lại theo 5!=120 cách khác
nhau. Để tăng độ an toàn có thể chọn một trong các cách sắp xếp lại đó.
Nếu ta chuyển vị các cột theo thứ tự 3, 5, 2, 4, 1 rồi lấy các ký tự ra
theo hàng ngang ta sẽ được bản mã là “DCAINAHIEGUXBNACYADY
HZTIM”. Lưu ý rằng các ký tự cách được bỏ đi.
Hạn chế của phương pháp này là toàn bộ các ma trận ký tự phải
được sinh để mã hoá và giải mã.
Liên hiệp Khoa học Sản xuất Công nghệ Phần mềm (CSE)
An toàn dữ liệu và mã hoá 11
• Hoán vị các ký tự của bản rõ theo chu kỳ cố định d: Nếu hàm f là một
hoán vị của một khối gồm d ký tự thì khoá mã hoá được biểu diễn bởi
K(d,f).
Do vậy, bản rõ:
M = m1m2...mdmd+1...m2d
Với mi là các ký tự , và bản rõ sẽ được mã hoá thành:
Ek(M) = mf(1)mf(2)...mf(d)md+f(1)...md+f(d)
Trong đó mf(1)mf(2)...mf(d) là một hoán vị của m1m2...md.
Ví dụ: giả sử d=5 và f hoán vị dãy i=12345 thành f(i)=35142
Vị trí đầu Vị trí hoán vị Từ Mã hoá
1 3 G O
2 5 R P
3 1 O G
4 4 U U
5 2 P R
Theo bảng trên, ký tự đầu trong khối 5 ký tự được chuyển tới vị trí
thứ 3, ký tự thứ hai được chuyển tới vị trí thứ 5, ... Chẳng hạn từ gốc
GROUP được mã hoá thành OPGUR.
Bằng cách đó, bản rõ “I LOVE BEETHOVENS MUSIC” sẽ được
chuyển thành “OEIVLEHBTEESONVSCMIU”.
Hệ mã ADFGV của Đức, được sử dụng trong suốt chiến tranh thế
giới lần thứ I, đó là một hệ mã hoá đổi chỗ (có sử dụng thay thế đơn
giản). Nó được coi là một thuật toán mã hoá phức tạp vào thời ấy nhưng
nó đã bị phá bởi Georges Painvin, một nhà thám mã người Pháp.
Mặc dù có rất nhiều hệ thống mã hoá sử dụng đổi chỗ, nhưng chúng
rất rắc rối bởi vì nó đòi hỏi rất nhiều bộ nhớ.
3. CÁC VẤN ĐỀ VỀ MÃ HOÁ CHO MẠNG MÁY TÍNH
3.1. CÁC THUẬT NGỮ
1. Hệ mật mã là tập hợp các thuật toán và các thủ tục kết hợp để che dấu
thông tin cũng như làm rõ nó.
Liên hiệp Khoa học Sản xuất Công nghệ Phần mềm (CSE)
An toàn dữ liệu và mã hoá 12
2. Mật mã học nghiên cứu mật mã bởi các nhà mật mã học, người viết
mật mã và các nhà phân tích mã.
3. Mã hoá là quá trình chuyển thông tin có thể đọc gọi là bản rõ thành
thông tin không thể đọc gọi là bản mã.
4. Giải mã là quá trình chuyển ngược lại thông tin được mã hoá thành
bản rõ.
5. Thuật toán mã hoá là các thủ tục tính toán sử dụng để che dấu và làm
rõ thông tin. Thuật toán càng phức tạp thì bản mã càng an toàn.
6. Một khoá là một giá trị làm cho thuật toán mã hoá chạy theo cách
riêng biệt và sinh ra bản rõ riêng biệt tuỳ theo khoá. Khoá càng lớn thì
bản mã kết quả càng an toàn. Kích thước của khoá được đo bằng bit.
Phạm vi các giá trị có thể có của khoá được gọi là không gian khoá.
7. Phân tích mã là quá trình hay nghệ thuật phân tích hệ mật mã hoặc
kiểm tra tính toàn vẹn của nó hoặc phá nó vì những lý do bí mật.
8. Một kẻ tấn công là một người (hay hệ thống) thực hiện phân tích mã
để làm hại hệ thống. Những kẻ tấn công là những kẻ thọc mũi vào
chuyện người khác, các tay hacker, những kẻ nghe trộm hay những
các tên đáng ngờ khác, và họ làm những việc thường gọi là cracking
3.2. ĐỊNH NGHĨA HỆ MẬT MÃ.
1. Hệ mật mã: là một hệ bao gồm 5 thành phần (P, C, K, E, D) thoả mãn
các tính chất sau
P ( Plaintext ) là tập hợp hữu hạn các bản rõ có thể.
C ( Ciphertext ) là tập hợp hữu hạn các bản mã có thể.
K ( Key ) là tập hợp các bản khoá có thể.
E ( Encrytion ) là tập hợp các qui tắc mã hoá có thể.
D ( Decrytion ) là tập hợp các qui tắc giải mã có thể.
Chúng ta đã biết một thông báo thường được tổ chức dưới dạng
bản rõ. Người gửi sẽ làm nhiệm vụ mã hoá bản rõ, kết quả thu được gọi
là bản mã. Bản mã này được gửi đi trên một đường truyền tới người nhận
sau khi nhận được bản mã người nhận giải mã nó để tìm hiểu nội dung.
Dễ dàng thấy được công việc trên khi sử dụng định nghĩa hệ mật
mã :
EK( P) = C và DK( C ) = P
Liên hiệp Khoa học Sản xuất Công nghệ Phần mềm (CSE)
An toàn dữ liệu và mã hoá 13
3.3. NHỮNG YÊU CẦU ĐỐI VỚI HỆ MẬT MÃ
Cung cấp một mức cao về độ tin cậy, tính toàn vẹn, sự không từ
chối và sự xác thực.
• Độ tin cậy: cung cấp sự bí mật cho các thông báo và dữ liệu được lưu
bằng việc che dấu thông tin sử dụng các kỹ thuật mã hóa.
• Tính toàn vẹn: cung cấp sự bảo đảm với tất cả các bên rằng thông báo
còn lại không thay đổi từ khi tạo ra cho đến khi người nhận mở nó.
• Tính không từ chối: có thể cung cấp một cách xác nhận rằng tài liệu đã
đến từ ai đó ngay cả khi họ cố gắng từ chối nó.
• Tính xác thực: cung cấp hai dịch vụ: đầu tiên là nhận dạng nguồn gốc
của một thông báo và cung cấp một vài sự bảo đảm rằng nó là đúng sự
thực. Thứ hai là kiểm tra đặc tính của người đang logon một hệ thống
và sau đó tiếp tục kiểm tra đặc tính của họ trong trường hợp ai đó cố
gắng đột nhiên kết nối và giả dạng là người sử dụng
3.4. CÁC PHƯƠNG PHÁP MÃ HOÁ
3.4.1. MÃ HOÁ ĐỐI XỨNG KHOÁ BÍ MẬT
• Định nghĩa
Thuật toán đối xứng hay còn gọi thuật toán mã hoá cổ điển là thuật
toán mà tại đó khoá mã hoá có thể tính toán ra được từ khoá giải mã.
Trong rất nhiều trường hợp, khoá mã hoá và khoá giải mã là giống nhau.
Thuật toán này còn có nhiều tên gọi khác như thuật toán khoá bí mật,
thuật toán khoá đơn giản, thuật toán một khoá. Thuật toán này yêu cầu
người gửi và người nhận phải thoả thuận một khoá trước khi thông báo
được gửi đi, và khoá này phải được cất giữ bí mật. Độ an toàn của thuật
toán này vẫn phụ thuộc và khoá, nếu để lộ ra khoá này nghĩa là bất kỳ
người nào cũng có thể mã hoá và giải mã thông báo trong hệ thống mã
hoá.
Sự mã hoá và giải mã của thuật toán đối xứng biểu thị bởi :
EK( P ) = C
DK( C ) = P
Liên hiệp Khoa học Sản xuất Công nghệ Phần mềm (CSE)
An toàn dữ liệu và mã hoá 14
Bản
Bản rõ Mã Giải mã Bản rõ
h á
Khoá
Hình 1. Mã hoá với khoá mã v khoá giải giống nhau
Mã hoá và giải mã với một khoá
Trong hình vẽ trên thì :
K1có thể trùng K2, hoặc
K1 có thể tính toán từ K2, hoặc
K2 có thể tính toán từ K1.
• Nơi ứng dụng:
• Sử dụng trong môi trường mà khoá đơn dễ dàng được chuyển như là
trong cùng một văn phòng. Cũng dùng để mã hoá thông tin để lưu trữ
trên đĩa.
• Các vấn đề đối với phương pháp mã hoá này:
1.Các phương mã hoá cổ điển đòi hỏi người mã hoá và người giải mã
phải cùng chung một khoá. Khi đó khoá phải được giữ bí mật tuyệt đối,
do vậy ta dễ dàng xác định một khoá nếu biết khoá kia.
2.Hệ mã hoá đối xứng không bảo vệ được sự an toàn nếu có xác suất
cao khoá người gửi bị lộ. Trong hệ khoá phải được gửi đi trên kênh an
toàn nếu kẻ địch tấn công trên kênh này có thể phát hiện ra khoá.
3.Vấn đề quản lý và phân phối khoá là khó khăn và phức tạp khi sử
dụng hệ mã hoá cổ điển. Người gửi và người nhận luôn luôn thông nhất
với nhau về vấn đề khoá. Việc thay đổi khoá là rất khó và dễ bị lộ.
4.Khuynh hướng cung cấp khoá dài mà nó phải được thay đổi thường
xuyên cho mọi người trong khi vẫn duy trì cả tính an toàn lẫn hiệu quả
chi phí sẽ cản trở rất nhiều tới việc phát triển hệ mật mã cổ điển.
Liên hiệp Khoa học Sản xuất Công nghệ Phần mềm (CSE)
An toàn dữ liệu và mã hoá 15
3.4.2. MÃ HOÁ PHI ĐỐI XỨNG KHOÁ CÔNG KHAI
• Định nghĩa
Vào những năm 1970 Diffie và Hellman đã phát minh ra một hệ mã
hoá mới được gọi là hệ mã hoá công khai hay hệ mã hoá phi đối xứng.
Thuật toán mã hoá công khai là khác biệt so với thuật toán đối xứng.
Chúng được thiết kế sao cho khoá sử dụng vào việc mã hoá là khác so với
khoá giải mã. Hơn nữa khoá giải mã không thể tính toán được từ khoá mã
hoá. Chúng được gọi với tên hệ thống mã hoá công khai bởi vì khoá để
mã hoá có thể công khai, một người bất kỳ có thể sử dụng khoá công khai
để mã hoá thông báo, nhưng chỉ một vài người có đúng khoá giải mã thì
mới có khả năng giải mã. Trong nhiều hệ thống, khoá mã hoá gọi là khoá
công khai (public key), khoá giải mã thường được gọi là khoá riêng
(private key).
Bản
Bản rõ Mã Giải mã Bản rõ
h á
Khoá mã Khoá
iải
Hình 1. Mã hoá với khoá mã v khoá giải khác nhau
Trong hình vẽ trên thì :
K1 không thể trùng K2, hoặc
K2 không thể tính toán từ K1.
Đặc trưng nổi bật của hệ mã hoá công khai là cả khoá công khai
(public key) và bản tin mã hoá (ciphertext) đều có thể gửi đi trên một
kênh thông tin không an toàn.
• Nơi ứng dụng: Sử dụng chủ yếu trên các mạng công khai như Internet
khi mà khoá chuyển tương đối khó khăn.
• Diffie và Hellman đã xác đinh rõ các điều kiện của một hệ mã
hoá công khai như sau:
Liên hiệp Khoa học Sản xuất Công nghệ Phần mềm (CSE)
An toàn dữ liệu và mã hoá 16
1. Việc tính toán ra cặp khoá công khai KB và bí mật kB dựa trên cơ sở
các điều kiện ban đầu phải được thực hiện một cách dễ dàng, nghĩa là
thực hiện trong thời gian đa thức.
2. Người gửi A có được khoá công khai của người nhận B và có bản tin
P cần gửi đi thì có thể dễ dàng tạo ra được bản mã C.
C = EKB (P) = EB (P)
Công việc này cũng trong thời gian đa thức.
3. Người nhận B khi nhận được bản tin mã hóa C với khoá bí mật kB thì
có thể giải mã bản tin trong thời gian đa thức.
P = DkB (C) = DB[EB(M)]
4. Nếu kẻ địch biết khoá công khai KB cố gắng tính toán khoá bí mật thì
khi đó chúng phải đương đầu với trường hợp nan giải, trường hợp này đòi
hỏi nhiều yêu cầu không khả thi về thời gian.
5. Nếu kẻ địch biết được cặp (KB,C) và cố gắng tính toán ra bản rõ P thì
giải quyết bài toán khó với số phép thử là vô cùng lớn, do đó không khả
thi.
3.5. CÁC CÁCH PHÂN TÍCH MÃ
Các thuật toán cho phần lớn các hệ mật mã là nổi tiếng nên chúng
ta giả sử rằng những kẻ phân tích mã đã có thuật toán trong tay khi bắt
đầu tấn công. Trong phần lớn các hệ mật mã, thuật toán để phân phối cho
tất cả người sử dụng và sức mạnh của hệ thống nằm trong khoá cũng như
phụ thuộc vào thuật toán mã hoá dữ liệu tốt như thế nào. Và độ dài của
khoá mã quyết định bản mã kết quả được mã tốt như thế nào và sẽ bảo vệ
chống lại các cuộc tấn công brute-force. Tấn công brute-force là cách
trong đó mọi khoá có thể được thử dùng để giải mã.
Nhiều nhà viết mật mã tin rằng các cuộc tấn công brute-force
không thể thực hiện được khi khoá dài được sử dụng, thậm chí khi khả
năng của máy tính đang lên. Tấn công brute-force đối với bản mã phải mã
hoá với một khoá lớn (trên 100 bít) có thể mất hàng triệu hoặc hàng tỉ
năm ngay cả khi với mạng máy tính mạnh hơn nữa việc thêm một bít đơn
có thể làm tăng gấp đôi giá của việc phân tích bằng brute-force.
Tuy nhiên vẫn tồn tại một điểm yếu trong hệ thống trừ một vài
khoá, làm giảm số các khoá cần được kiểm tra. Ví dụ, kẻ phân tích mã có
Liên hiệp Khoa học Sản xuất Công nghệ Phần mềm (CSE)
An toàn dữ liệu và mã hoá 17
thể khám phá ra rằng một thuật toán sinh ra các số ngẫu nhiên nhưng thực
tế có một vài mẫu được lặp lại. Điểm yếu này của hệ thống có thể cung
cấp một con đường để khám phá hệ thống.
Có một vài phương pháp chung để phân tích, dưới đây là danh sách
theo thứ tự khả năng của từng phương pháp. Mỗi phương pháp trong số
chúng giả sử rằng kẻ phân tích mã hoàn toàn có hiểu biết về thuật toán
mã hoá được sử dụng.
1. Chỉ có bản mã. Trong trường hợp này, người phân tích chỉ có một vài
bản tin của bản mã, tất cả trong số chúng đều đã được mã hoá và cùng sử
dụng chung một thuật toán. Công việc của người phân tích là tìm lại được
bản rõ của nhiều bản mã có thể hoặc tốt hơn nữa là suy luận ra được khoá
sử dụng mã hoá, và sử dụng để giải mã những bản mã khác với cùng khoá
này.
Giả thiết : C1 = Ek(P1), C2= Ek(P2), . . .Ci = Ek(Pi)
Suy luận : Mỗi P1,P2, . . Pi, k hoặc thuật toán kết luận Pi+1 từ Ci+1 =
Ek(Pi+1)
2. Biết bản rõ. Người phân tích không chỉ truy cập được một vài bản mã
mặt khác còn biết được bản rõ. Công việc là suy luận ra khoá để sử dụng
giải mã hoặc thuật toán giải mã để giải mã cho bất kỳ bản mã nào khác
với cùng khoá như vậy.
Giả thiết : P1, C1 = Ek(P1), P2, C2= Ek(P2), . . . Pi, Ci = Ek(Pi)
Suy luận : Mỗi k hoặc thuật toán kết luận Pi+1 từ Ci+1 = Ek(Pi+1)
3. Lựa chọn bản rõ. Người phân tích không chỉ truy cập được bản mã và
kết hợp bản rõ cho một vài bản tin, nhưng mặt khác lựa chọn bản rõ đã
mã hoá. Phương pháp này tỏ ra có khả năng hơn phương pháp biết bản rõ
bởi vì người phân tích có thể chọn cụ thể khối bản rõ cho mã hoá, một
điều khác có thể là sản lượng thông tin về khoá nhiều hơn.
Giả thiết : P1, C1 = Ek(P1), P2, C2= Ek(P2), . . . Pi, Ci = Ek(Pi) tại đây
người phân tích chọn P1, P2,. . . Pi
Suy luận : Mỗi k hoặc thuật toán kết luận Pi+1 từ Ci+1 = Ek(Pi+1)
4. Lựa chọn bản rõ thích hợp. Đây là trường hợp đặc biệt của lựa chọn
bản rõ. Không chỉ có thể lựa chọn bản rõ đã mã hoá, nhưng họ còn có thể
sửa đổi sự lựa chọn cơ bản kết quả của sự mã hoá lần trước. Trong trường
lựa chọn bản mã người phân tích có thể đã chọn một khối lớn bản rõ đã
mã hoá, nhưng trong trường hợp này có thể chọn một khối nhỏ hơn và
chọn căn cứ khác trên kết quả của lần đầu tiên.
Liên hiệp Khoa học Sản xuất Công nghệ Phần mềm (CSE)
An toàn dữ liệu và mã hoá 18
Ví dụ tốt nhất về trường hợp biết bản rõ là những file được tạo ra bởi
các từ khác nhau trong đó chứa các mã định dạng được ẩn và header file.
Các tài liệu cũng chứa tên công ty và địa chỉ, bản quyền, và nhiều thông
tin khác mà các nhà phân tích có thể lấy được một cách dễ dàng. Thực tế
là, rất nhiều tài liệu được sử dụng trong thương mại điện tử có header
chuẩn được sử dụng để định danh tài liệu cho các máy tính khác. Các nhà
phân tích có thể tìm ra khoá bằng việc phân tích thuật toán đã mã bản rõ
đã biết như thế nào.
Dưới đây là một vài kỹ thuật được các nhà phân tích để tấn công
bản mã.
• Differential cryptanalysis; kỹ thuật này sử dụng một quá trình lặp
để ước lượng mã được tạo ra sử dụng một thuật toán lặp khối
(như DES). Liên kết bản rõ được mã hoá dưới cùng một khoá. Sự
khác biệt được phân tích và các khoá có thể được xác định thông
qua số các lần lặp. Kỹ thuật này được sử dụng thành công chống
lại DES và FEAL-4.
• Linear cryptanalysis: kỹ thuật này cũng được sử dụng thành công
để chống lại DES và FEAL-4. Các cặp bản rõ và bản mã kết quả
được phân tích và một kỹ thuật xấp xỉ tuyến tính được sử dụng để
xác định hoạt động của mã khối.
• Algebraic attacks:ký thuật này khám phá cấu trúc toán học trong
các mật mã khối. Nếu cấu trúc tồn tại thì việc mã hoá đơn với
một khoá có thể sinh ra các kết quả tương tự như việc mã hoá đôi
với hai khoá khác nhau. Kẻ phân tích sẽ có được ưu thế ở yếu
điểm này.
Nói chung những nhà phân tích mã cần có thời gian và tài nguyên.
Điều này làm cho các nhà phân tích gặp khó khăn nhất là khi các thuật
toán và ký thuật mã hoá tốt hơn nhờ các tiến bộ kỹ thuật.
Dù rằng các cuộc tấn công DES là thành công nhưng các cuộc tấn
công này không dễ dàng và rẻ. Phương pháp nhanh nhất là tấn công
brute-force đã mất 3.5 giờ trên máy tính hàng triệu đôla. Differential
cryptanalysis được sử dụng để tấn công, trong đó 247 lần mã được thực
hiện trên một bản rõ được chọn, cuộc tấn công quá khó sẽ không được đề
cập trong thực tế. Trong một cuộc tấn công khác Linear cryptanalysis
được dùng để tìm ra khoá DES trong 50 ngày, sử dụng 12 computer
workstation.
Liên hiệp Khoa học Sản xuất Công nghệ Phần mềm (CSE)
An toàn dữ liệu và mã hoá 19
4. MỘT SỐ THUẬT TOÁN MÃ HOÁ CƠ BẢN
4.1. CHUẨN MÃ HOÁ DỮ LIỆU DES
DES là thuật toán mã hoá khối (block algrithm), nó mã hoá một
khối dữ liệu 64 bíts. Một khối bản rõ 64 bít đưa vào vào thực hiện, sau
khi mã hoá dữ liệu ra là một khối bản mã 64 bít. Cả mã hoá và giải mã
đều sử dụng cùng một thuật toán và khoá.
Khoá mã có độ dài 64 bít, trong đó có 8 bít chẵn lẻ được sử dụng
để kiểm soát lỗi. Các bít chẵn lẻ nằm ở các vị trí 8, 16, 24, ... , 64. Tức là
cứ 8 bít thì có 1 bít kiểm soát lỗi, bít này qui định số bít có giá trị “1” của
khối 8 bít đó là chẵn hay lẻ.
Nền tảng để xây dựng khối của DES là sự kết hợp đơn giản của các
kỹ thuật thay thế và hoán vị bản rõ dựa trên khoá, đó là các vòng lặp.
DES sử dụng 16 vòng lặp áp dụng cùng một kiểu kết hợp các kỹ thuật
trên khối bản rõ (Hình 1).
Thuật toán chỉ sử dụng các phép toán số học và logic thông thường
trên các số 64 bít, vì vậy nó dễ dàng thực hiện vào những năm 1970 trong
điều kiện về công nghệ phần cứng lúc bấy giờ. Ban đầu, sự thực hiện các
phần mềm kiểu này rất thô sơ, nhưng hiện tại thì việc đó đã tốt hơn, và
với đặc tính lặp đi lặp lại của thuật toán đã tạo nên ý tưởng sử dụng chíp
với mục đích đặc biệt này.
Liên hiệp Khoa học Sản xuất Công nghệ Phần mềm (CSE)
An toàn dữ liệu và mã hoá 20
Plaintext
IP
L0 R0
ƒ
K1
L1=R0 R1=L0⊕ƒ(R0,K1)
ƒ
K2
L2=R1 R2=L1⊕ƒ(R1,K2)
L15=R14 R15=L14⊕ƒ(R14,K15
ƒ
K16
R16=L15⊕ƒ(R15,K16) L16=R15
IP -1
Ciphertext
Hình 2. DES
Liên hiệp Khoa học Sản xuất Công nghệ Phần mềm (CSE)