You are on page 1of 54

Chương 5: Kỹ thuật mã

hóa và giải mã
Mục lục
Giới thiệu hệ thống mật mã
Mã cổ điển
Tính bảo mật của hệ thống
Mã hóa chuỗi dữ liệu
Hệ thống mã hóa sử dụng khóa công cộng
Giới thiệu hệ thống mật mã
Mật mã học: nghiên cứu cách biến đổi thông điệp để tránh
những sự can thiệp trái phép.
Hệ thống thông tin sử dụng mã hóa vì:
Tính riêng tư (privacy): không cho người khác lấy được
thông tin từ hệ thống.
Authentication: không cho người khác thêm thông tin vào
hệ thống.
Mã hóa và giải mã
Thông tin M qua phép biến đổi EK cho ta bản mã C
C=EK(M)
Bản mã C được đưa qua kênh truyền công cộng, không bảo
mật đến phía thu.
Bên thu nhận bản mã C tiến hành phép biến đổi ngược E K-1
để khôi phục lại thông tin M ban đầu
Mã hóa và giải mã (tt.)
Mã hóa và giải mã (tt.)
Có 2 phương thức mã hóa:
Mã hóa theo từng khối: thông điệp M sẽ được chia đều
thành nhiều khối nhỏ và mỗi khối này được mã hóa độc lập
với nhau.
Mã hóa theo dòng dữ liệu: toàn bộ thông điệp M được mã
hóa đồng thời. (Các từ mã đều có mối liên hệ với nhau)
Yêu cầu của hệ thống bảo mật
Hệ thống phải đơn giản và không quá mắc để mã hóa và
giải mã khi biết từ khóa.
Nếu không có từ khóa thì việc giải mã phải phức tạp và đắt
đỏ.
Mã cổ điển
Thường được nhắc đến là mã Caesar, dùng bởi Julius
Caesar trong chiến tranh.
Mã này dùng để mã hóa các kí tự trong bảng chữ cái.
Các chữ cái được dịch vòng qua trái với một khoảng cách
cố định
Mã Caesar: các kí tự được dịch một khoảng bằng 3
Kí tự A B C D E F G H I
Từ mã D E F G H I J K L

Kí tự J K L M N O P Q R
Từ mã M N O P Q R S T U

Kí tự S T U V W X Y Z
Từ mã V W X Y Z A B C

Ví dụ: Thông tin: C A E S A R


Sau khi mã hóa: F D H V D U
Mã Polybius square
Sử dụng một bảng kích cỡ 5x5, các kí tự được điền ngẫu
nhiên vào bảng này (I và J đặt cùng 1 ô).
Từ mã tạo ra là vị trí cột và hàng tương ứng với kí tự.
Polybius Square
1 2 3 4 5
1 A B C D E
2 F G H I hoặc J K
3 L M N O P
4 Q R S T U
5 V W X Y Z

Ví dụ: Thông tin: P O L Y B I U S S Q U A R E


Sau khi mã hóa: 53 43 13 45 21 42 54 34 34 14 54 11 24 51
Khóa Trithemius
Là một bảng kích thước 26x26.
Hàng 0 là các kí tự trong bảng chữ cái.
Hàng 1: các kí tự dịch vòng qua trái 1.
Hàng 2: các kí tự dịch vòng qua trái 2. Tương tự với các
hàng khác.
Mã hóa: từ mã ứng với kí tự thứ nhất lấy ở hàng 1, từ mã
ứng với kí tự thứ hai lấy ở hàng 2 và cứ tiếp tục…
Khóa Trithemius

Ví dụ: Thông tin: T R I T H E M I U S


Sau khi mã hóa: U T L X M K T Q D C
Mã Vigenere
Sử dụng bảng khóa Trithemius.
Có sử dụng từ khóa với chiều dài L.
Chia thông tin M thành nhiều đoạn có chiều dài M, mỗi
đoạn sẽ được mã hóa dựa theo từ khóa (các kí tự của từ khóa
xác định hàng trong bảng khóa Trithemius)
Mã Vigenere

Ví dụ: Từ khóa: C O D E C O D E
Thông tin: V I G E N E R E
Sau khi mã hóa: X W J I P S U I
Mã Vigenere tự động
Có sử dụng từ khóa là 1 kí tự
Kí tự đầu tiên được mã hóa dựa theo từ khóa, kí tự thứ 2
được mã hóa dựa theo kí tự đầu tiên hoặc từ mã đầu tiên và
tiếp tục…
Mã Vigenere tự động

Ví dụ: Từ khóa: D V I G E N E R
Thông tin: V I G E N E R E
Sau khi mã hóa: Y D O K R R V V
Mã Vigenere tự động

Ví dụ: Từ khóa: D Y G M Q D H Y
Thông tin: V I G E N E R E
Sau khi mã hóa: Y G M Q D H Y C
Tính bảo mật của hệ thống
Giả sử ta có hệ thống mật mã với không gian thông tin hữu hạn
và không gian từ mã hữu hạn
Với mỗi , xác suất truyền đi là
Phía thu nhận thì xác suất được truyền đi là
Hệ thống mã hóa là hoàn hảo nếu:
với mọi và
Entropy và tính khả nghi
Entropy: là số lượng thông tin trung bình trong một thông
điệp (message):

