Giới thiệu về mật mã họcCác khái niệm cơ bản thuật toán giải mã sử dụng để mã hóa và giải 9 duyn@uit.edu.vn... Sự phát triển của mật mã học đi liền với sự phát triển của phá mã thám mã
Trang 1CHƯƠNG 03
CÁC GIẢI THUẬT MÃ HÓA DỮ LIỆU
ĐỐI XỨNG
ThS.Nguyễn Duy duyn@uit.edu.vn 9/28/2014
Trang 2Nội Dung
2
9/28/2014
duyn@uit.edu.vn
Trang 3Nội Dung
3 duyn@uit.edu.vn
Trang 4Giới thiệu về mật mã học
Giới thiệu
tận ngày nay
hiện nhiều qua môi trường mạng đòi hỏi dữ liệuphải được bảo mật tốt => phải được mã hoá
4
9/28/2014
duyn@uit.edu.vn
Trang 5Giới thiệu về mật mã học
Giới thiệu - tt
thức xáo trộn hay biến thông tin từ dạng có thểđọc được sang dạng không thể đọc được
Trang 7Giới thiệu về mật mã học
Mô hình hệ thống mật mã đối xứng
7 duyn@uit.edu.vn
Trang 8Asymmetric, two-key, or public-key encryption
The way in which the plaintext is processed
Block cipher
Stream cipher
Trang 9Giới thiệu về mật mã học
Các khái niệm cơ bản
thuật toán giải mã sử dụng để mã hóa và giải
9 duyn@uit.edu.vn
Trang 10Nội Dung
10
9/28/2014
duyn@uit.edu.vn
Trang 11Lịch sử của mật mã học
Mật mã học là ngành có lịch sử hàng ngàn năm.
Mật mã học cổ điển với bút và giấy.
Mật mã học hiện đại với điện cơ, điện tử, máy tính.
Sự phát triển của mật mã học đi liền với sự phát triển của phá mã (thám mã):
Phát hiện ra bức điện Zimmermann khiến Hoa Kỳ tham gia Thế chiến I
Việc phá mã thành công hệ thống mật mã của Đức Quốc xã góp phần đẩy nhanh thời điểm kết thúc thế chiến II.
Hai sự kiện khiến cho mật mã học ứng dụng rộng rãi:
Sự xuất hiện của tiêu chuẩn mật mã hóa DES.
Sự ra đời của các kỹ thuật mật mã hóa khóa công khai.
11 duyn@uit.edu.vn
Trang 12Nội Dung
12
9/28/2014
duyn@uit.edu.vn
Trang 13Giải thuật mã hoá cổ điển
Kĩ thuật Substitution
bằng những kí tự khác, những con số hoặcnhững kí hiệu
13 duyn@uit.edu.vn
Trang 14Giải thuật mã hoá cổ điển
Thuật toán Caesar Cipher
14
9/28/2014
duyn@uit.edu.vn
Trang 15Giải thuật mã hoá cổ điển
Thuật toán Caesar Cipher
A shift may be of any amount, so that the general
Caesar algorithm is:
C = E(k , p ) = (p + k ) mod 26
Where k takes on a value in the range 1 to 25; the
decryption algorithm is simply:
p = D(k , C ) = (C - k ) mod 26
Trang 169/28/2014
duyn@uit.edu.vn
Trang 17Giải thuật mã hoá cổ điển
Thuật toán Monoalphabetic Cipher
17 duyn@uit.edu.vn
lấy một hoán vị h của 1, 2, …, d và áp dụng h
c = NJHO IO S GAOT DCAOR
Trang 18Giải thuật mã hoá cổ điển
Thuật toán One-time Pad
Trang 19Giải thuật mã hoá cổ điển
Thuật toán Affine Cipher
Trang 20Giải thuật mã hoá cổ điển
Thuật toán Affine Cipher - tt
Trang 21Giải thuật mã hoá cổ điển
Thuật toán Affine Cipher - tt
21 duyn@uit.edu.vn
a = 5
b = 8
Trang 22Giải thuật mã hoá cổ điển
Kĩ thuật Transposition
thuật thay đổi vị trí của dữ liệu
22
9/28/2014
duyn@uit.edu.vn
Trang 23Nội Dung
23 duyn@uit.edu.vn
Trang 24Giải thuật mã hoá hiện đại
được sinh ra từ khoá ban đầu
24
9/28/2014
duyn@uit.edu.vn
Trang 25Giải thuật mã hoá hiện đại
Phân loại
Block ciphers: mã hoá các khối có chiều dài cố định
Triple DES, Rijndael (AES), MARS, RC6, Serpent, Twofish, DESX, DESL, DESXL.
Stream ciphers: mã hoá từng bit của thông điệp Đại diện là RC4.
25 duyn@uit.edu.vn
Trang 26Giải thuật mã hoá hiện đại
Block vs Stream Ciphers
26
9/28/2014
duyn@uit.edu.vn
Trang 27Giải thuật mã hoá hiện đại
Block vs Stream Ciphers
27 duyn@uit.edu.vn
Trang 28Giải thuật mã hoá hiện đại
Thuật toán Feistel Cipher
Substitutions
• No elements are added or deleted or replaced
in the sequence, rather the order in which the elements appear in the sequence is changed
Permutation
Trang 29Giải thuật mã hoá hiện đại
Thuật toán Feistel Cipher - tt
29 duyn@uit.edu.vn
Trang 30Giải thuật mã hoá hiện đại
Thuật toán Feistel Cipher - tt
30
9/28/2014
duyn@uit.edu.vn
Trang 31Giải thuật mã hoá hiện đại
Thuật toán Feistel Cipher - tt
31 duyn@uit.edu.vn
Trang 32Giải thuật mã hoá hiện đại
Thuật toán Feistel Cipher - tt
32
9/28/2014
duyn@uit.edu.vn
Trang 36Ví dụ: Bit thứ 58 của x trở thành bit đầu tiên của IP(x )
Bit thứ 50 của x trở thành bit thứ hai của IP( x )
Trang 37Final Permutation
Ví dụ: Bit thứ 58 của x trở thành bit đầu tiên của IP(x )
Bit thứ 50 của x trở thành bit thứ hai của IP( x )
Trang 3948 bit
Trang 45Key Schedule
Thao tác xoay vòng bit
<<<: Xoay vòng sang trái
>>>: Xoay vòng sang phải
Với subkey thứ 1, 2, 9, 16: xoay vòng 1 vị trí
Với subkey còn lại: xoay vòng 2
vị trí
Trang 46Các hoán vị trong Key Schedule
40, 48, 56, 64
Chọn 48 bit (bỏ bit 9, 18, 22, 25,
35, 38, 43, 54)
Trang 47Một số nhận xét
Gồm toàn bit 0
Gồm toàn bit 1
Gồm ½ là bit 0 (liên tiếp), ½ là bit 1 (liên tiếp)
Tính chất: Encryptk (P) = P
Khóa có dạng: 7 bit 0 (liên tiếp), 7 bit 1 (liên tiếp)
Encryptk (P) = C Encrypt k* (P*) = C*
Với x* được tạo bằng cách đảo ngược các bit của x
Trang 489/28/2014