Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 30 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
30
Dung lượng
646,39 KB
Nội dung
C
C
h
h
ư
ư
ơ
ơ
n
n
g
g
HỆ MẬTMÃKHÓAĐỐIXỨNG
(SYMMETRIC-KEY CRYPTOGRAPHY)
Mã khóađốixứng được dùng để chỉ các hệmãmà trong đó, khi biết
khóa lập mã ta có thể tìm đ
ược khóa giải mã một cách dễ dàng (vì vậy
người ta thường coi chúng là một), đồng thời việc giải mã cũng đòi hỏi
thời gian nh
ư việc lập mã. Các hệmã thuộc loại này có thời gian lập mã
và giải mã t
ương đối nhanh vì thế các hệmãđốixứng thường được sử
dụng để mã hóa những dữ liệu lớn. Nh
ưng các hệmãđốixứng yêu cầu
phải giữ bí mật hoàn toàn về khóa lập mã.
Nội dung chính
I. Các hệmậtmã cổ điển (Classical ciphers).
II. Thám mãđối với hệmậtmã cổ điển.
III. Mã dòng (Stream Cipher).
IV. Mã khối (Block cipher)
Trường Đại học Dân lập Hải Phòng
Hiện nay tin học đã được áp dụng vào hầu hết các lĩnh vực
trong cuộc sống và có một ảnh hưởng rất lớn đối với sự tồn tại và phát
triển của các ngành khoa học khác. Trong mọi hệ thống tin học, thông
tin luôn là thành phần cơ bản nhất và quan trọng nhất. Chúng ta không
ai mà không gặp phải những trường hợp khi máy tính bị mất hết
những thông tin quan trọng do nhiều nguyên nhân khác nhau như bị
virus, bị hư hỏng thiết bị, do không biết sử dụng, bị đánh cắp hay xoá
thông tin… Nói chung vấn đề an toàn và bảo mật thông tin rất đa dạng
và phụ thuộc vào nhiều yếu tố chủ quan và khách quan khác nhau
như: con người, môi trường, công nghệ… Hiện nay có rất nhiều công
cụ và phần mềm hỗ trợ an toàn cho hệ thống máy tính. Tuy nhiên vấn
đề đánh giá và chọn lựa một hệ thống an toàn rất phức tạp và chỉ
mang tính tương đối bởi vì một hệ thống được đánh giá là rất an toàn
hôm nay có thể không còn an toàn nữa vào ngày mai. Nếu chúng ta
thường xuyên theo dõi các thông tin bảo mật trên Internet, chúng ta có
thể thấy thông tin về những lỗ hổng bảo mật của các hệ điều hành, các
phần mềm bảo mật, các dịch vụ… Vì vậy an toàn và bảo mật thông tin
là một trong những thành phần quan trọng nhất cần được quan tâm
trong việc duy trì và phát triển của hệ thống.
Lê Thụy 2
Chương 2 - Lý thuyết Mậtmã và An toàn thông tin
Mật mã và vấn đề an toàn thông tin ?
Mật mã (Cipher) đã xuất hiện cách đây khoảng 4000 năm tại Ai
cập. Khi mà các cuộc chiến tranh xẩy ra giữa các đế chế. Thông tin
của bên A dưới dạng chữ cái (letter), chữ số (number) hay loại nào đó
trước khi được gửi đi sẽ được mã hoá. Bên B nhận được thông tin mã
hoá này thực hiện việc giải mã để hiểu được nội dung. Một người lấy
được bản mã cũng khó có thể hiểu được nội dung của thông tin vì chỉ
có A và B mới có cách giải mã. Thời kì này các thông tin được bảo
mật bằng các phương pháp khác nhau, hay còn gọi là các hệmậtmã
cổ điển. Các hệmậtmã sớm nhất được biết đến như mậtmã Ceazar -
mã dich chuyển (Shift Cipher), mã thế (Substitution Cipher)… Các hệ
mật mã này được sử dụng trong một thời gian dài. Cho đến khi toán
học phát triển. Các hệmã mới được xây dựng trên các lý thuyết về
toán học hiện đại. Một thế hệmậtmã được xây dựng dựa trên độ phức
tạp tính toán, các hệmậtmã này được gọi là các hệmã hiện đại. Các
ứng dụng của các hệmậtmã ngày càng được áp dụng trong nhiều lĩnh
vực xã hội. Giúp giải quết hàng loạt các vấn đề về an toàn thông tin
trên các kênh thông tin không bảo mật.
Mật mã cung cấp một giải pháp nhằm mục đích thực hiện biến
một thông tin cụ thể dễ hiểu thành một dạng khác (khó hiểu) có quan
hệ chặt chẽ với thông tin gốc. Giờ đây ta gọi thông tin chưa mã hoá
(tường minh) là “bản rõ”, và thông tin sau khi được mã hoá là “bản
mã”. Vậy mậtmã là gì ? Tại sao nó lại bảo vệ đươc bí mật thông tin ?
Cơ sở của nó là gì ?
Định nghĩa : Mậtmã học là sự nghiên cứu các phương pháp toán học
liên quan đến một số khía cạnh của thông tin như sự an toàn, sự toàn
vẹn dữ liệu, sự xác nhận tồn tại và sự xác nhận tính nguyên bản của
thông tin.
Lê Thụy 3
Trường Đại học Dân lập Hải Phòng
I. Các hệmậtmã cổ điển (Classical ciphers).
1. Mở đầu:
-
Mong muốn được trao đổi thông tin một cách bí mật là một
trong những đòi hỏi của con người xuất hiện từ rất sớm trong l
ịch sử.
Vì thế lịch sử của việc trao đổi thông tin mật rất phong phú và bao
gồm những phát minh độc đáo mang đầy tính giai thoại. Ngành học
nghiên cứu cách thức che dấu thông tin đối với những đối tượng
không mong muốn được gọi là mậtmã học (cryptography)
- Mậtmã (cipher) được dùng để bảo vệ bí mật của thông tin
khi thông tin được truyền trên các kênh thông tin không bảo mật như
thư tín, điện thoại, mạng truyền thông máy tính…
- A muốn gửi cho B một văn bản bằng tiếng Việt (gọi là
“bản rõ” - plaintext), muốn được bảo mật thì A phải lập mậtmã cho
“bản rõ” đó (gọi là “bản mã” - ciphertext) và gửi “bản mã” cho B. A
và B có một khoámậtmã chung, vừa để A lập “bản mã”, vừa để B
giải “bản mã” thành “bản rõ”. Một người khác không có khoá đó, thì
dù có lấy được “bản mã” từ kênh truyền tin cũng không thể biến thành
“bản rõ” để hiểu được nội dung thông báo mà A gửi cho B.
Bộ mã hoá Bộ giải mã
Phân tích mậtmã
Kênh công cộng
Kênh an toàn
Bản tin
gốc (M)
Bản tin
gốc (M)
Các bản tin
m
ật
m
ã
M’
A☺ B☺
C
/
- Các hệmậtmã cổ điển thực hiện việc bảo mật đó đều dùng
một khoá chung cho việc lập mã và giải mã, các bản rõ và bản mã
thường dùng cơ sở là bảng chữ trong ngôn ngữ tự nhiên. Trong phần
này, để tiện trình bầy ta dùng bảng chữ cái tiếng Anh làm ví dụ, và
dùng các số liệu thống kê của tiếng Anh để minh hoạ.
Lê Thụy 4
Chương 2 - Lý thuyết Mậtmã và An toàn thông tin
- Dưới đây là một số định nghĩa toán học về hệ thống mật
mã:
Định nghĩa 1.1: Một hệmậtmã là một bộ năm (P, C, K, E, D)
thoả mãn các điều kiện sau đây:
+ P là một tập hữu hạn các bản rõ.
+ C là một tập hưu hạn các bản mã.
+ K là một tập hưu hạn các khoá.
+ Với mỗi k ∈ K, có một hàm lập mã e
k
∈ E, e
k
: P → C, và một
hàm giải mã d
k
∈ D, d
k
: C → P sao cho d
k
(e
k
(x)) = x với mọi x ∈ P.
Trong thực tế, P và C thường là bảng chữ cái (hoặc tập các
dãy chữ cái có độ dài cố định)
Nếu bản rõ là (một xâu chữ cái):
x = x
1
x
2
x
3
…x
n
(x
i
∈ P ), và khoá là k ∈ K
thì bản mã sẽ là:
y = y
1
y
2
y
3
…y
n
(y
i
∈ C )
Trong đó y
i
= e
k
(x
i
) (1 ≤ i ≤ n). Nhận được bản mã y, biết khoá
k, sẽ tìm được bản rõ x, vì x
i
= d
k
(y
i
)
Sau đây thay cho bảng chữ cái A, B, C,…,X, Y, Z ta sẽ dùng các
con số 0, 1, 2,…, 24, 25 và dùng các phép toán số học theo modulo 26
để diễn tả các phép biến đổi trên bảng chữ cái.
A B C D E F G H I J K L M N
0 1 2 3 4 5 6 7 8 9 10 11 12 13
O P Q R S T U V W X Y Z
14 15 16 17 18 19 20 21 22 23 24 25
2. Mã dịch chuyển (Shift Cipher).
Kí hiệu
]
m
là tập các số nguyên từ 0 đến (m-1), ký hiệu đó
cũng dùng cho vành các số nguyên từ 0 đến (m-1) với các phép cộng
Lê Thụy 5
Trường Đại học Dân lập Hải Phòng
và nhân với modulo m. Như vậy, bảng chữ cái tiếng Anh có thể xem là
một vành
]
26
với sự tương ứng kể trên.
Định nghĩa
Mã dịch chuyển: (P, C, K, E, D)
P = C = K = ]
26
với k ∈ K, định nghĩa
e
k
(x) = (x + k) mod 26
d
k
(y) = (y – k) mod 26
(x, y ∈
]
26
)
Ví dụ: Dùng khoá k = 9 để mã hoá dòng thư:
“hentoithubay”
dòng thư đó tương ứng với dòng số:
h e n t o i t h u b a y
7 4 13 19 14 8 19 7 20 1 0 24
qua phép mã hoá e
9
sẽ được:
16 13 22 2 23 17 2 16 3 10 9 7
q n w c x r c q d k j h
bản mã sẽ là:
“qnwcxrcqdkjh”
Nhận được bản mã đó, dùng d
9
để nhận được bản rõ.
Cách đây 2000 năm mã dịch chuyển đã được Julius Ceasar sử
dụng, với khoá k=3 mã địch chuyển được gọi là mã Ceasar.
Tập khoá phụ thuộc vào
]
m
với m là số khoá có thể.
Trong tiếng Anh tập khoá chỉ có 26 khoá có thể, việc thám mã
có thể được thực hiện bằng cách duyệt tuần tự 26 khoá đó, vì vậy độ
an toàn của mã dịch chuyển rất thấp.
Lê Thụy 6
Chương 2 - Lý thuyết Mậtmã và An toàn thông tin
3.
Mã thay thế (Substitution Cipher).
Khoá của mã thay thế là một hoán vị của bảng chữ cái. Gọi
S(E) là tập hợp tất cả các phép hoán vị các phần tử của E.
Định nghĩa
Mã thay thế: (P, C, K, E, D)
P = C = ]
26
, K = S ( ]
26
)
Với mỗi л ∈ K, tức là một hoán vị trên
]
26
, ta xác định
e
л
(x) = л(x)
d
л
(y) = л
-1
(y)
với x, y ∈
]
26
, л
-1
là nghịch đảo của л
Ví dụ: л được cho bởi (ở đây ta viết chữ cái thay cho các con số
thuộc
]
26
):
a b c d e f g h i j k l m n
x n y a h p o g z q w b t s
o p q r s t u v w x y z
f l r c v m u e k j d i
bản rõ:
“hentoithubay”
sẽ được mã hoá thành bản mã (với khoá л):
“ghsmfzmgunxd”
Dễ xác định được л
-1
, và do đó từ bản mã ta tìm được bản rõ.
Mã thay thế có tập hợp khoá khá lớn - bằng số các hoán vị trên
bảng chữ cái, tức số các hoán vị trên
]
26
, hay là 26!, lớn hơn 4.10
26
.
Việc duyệt toàn bộ các hoán vị để thám mã là rất khó, ngay cả đối với
máy tính. Tuy nhiên, ta sẽ thấy có những phương pháp thám mã khác
dễ dàng thực hiện, và do đó mã thay thế cũng không thể được xem là
an toàn.
Lê Thụy 7
Trường Đại học Dân lập Hải Phòng
4.
Mã Apphin (Apphin Cipher).
Phép lập mã được cho bởi một hàm Apphin dạng:
e(x) = ax + b mod 26
trong đó a, b ∈
]
26
(chú ý: nếu a = 1 ta có mã dịch chuyển)
Để có được phép giải mã tương ứng, tức để cho phương trình
ax + b = y mod 26
có nghiệm x duy nhất (với bất kỳ y ∈
]
26
cho trước), hay nói
cách khác hàm Apphin phải là đơn ánh. Theo một định lý số học, điều
kiện cần và đủ là a nguyên tố với 26, tức là (a, 26) = 1. Ở đây (a, 26)
ký hiệu cho ước số chung lớn nhất của a và 26.
Khi (a, 26) = 1 thì có số a
-1
∈]
26
sao cho a.a
-1
= a
-1
.a = 1 mod
26, và do đó, Nếu:
y = ax + b mod 26
Ù ax = y – b mod 26
Ù a
-1
.ax = a
-1
.(y – b) mod 26
Ù (a
-1
.a)x = a
-1
.(y – b) mod 26
Ù x = a
-1
.(y – b) mod 26
⇒ d(x) = a
-1
.(y – b) mod 26
Định nghĩa
Mã Apphin: (P, C, K, E, D)
P = C = ]
26
, K = { (a, b) ∈ ]
26
x ]
26
: (a, 26) = 1 }
với mỗi k = (a, b) ∈ K ta định nghĩa:
e
k
(x) = ax + b mod 26
d
k
(y) = a
-1
(y – b) mod 26
trong đó x, y ∈
]
26
Lê Thụy 8
Chương 2 - Lý thuyết Mậtmã và An toàn thông tin
Có những thuật toán để thử tính chất (a, m) = 1, và tính a
-1
mod
m khi (a, m) = 1, ta sẽ trình bầy trong phần sau. Tuy nhiên, với m =
26, ta dễ thử rằng các số a sao cho (a, 26) = 1 là:
a 1 3 5 7 9 11 15 17 19 21 23 25
a
-1
1 9 21 15 3 19 7 23 11 5 17 25
Ví dụ: Lấy k = (5, 6).
Bản rõ:
“hentoithubay”
h e n t o i t h u b a y
x
7 4 13 19 14 8 19 7 20 1 0 24
y = 5x + 6 mod 26
y
15 0 19 23 24 20 23 15 2 11 6 22
p a t x y u x p c l g w
Bản mã:
“patxyuxpclgw”
Thuật toán giải mã trong trường hợp này có dạng:
d
k
(y) = 21(y − 6) mod 26
Với mã Apphin, số các khoá có thể có bằng (số các số ≤ 26 và
nguyên tố với 26) × 26, tức là 12 × 26 = 312. Việc thử tất cả các khoá
để thám mã trong trường hợp này tuy khá mất thì giờ nếu tính bằng
Lê Thụy 9
Trường Đại học Dân lập Hải Phòng
tay, nhưng không khó khăn gì nếu dùng máy tính. Do vậy, mã Apphin
cũng không phải là mã an toàn.
5.
Mã Vigenēre (Vigenēre Cipher).
Mã lấy tên của Blaise de Vigenēre, sống vào thế kỷ 16. Khác
với các mã trước, mã Vigenēre không thực hiện trên từng ký tự một,
mà được thực hiện trên từng bộ m ký tự (m là số nguyên dương).
Định nghĩa
Mã Vigenēre: (P, C, K, E, D)
Cho m là số nguyên dương.
P = C = K =
]
26
m
với mỗi khoá k = (k
1
, k
2
,…,k
m
) ∈ K có:
e
k
(x
1
, x
2
,…, x
m
) = (x
1
+ k
1
, x
2
+ k
2
,…, x
m
+ k
m
)
d
k
(y
1
, y
2
,…, y
m
) = (y
1
– k
1
, y
2
– k
2
,…, y
m
– k
m
)
các phép cộng phép trừ điều lấy theo modulo 26
Ví dụ: Giả sử m = 6 và khoá k là từ CIPHER - tức k=(2, 8, 15,
7, 4, 17).
Bản rõ:
“hentoithubay”
h e n t o i t h u b a y
x
7 4 13 19 14 8 19 7 20 1 0 24
k 2 8 15 7 4 17 2 8 15 7 4 17
y
9 12 2 0 18 25 21 15 9 8 4 15
j m c a s z v p j i e p
Bản mã:
Lê Thụy 10
[...]... kinh tế, đặc biệt trong các hệ thống ngân hàng NBS về nguyên tắc cứ khoảng 5 năm lại xét lại hệmã một lần, do vậy các hệmã chuẩn của Mỹ luôn được nâng cấp Lê Thụy 22 Chương 2 - Lý thuyết Mậtmã và An toàn thông tin DES là một hệ mậtmãkhóađốixứng được sử dụng rộng rãi nhất do tính an toàn cao của nó Như đã biết hệ mậtmãkhóađốixứng là hệmãmà quá trình tạo mã và giải mã đều sử dụng chung một... l¹i thì dễ thấy rằng mã Hill với khoá Kπ trùng với mã hoán vị với khoá π Với m cho trước, số các khoá có thể có của mã hoán vị là m! Dễ nhận thấy với m = 26 ta có số khóa 26! (mã Thay thế) Lê Thụy 15 Trường Đại học Dân lập Hải Phòng II Thám mãđối với hệ mậtmã cổ điển Như chúng ta đã biết, hệmã cổ điển là những hệmã được sử dụng từ rất lâu, lúc mà khả năng tính toán của các hệ thống chưa phát triển... nhiên việc thám mã nói chung đều thực hiện qua 4 bước: - Xác định ngôn ngữ được sử dụng (bản rõ – bản mã) - Xác định hệ thống nói chung được sử dụng - Xây dựng lại khoá của mậtmã sử dụng trong hệ thống - Xây dựng lại bản gốc (bản rõ) Các hình thức tấn công vào hệ mã: - Chỉ biết bản mã: Kẻ thám mã chỉ có trong tay bản mã - Biết bản rõ: Kẻ thám mã biết được một mẫu của bản rõ và phần mã tương ứng của... 100010011010111100010… Mã dòng sinh ra bởi hệ thức truy toán có thể được thực hiện bằng phần cứng khi dùng một thanh ghi chuyển dịch liên hệ ngược tuyến tính Thanh ghi tương ứng với hệmã cụ thể nói trên có sơ đồ là: + k1 k2 k3 k4 Chú ý: Mã Vigenēre với độ dài khoá m có thể được coi là mã dòng, có chu kỳ m với cách lập mã và giải mã theo mã dịch chuyển Ví dụ: Một ví dụ đơn giản của mã dòng không đồng bộ là mã Autokey,... rõ đó - Chọn bản rõ: Kẻ thám mã có thể tạm thời tước quyền điều khiển hệ thống, rồi chọn bản rõ và xây dựng bản mã tương ứng - Chọn bản mã: Kẻ thám mã tạm thời điều khiển hệ thống, rồi chọn bản mã và xây dựng lại bản rõ tương ứng Lê Thụy 17 Trường Đại học Dân lập Hải Phòng III Mã dòng (Stream Cipher) Trong các hệ mậtmã được xét cho đến nay, ta dùng cùng một khoá k để mã hoá các ký tự (hay các bộ m... cẩn thận của hai quá trình cơ bản của mậtmã là thay thế và hoán vị Mô tả thuật toán DES Thuật toán được thiết kết để lập mã và giải mã một khối dữ liệu nhị phân 64 bits với sự kết hợp của một khóa 64 bits Quá trình giải mã thực hiện theo một sơ đồ như quá trình lập mã, chỉ có khác là trật tự khóa được đảo lại so với quá trình lập mã Một khối dữ liệu 64 bits được mã hóa bằng việc cho qua một bảng hoán... DES-1 DES DES-1 DES O Xác định bộ khóa (k1, k2, k3) có thể có các lựa chọn sau: • Lựa chọn 1: khóa k1, k2 và k3 là các khóađộc lập • Lựa chọn 2: khóa k1, k2 độc lập và k3 = k1 • Lựa chọn 3: k1 = k2 = k3 3 Mã AES (Advanced Encryption Standard) Chuẩn này xác định thuật toán Rijnbaen, là một trong những mã khối đốixứng để xử lý một khối dữ liệu 128 bits, có sử dụng khóa mậtmã có độ dài 128, 192 và 256 bits... khối Mậtmã khối xử lý các khối dữ liệu có độ dài cố định và độ dài bản tin có thể bất kỳ Có bốn phương pháp ứng dụng mã khối thường gặp trong hệ thống truyền tin và số liệu truyền tin: • Phương pháp dùng từ điển điện tử, còn gọi là mậtmã ECB (Electronic CodeBook) • Phương pháp móc xích các khối đã được mã hoá, còn gọi là mậtmã CBC (Cipher Block Chaining) • Phương pháp phản hồi bản tin đã mã hoá,... thế các quy tắc được áp dụng trong các hệmã là rất đơn giản Chủ yếu dựa trên hai phương pháp dịch chuyển và thay thế Độ an toàn của các hệmã này không chỉ phụ thuộc vào khoámà còn phụ thuộc cả vào sơ đồ mã hoá được sử dụng (dó đó cần giữ bí mật cả sơ đồ mã hoá và khoá lập mã) Với sáu loại mã cổ điển chúng ta đã xét, thấy rằng miền giá trị khoá có thể của các hệmã đó bị giới hạn, khi đó với khả năng... là mậtmã CFC (Cipher feedblack) • Phương pháp phản hồi đầu ra, còn gọi là OFC (Output Feedblack) Các phương pháp ứng dụng của mậtmã khối trên được phát triển mạnh sau khi xuất hiện mã DES Trên thưc tế có thể có những phương pháp khác, nhưng bốn phương pháp trên được ứng dụng phổ biến và cũng khá đầy đủ 1 Mã hóa DES (Data Encryptiton Standard) Lê Thụy 21 Trường Đại học Dân lập Hải Phòng Hệmậtmã . C
C
h
h
ư
ư
ơ
ơ
n
n
g
g
HỆ MẬT MÃ KHÓA ĐỐI XỨNG
(SYMMETRIC-KEY CRYPTOGRAPHY)
Mã khóa đối xứng được dùng để chỉ các hệ mã mà trong đó, khi biết
khóa lập mã ta có thể. thời gian lập mã
và giải mã t
ương đối nhanh vì thế các hệ mã đối xứng thường được sử
dụng để mã hóa những dữ liệu lớn. Nh
ưng các hệ mã đối xứng yêu cầu