Nếu sử dụng log2 như công thức trên thì entropy có nghĩa
là số bit tối ưu để mã hóa X
Entropy và tính khả nghi (tt.)
Tính khả nghi là entropy có điều kiện của X khi nhận được bản mã Y

Đây là thông số hữu ích để người giải mã sử dụng để giải mã


Ví dụ: CO SO VIEN THONG
Tốc độ và sự dư thừa trong ngôn ngữ
Với thông điệp có chiều dài N, tốc độ thực được định nghĩa
là số bit mang thông tin trung bình trong một kí tự

Tốc độ tương đối: là số bit dùng để mã hóa kí tự nếu coi


mọi kí tự đều như nhau
với L là số kí tự trong bảng chữ cái
Tốc độ và sự dư thừa trong ngôn ngữ
Độ dư thừa trong ngôn ngữ:

Đối với tiếng Anh, r nằm trong khoảng từ 1 đến 1,5


Phương pháp mã hóa
Phân tích thống kê dựa trên tần suất xuất hiện của kí tự và sự kết hợp
giữa chúng có thể phá giải nhiều hệ thống bảo mật
Để hệ thống bảo mật khó bị phá giải, Shanon đưa ra 2 khái niệm về
mã hóa:
• Confusion: làm cho mối quan hệ của từ mã và thông điệp càng phức
tạp càng tốt
• Diffusion: phân bố lại tần suất xuất hiện của kí tự và sự kết hợp giữa
chúng
Phương pháp thay thế (Subtitution)
Mã Caesar hay khóa Trithemius sử dụng phương pháp này
Các mã trên thay thế các kí tự một cách đơn giản nên tính
bảo mật không cao.
Để thỏa mãn yêu cầu confusion của Shannon, việc tăng độ
phức tạp trong việc thay thế các kí tự là cần thiết
Ví dụ: hệ thống như hình
vẽ
N bit đầu vào được chuyển
thành 2n bit
2n bit này sau đó được hoán
vi và chuyển ngược lại
thành n bit đầu ra

Ta thấy có tất cả (2n)! cách kết nối và việc tìm ra cách kết nối
đúng sẽ trở nên khó khăn khi n lớn
Phương pháp hoán vị (Permutation)
Các kí tự trong thông tin chỉ hoán đổi vị trí với nhau tạo
thành từ mã
Ví dụ: T H I N K

K I H TN
Kĩ thuật này khi dùng một mình dễ bị phá bởi trick
message
Ví dụ: hệ thống như hình vẽ
N bit đầu vào được hoán vị tạo ra n bit đầu ra
Để phá giải, ta chỉ cần truyền một thông điệp
với một bit 1 và các bit còn lại là 0
Từ đó ta tìm được cách kết nối của hệ thống
Mã hóa chuỗi dữ liệu
Shannon đề nghị kết hợp cả 2 phương pháp thay thế và hoán vị
để tạo thành hệ thống bảo mật hơn so với dùng riêng lẻ.
Phương pháp này được IBM sử dụng trong hệ thống LUCIFER
và trở thành chuẩn mã hóa dữ liệu DES (Data Encryption
Standard)
Hệ thống kết hợp 2
phương pháp lặp và
hoán vị.
Các khối S là khác nhau.
Hệ thống không thực tế
Hệ thống LUCIFER sử
dụng 2 loại hộp S như
hình vẽ.
Hộp S0 và S1 được công
khai.
Một khóa được sử dụng
để lựa chọn dùng S0 hay
S1

Hệ thống trong hình vẽ sẽ sử dụng một khóa 25 bit


Mỗi bit của khóa sẽ lựa chọn dùng S0 hay S1 (bit 1 chọn S1, bit 0 chọn S0)
Như hình vẽ thì khóa đang được sử dụng là:
1010001011111011010111010
Mã DES
Hệ thống lấy 64 bit đầu vào tạo thành 64 bit đầu ra
Hệ thống sử dụng một khóa 56 bit
Sơ đồ giải thuật
của DES
Bảng IP
64 bit đầu vào sẽ được
hoán vị sử dụng bảng IP
(initial permutation) như
hình vẽ.
64 bit mới được tạo ra
có dạng như sau:
58 50…2 60 52…4…8 57 49…1 59 51…3…7

L R

32 bit trái 32 bit phải


L và R được đưa vào khối tạo
mã để tạo ra L và R mới.
Quá trình này được lặp lại 16
lần.
Khối tạo mã có cấu trúc như
hình vẽ.

Ta có: 32 bit L đầu ra chính là 32 bit R đầu vào:


32 bit R đầu vào sẽ sử dụng
bảng E để tạo thành 48 bit
mới.
48 bit kết hợp với khóa tạo
thành 48 bit mới.
Khóa được sử dụng là khác
nhau với mỗi khối tạo mã.

