Nhờ có các ưu điểm vượt trội về tốc độ, tính giản đơn và bảo mật tốt, MÃ HÓA ĐỐI XỨNG hiện được sử dụng rộng rãi trong rất nhiều ứng dụng từ bảo mật lưu lượng truy cập internet cho tới bảo vệ dữ liệu lưu trữ trên các máy chủ điện toán đám mây.
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC THƯƠNG MẠI KHOA HTTT KINH TẾ & TMĐT
BÀI THẢO LUẬN MÔN : AN TOÀN BẢO MẬT THÔNG TIN
TÊN ĐỀ TÀI:
TRÌNH BÀY KHÁI NIỆM, ĐẶC ĐIỂM, PHÂN LOẠI VÀ CÁC ỨNG DỤNG
PHỔ BIẾN CỦA CÁC HỆ THỐNG MÃ HÓA ĐỐI XỨNG
HÀ NỘI, 2019
Trang 2Mục lục:
1 Khái niệm về hệ mã hóa đối xứng
2 Đặc điểm của hệ mã hóa đối xứng
3 Phân loại của hệ mã hóa đối xứng
4 Các hệ thống mã hóa đối xứng
4.1 Mã hóa thay thế
4.2 Mã hóa Ceasar
4.3 Mã hóa nhân
4.4 Mã hóa Vigenère
4.5 Mã hóa tự động
4.6 Mã hóa hoán vị
4.7 Mã hóa khối
5 Vấn đề an toàn của hệ thống mã hóa đối xứng
6 Ưu, nhược điểm của hệ thống mã hóa đối xứng
7 Các ứng dụng phổ biến
8 Đánh giá
Trang 31 Khái niệm về hệ mã hóa đối xứng
Là những hệ mật được sử dụng chung 1 khóa trong quá trình mã hóa và mã hóa Do đó khóa phải được giữ bí mật tuyệt đối
2 Đặc điểm của hệ mã hóa đối xứng
– Dùng chỉ 01 mã khóa cho cả 02 quá trình mã hóa và giải mã
– Độ bảo mật cao
– Tốc độ thực hiện nhanh
– Bản mã có dung lượng tương đương bản gốc
– Việc chuyển mã khóa đến người nhận có thể khiến cho bản mã chẳng còn gì là
bí mật đối với mọi người
– Số lượng mã khóa phải quản lý gần bằng bình phương số đối tượng tham gia trao đổi thông tin, vì thế không phù hợp với giao dịch trên quy mô lớn
– Việc quản lý mã khóa phức tạp, tốn nhiều công sức
3 Phân loại
Mã hóa đối xứng : cổ điển và hiện đại
- Mã hóa đối xứng cổ điển:
+ Mã hóa thay thế
+ Mã hóa dịch chuyển
+ Mã hóa hoán vị
+ Mã hóa khối
- Mã hóa đối xứng hiện đại:
+ Mã hóa luồng: Tin RC4, RC4
+ Mã hóa khối: DES, AES, Triple DES
Trang 44 Các hệ thống mã hóa đối xứng phổ biến
4.1 Mã hóa thay thế
- Ví dụ: Bảng chữ cái Tiếng Anh, bản mã nhị phân, bản kí tự số
- Với bảng chữ cái Tiếng Anh
-Ký tự cần mã
Ký tự thay thế
- Với thuật toán mã hóa này, ta có:
- Văn bản gốc: A BAD DAY
- Văn bản sau khi mã hóa: F GFT TFP
4.2 Mã hóa Ceasar
● Thế kỷ thứ 3 trước công nguyên, nhà quân sự người La Mã Julius Caesar đã nghĩ ra phương pháp mã hóa một bản tin như sau: thay thế mỗi chữ trong bản tin bằng chữ đứng sau nó k vị trí trong bảng chữ cái Giả sử chọn k = 3, ta có bảng chuyển đổi như sau:
Chữ ban đầu: a b c d e f g h i j k l m n o p q r s t u v w x y z
Chữ thay thế: D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
Giả sử có bản tin gốc (nguyên bản): MEET ME AFTER THE PARTY
Bản tin mã hóa (bản mã) sẽ là: P H H W P H D I W H U W K H S D U W B
● Phương pháp Caesar được biểu diễn như sau: với mỗi chữ cái p thay bằng chữ
mã hóa C, trong đó:
C = (p + k) mod 26 (trong đó mod là phép chia lấy số dư)
Và quá trình giải mã là: p = (C – k) mod 26
4.3 Mã hóa nhân
Hệ mã hoá nhân là một phương pháp mã hoá đơn giản trên nguyên tắc là dịch chuyển xoay vòng theo thứ tự chữ cái Khoá K được gọi là bước dịch chuyển, độ an toàn của phương pháp này phụ thuộc vào lượng phần tử trong tập khoá K
Ví dụ: Cho chuỗi nguyên bản:” THUONG MAI DIEN TU” Trình bày các bước mã hoá đã cho với hệ mã hoá nhân Biết rằng K=3
T=19*3=57 mod 26= 5=>F
H=7*3= 21 mod 26= 21=> V
Trang 5U=20*3=60 mod 26= 8=> I
O=14*3=42 mod 26= 16=> Q
N=13*3= 39 mod 26= 13=>N
G=6*3= 18 mod 26 =18=> S
M=12*3= 36 mod 26 =10 => K
A=0*3= 0 mod 26= 0 => A
I= 8*3 = 24 mod 26= 24 => Y
D= 3*3 = 9 mod 26= 9 => J
E= 4*3= 12 mod 26= 12 => M
*Kết luận
Nguyên bản:” THUONG MAI DIEN TU”
Bản mã: “ F V I Q N S K A Y J Y M N F I”
4.4 Mã hoá Vigenère
Mật mã Vigenère(VG) được ra đời cách đây khá lâu, được đặt tên theo tên của nhà mật mã người Pháp Blaise De Vigenere (1523-1596)
đây là một cải tiến của mật mã Caesar Sự khác nhau của Caesar và Vigenere nằm ở
độ dài của khóa Đối với Ceasar thì mã khóa chỉ là một số chỉ "độ dịch chuyển", số này có thể chuyển thành một chữ cái để trở thành một key Trong khi đó Vigenere thì
sử dụng một từ để mã hóa Sự khác biệt này tạo cho Vigenere một sự phức tạp trong quá trình cố gắng giải mã không khóa
Cách mã hóa của Vigenere: Mã khóa của Vigenere là một từ vì vậy mỗi chữ cái trong đoạn văn bản rõ sẽ được mã hóa bằng cách dịch chuyển một đoạn bằng key của chữ cái trong từ mã khóa
Ví dụ: Cho chuỗi NB : “THUONG MAI DIEN TU” Trình bày các bước mã hóa chuỗi đã cho với vigenere
Biết rằng keyword là “MINH”
Trang 6Bước 1: Điền Keyword dưới chuỗi NB và lặp lại ta có:
Hàng 1: T H U O N G M A I D I E N T U
Hàng 2: M I N H M I N H M I N H M I N
Bước 2: Lấy một chữ cái ở hàng 2 ứng với một chữ cái ở hàng 1 và dựa vào bảng sau
để tìm ra chữ cái tương ứng
T-M (cột T, hàng M) => F
H-I (cột H, hàng I) => P
U-N (cột U, hàng N) => H
O-H (cột O, hàng H) => V
N-M (cột N, hàng M) => Z
G-I (cột G, hàng I) => O
M-N (cột M, hàng N) => Z
A-H (cột A, hàng H) => H
I-M (cột I, hàng M) => U
D-I (cột D, hàng I) => L
I-N (cột I, hàng N) => V
E-H (cột E, hàng H) => L
N-M (cột N, hàng M) => Z
T-I (cột T, hàng I) => B
U-N (cột U, hàng N) => H
Kết luận:
Nguyên bản: THUONG MAI DIEN TU
Bản mã: F P H V Z O Z H U L V L Z B H
Trang 7
Hình vuông Vigenere
4.5 Mã hóa khóa tự động
● Cải tiến từ Vigenère
● Gắn khóa D vào đầu nguyên bản tạo nguyên bản D’
● Mã hóa theo Vigenère dựa trên khóa D’
Vigenère đề xuất từ khóa không lặp lại mà được gắn vào đầu nguyên bản
Trang 8- Nếu biết từ khóa sẽ giải mã được chữ cái đầu tiên
- Sử dụng các chữ cái này làm khóa để giải mã các chữ cái tiếp theo
★ Ví dụ :
NB : GO TO SCHOOL AT SEVEN
Khóa k : ‘ PASS WORD’
❖ Cách 1 :
NB : G O T O S C H O O L A T S E V E N
K : P A S S W O R D G O T O S H O O L
BM: V O L G O Q Y R U Z T H K L J C Y
❖ Cách 2 :
- Bước 1 : viết lại NB và khóa K
- Dựa vào hình vuông Vigenère , lấy các ký tự tương ứng
NB : G O T O S C H O O L A T S E V E N
K : P A S S W O R D G O T O S H O O L
BM : V O L G O Q Y R U Z T H K L J C Y
4.6 Mã hóa hoán vị
a Mã hóa hoán vị hàng rào
Nguyên tắc :
- Viết các kí tự trong nguyên bản P theo đường chéo trên k hàng
- Viết lại các kí tự trên từng hàng một để được bản mã
- Ví dụ :
NB : AT NINE SEND TO POST THREE ON SUNDAY
K = 3
- Bước 1:
A I S D P T R O U A
T N E T O T E N N Y
N E N O S H E S D
- Bước 2 : Lấy BM : A I S D P T R O U A T N E T O T E N N Y N E N O S H
E S D
b Mã hóa hoán vị hàng
Nguyên tắc:
- Viết các ký tự trong nguyên bản P theo hàng ngang trên k cột, k là khóa
- Viết lại các ký tự trên từng cột theo thứ tự xuất hiện trong khóa k
Ví dụ:
NB: GO TO SCHOOL AT SEVEN
Khóa k: 2 6 5 4 3 1
2 6 5 4 3 1
G O T O S C
H O O L A T
S E V E N *
Trang 9=> Bản mã : Lấy các kí tự theo thứ tự của cột : C T * G H S S A N O L E T O V O O E
4.7 Mã hóa khối : DES, AES, TRIPLE DES
4.7.1 Đặc điểm của mã hóa khối
● Khái niệm : mã hóa khối (tiếng Anh: block cipher) là những thuật toán mã hóa đối xứng hoạt động trên những khối thông tin có độ dài xác định (block) với những chuyển đổi xác định
● Đặc điểm :
- Mã hóa các khối ký tự
- Chia theo lũy thừa của 2
- Độ dài của khối thông tin là độ dài của đơn vị mã hóa, ký hiệu là
n, thông thường là cố định ở 64 hoặc 128bit Một số thuật toán có
độ dài khối thay đổi nhưng không phổ biến
- Kích thước của khóa là độ dài của chuỗi dùng để mã hóa, độ dài thông thường của khóa, k, là 40, 56, 64, 80, 128, 192 và 256 bit Hiện tại (năm 2006) thì 80 bít là độ dài tối thiểu của khóa để có thể chống lại tấn công kiểu duyệt toàn bộ
● DES
DES (viết tắt của Data Encryption Standard, hay Tiêu chuẩn
Mã hóa Dữ liệu) là một phương pháp mật mã hóa được FIPS (Tiêu
chuẩn Xử lý Thông tin Liên bang Hoa Kỳ) chọn làm chuẩn chính thức vào năm 1976 Sau đó chuẩn này được sử dụng rộng rãi trên phạm vi thế giới Ngay từ đầu, thuật toán của nó đã gây ra rất nhiều tranh cãi, do nó bao gồm các thành phần thiết kế mật, độ dài khóa tương đối ngắn, và các nghi ngờ về cửa sau để Cơ quan An ninh quốc gia Hoa Kỳ (NSA) có thể bẻ khóa Do đó, DES đã được giới nghiên cứu xem xét rất kỹ lưỡng, việc này đã thúc đẩy hiểu biết hiện
đại về mật mã khối (block cipher) và các phương pháp thám mã
tương ứng
Hiện nay DES được xem là không đủ an toàn cho nhiều ứng dụng Nguyên nhân chủ yếu là độ dài 56 bit của khóa là quá nhỏ Khóa DES đã từng bị phá trong vòng chưa đầy 24 giờ
● TRIPLE DES
Trong mật mã , Triple DES ( 3DES hoặc TDES ), chính thức là Thuật toán mã hóa dữ liệu bộ ba ( TDEA hoặc Triple DEA ), là một mật
mã khối khóa đối xứng , áp dụng thuật toán mã DES ba lần cho mỗi khối dữ liệu Khóa 56-bit của Tiêu chuẩn mã hóa dữ liệu (DES) không
Trang 10còn được coi là phù hợp khi đối mặt với các kỹ thuật phá mã hiện đại và sức mạnh siêu máy tính Tuy nhiên, một phiên bản điều chỉnh của DES, Triple DES (3DES), sử dụng cùng một thuật toán để tạo ra một mã hóa
an toàn hơn
Các thanh toán điện tử ngành công nghiệp sử dụng Triple DES và tiếp tục phát triển và tiêu chuẩn Ban hành dựa trên nó, chẳng hạn như EMV
Các phiên bản trước của Microsoft OneNote , Microsoft Outlook
2007 và Microsoft System Center Configuration Manager 2012 sử dụng Triple DES để bảo vệ nội dung người dùng và dữ liệu hệ thống bằng mật khẩu Tuy nhiên, vào tháng 12 năm 2018, Microsoft đã thông báo ngừng
sử dụng 3DES trên toàn bộ dịch vụ Office 365 của họ
Firefox và Mozilla Thunderbird sử dụng Triple DES ở chế độ CBC
để mã hóa thông tin đăng nhập xác thực trang web khi sử dụng mật khẩu chính
● AES
AES (Advanced Encryption Standard) là một thuật toán “mã hóa
khối” (block cipher) AES trở thành một trong những thuật toán mã hóa phổ biến nhất sử dụng khóa mã đối xứng để mã hóa và giải mã (một số được giữ bí mật dùng cho quy trình mở rộng khóa nhằm tạo ra một tập các khóa vòng)
Một số khái niệm :
- Bản rõ(plaintext): Dạng ban đầu của thông báo
- Bản mã(Ciphertext): Dạng mã của bản rõ ban đầu
- Khóa(key): thông tin tham số dùng để mã hóa
- Mã hóa (Encryption): Quá trình biến đổi thông tin từ dạng bản rõ sang bản mã bằng khóa hoặc không cần khóa
- Giải mã (Decryption): Quá trình ngược lại biến đổi thông tin từ dạng bản mã sang bản rõ
AES là một thuật toán mã hóa khối đối xứng với độ dài khóa là 128bit (một chữ số nhị phân có giá trị 0 hoặc 1), 192 bit và 256 bit tương ứng gọi là AES-128, AES-192 và AES-256 AES-128 sử dụng 10 vòng (round), AES-192 sử dụng 12 vòng và AES-256 sử dụng 14 vòng
AES được thực hiện bởi các hàm theo thứ tự sau: Trộn từng byte (SubBytes), trộn từng hàng (ShiftRows), trộn từng cột (MixColumns) và
mã hóa (AddRoundKey) Trong đó SubBytes, ShiftRows, MixColumns
có nhiệm vụ làm cho mối quan hệ giữa bản rõ và bản mã bị che khuất
Trang 11(phương thức "mập mờ") AddRoundKey sử dụng key mã hóa để mã hóa dữ liệu đầu vào bằng việc phân tán những kiểu mẫu của bản rõ sang bản mã (phương thức "khuếch tán")
5 Các vấn đề an toàn của hệ mã hoá đối xứng
Một đặc tính quan trọng của mã hóa đối xứng là khóa phải được giữ bí mật giữa người gửi và người nhận, hay nói cách khác khóa phải được chuyển một cách an toàn từ người gửi đến người nhận
Đặc tính quan trọng thứ hai của một hệ mã hóa đối xứng là tính an toàn của hệ
mã Như đã thấy ở phần mã hóa Ceasar, từ một bản mã có thể dễ dàng suy ra được bản rõ ban đầu mà không cần biết khóa bí mật Hành động đi tìm bản rõ từ bản mã mà không cần khóa như vậy được gọi là hành động phá mã (cryptanalysis) Do đó một hệ
mã hóa đối xứng được gọi là an toàn khi và chỉ khi nó không thể bị phá mã (điều kiện
lý tưởng) hoặc thời gian phá mã là bất khả thi Trong phương pháp Ceasar, lý do mà phương pháp này kém an toàn là ở chỗ khóa k chỉ có 25 giá trị, do đó kẻ phá mã có thể thử được hết tất cả các trường hợp của khóa rất nhanh chóng Phương pháp tấn công này được gọi là phương pháp vét cạn khóa (bruteforce attack) Chỉ cần nới rộng miền giá trị của khóa thì có thể tăng thời gian phá mã đến một mức độ được coi là bất khả thi
-Ví dụ: ta xét tính an toàn của mã hoá DES qua một số phá mã sau đây:
1) Tấn công vét cạn khóa (Brute Force Attack): Vì khóa của mã DES có chiều dài là 56 bít nên để tiến hành brute-force attack, cần kiểm tra 256 khóa khác nhau Hiện nay với những thiết bị phổ dụng, thời gian gian để thử khóa là rất lớn nên việc phá mã là không khả thi (xem bảng) Tuy nhiên vào năm 1998, tổ chức Electronic Frontier Foundation (EFF) thông báo đã xây dựng được một thiết bị phá mã DES gồm nhiều máy tính chạy song song, trị giá khoảng 250.000$ Thời gian thử khóa là 3 ngày Hiện nay mã DES vẫn còn được sử dụng trong thương mại, tuy nhiên người ta
đã bắt đầu áp dụng những phương pháp mã hóa khác có chiều dài khóa lớn hơn (128 bít hay 256 bít) như TripleDES hoặc AES
2) Phá mã DES theo phương pháp vi sai (differential cryptanalysis): Năm 1990 Biham và Shamir đã giới thiệu phương pháp phá mã vi sai Phương pháp vi sai tìm khóa ít tốn thời gian hơn brute-force Tuy nhiên phương pháp phá mã này lại đòi hỏi phải có 247 cặp bản rõ - bản mã được lựa chọn (chosen-plaintext) Vì vậy phương pháp này là bất khả thi dù rằng số lần thử có thể ít hơn phương pháp brute-force 3) Phá mã DES theo phương pháp thử tuyến tính (linear cryptanalysis) Năm 1997 Matsui đưa ra phương pháp phá mã tuyến tính Trong phương pháp này, cần phải biết
Trang 12trước 2 43 cặp bản rõ-bản mã (known-plaintext) Tuy nhiên 243 cũng là một con số lớn nên phá mã tuyến tính cũng không phải là một phương pháp khả thi
6 Ưu, nhược điểm của các hệ mã hóa đối xứng
● Ưu điểm:
- Các thuật toán đối xứng vừa có khả năng cung cấp mức độ bảo mật khá cao, vừa có khả năng cho phép mã hóa và giải mã tin nhắn rất nhanh
- Mức độ đơn giản về tương quan của các hệ thống đối xứng cũng là một
ưu điểm về mặt logic bởi nó sử dụng ít năng lượng tính toán hơn so với các hệ thống bất đối xứng
- Thêm vào đó, cấp độ bảo mật mà mã hóa đối xứng mang lại có thể được nhân rộng lên một cách đơn giản chỉ bằng việc tăng độ dài của các khóa Với mỗi bit được thêm vào trong độ dài 1 khóa đối xứng, thì độ khó của việc phá vỡ mã hóa đó bằng tấn công brute force sẽ tăng lên theo cấp số
mũ
● Nhược điểm:
Mặc dù mã hóa đối xứng mang lại khá nhiều lợi ích rộng rãi, nhưng nó lại sở hữu một vài bất lợi khá lớn:
- Vấn đề cố hữu trong việc truyền tải các khóa dùng để mã hóa và giải mã
dữ liệu Nếu các khóa này được chia sẻ lên các kết nối không an toàn thì nguy cơ bị can thiệp bởi một bên thứ 3 là rất lớn Khi một người dùng không được ủy quyền chiếm được quyền truy cập một khóa đối xứng thì mọi dữ liệu được mã hóa bằng khóa đó sẽ bị xâm phạm
- Do dùng chung khóa để mã hóa và giải mã nên nếu bị mất hoặc bị đánh cắp bởi hacker sẽ bị lộ thông tin, bảo mật không cao
- Cần kênh mật để chia sẻ khóa bí mật giữa các bên => Làm sao để chia
sẻ một cách an toàn ở lần đầu tiên
- Để đảm bảo giao thông liên lạc an toàn cho tất cả mọi người trong một nhóm gồm n người, tổng số lượng chìa khóa cần phải có là
- Khó ứng dụng trong các hệ thống mở
- Không thể dùng cho mục đích xác thực hay mục đích chống thoái thác được
5 Ứng dụng của các hệ mã hóa đối xứng
● Các thuật toán mã hóa đối xứng được sử dụng nhiều trong các hệ thống máy tính hiện đại với mục đích tăng cường bảo mật dữ liệu và cho người dùng Chuẩn Mã Hóa Cấp Cao (AES) được sử dụng rộng rãi trong các ứng dụng nhắn tin an toàn lẫn lưu trữ đám mây, chính là một ví dụ điển hình của mật mã đối xứng