48 bit mới sẽ được chia thành


8 khối B1 đến B8.
Mỗi khối gồm 6 bit.

Bảng E
48 bit của 8 khối B sẽ được
biến đổi thông qua khối S tạo
thành 32 bit.
Khối S sử dụng bảng S như
hình vẽ:

6 bit của khối B có dạng:


2 bit được dùng để chọn hàng trong bảng S .
4 bit được dùng để chọn cột trong bảng S
Khối Bi nào thì chọn Si tương ứng.
Ví dụ:

nên chọn hàng 3


nên chọn cột 8
Bảng
tương ứng với
S
Ta được giá trị là
Vậy ta thu được 4 bit đầu ra
là:
32 bit mới tạo thành được
đưa qua khối P để tạo thành
32 bit mới.
Khối P sử dụng bảng P như
hình vẽ.

32 bit này được cộng với 32


bit L đầu vào để tạo thành 32
bit R mới

Bảng P
Key gồm 56 bit và 8 bit kiểm tra sẽ được loại bỏ 8 bit
kiểm tra và xáo trộn lần 1 dựa vào bảng PC-1 (Permuted
Choice 1)

Bảng PC-1

Quá trình tạo key


56 bit của khóa chia thành 2 khối C và D.
Mỗi khối 28 bit.
Khối C và D sau đó sẽ được dịch trái theo công thức:

Số bit dịch sẽ phụ thuộc bảng sau:

Quá trình tạo key


Các khối C và D mới tạo ra sẽ được xáo trộn lần 2
dựa vào bảng PC-2 (Permuted Choice 2) để tạo ra khóa K
được dùng cho các bộ tạo mã tương ứng

Bảng PC-2

Quá trình tạo key


Hệ thống mã hóa sử dụng khóa công
cộng
Được đưa ra vào năm 1976 bởi Diffie và Hellman.
Hệ thống sử dụng 2 khóa: một để mã hóa và một để giải mã.
Thuật toán mã hóa và khóa dùng để mã hóa được công khai.
Khóa để giải mã không công khai.
Hệ thống hoạt động dựa trên 3 yếu tố:
- Với mỗi khóa K và thông điệp M,
nếu thì
- Với mỗi khóa K, việc tính toán và
là dễ dàng.
- Với mỗi khóa K, việc tính toán từ
là phức tạp.

Ví dụ: A muốn gửi thông điệp cho


B
- A chỉ cần kiếm trong thư viện có
sẵn rồi sử dụng để mã hóa thông
điệp.
- B nhận được thông điệp thì sử
dụng của mình để giải mã.
- A áp dụng thuật toán DA của
mình lên thông điệp M.
- Sau đó áp dụng thuật toán
công khai EB mã hóa 1 lần
nữa rồi gửi đi.
- B sử dụng thuật toán của DB
của mình áp dụng lên thông
điệp nhận được.
- Sau đó áp dụng thuật toán
công khai EA để thu lại thông Quá trình xác thực dùng khóa công khai
điệp ban đầu
Mã RSA
Là thuật toán mã hóa sử dụng khóa công khai.
Do Rivest, Shamir và Adleman mô tả lần đầu vào năm
1977.
Sử dụng khóa công khai (n,e)
Khóa bí mật d
Mã hóa dùng RSA
Bước 1: chọn 2 số nguyên tố lớn p và q.
Bước 2: Tính
Bước 3: Tính hàm Euler
Bước 4: Chọn d đủ lớn và là số nguyên tố cùng nhau với .
Bước 5: Tính e sao cho
Bước 6: mã hóa
Giải mã RSA
Bên nhận biết khóa bí mật d sẽ giải mã thông điệp c:
Cách tính nhanh
Ví dụ: Tính
Ta có :
Khởi tạo: 1614
Nếu thì
Nếu thì
bi
1 1 1819
0 572 572
0 2743 2743 2743
1 900 1030
0 1614 1614
Ví dụ: mã RSA với và
Ta có:

Chọn

Thông điệp:
Mỗi chữ cái biểu diễn bằng 1 số từ 01-26, khoảng cách là 00.
Mỗi thông điệp là số từ 0-2772 nên ta gộp thành các số có 4 chữ số.
Mã hóa 1819:
Tương tự ta có thông điệp truyền đi:
Cách tìm
Ví dụ: mã RSA với và và
i
0 1
1 0 16
2 1 -16 1
3 -1

{
𝑥 𝑖 +1=𝑥𝑖 − 1 𝑚𝑜𝑑 𝑥 𝑖

𝑦𝑖=
[ ]𝑥𝑖 −1
𝑥𝑖
{
𝑎𝑖 +1=𝑎 𝑖 −1 − 𝑦 𝑖 𝑎𝑖
𝑏𝑖 +1 =𝑏𝑖 − 1 − 𝑦 𝑖 𝑏𝑖
❑ 𝑒= 𝑏3 =17

Triple DSA
Thuật toán DES được sử
dụng 3 lần với 3 khóa 56 bit
khác nhau.

You might also like