Tải bản đầy đủ (.doc) (47 trang)

MA HOA

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (466.5 KB, 47 trang )

Lời cảm ơn.
Trong quá trình làm luận văn. Em đã nhận được sự giúp đỡ nhiệt tình của các
thầy cơ giáo
Em xin gửi lời cảm ơn chân thành tới quý thầy cô giáo khoa Công Nghệ Thông
Tin, trường Đại học Vinh nói chung và thầy cơ giáo trong bộ mơn Hệ Thống
Thơng Tin nói riêng, đã giúp đỡ, tạo điều kiện cho em trong suốt quá trình làm đề
tài.
Đặc biệt em xin chân thành cảm ơn thầy giáo Cao Thanh Sơn đã giúp đỡ, chỉ
bảo, hướng dẫn tận tình trong quá trình làm đề tài. Nhờ sự giúp đỡ của thầy em
đã hiểu hơn về các phương pháp mã hóa và tầm quan trọng của mã hóa dữ liệu
trong thời đại Công Nghệ Thông Tin phát triển như ngày nay.
Mặc dù em đã cố gắng hoàn thành đề tài trong phạm vi và khả năng cho phép
nhưng chắc chắn sẽ khơng tránh khỏi những thiếu sót. Em kính mong nhận được
sự cảm thơng và tận tình chỉ bảo của q thầy cô và các bạn.
Ngày….Tháng….Năm
Sinh viên thực hiện:
Trần Thị Kim Nhung.


MỤC LỤC
Lời cảm ơn.

2


PHẦN I: MỞ ĐẦU
Lí do chọn đề tài
Trong những năm gần đây, mạng Internet đã trở thành nền tảng chính cho sự
trao đổi thơng tin trên tồn cầu. Có thể thấy một cách rõ ràng là Internet đã và
đang tác động lên nhiều mặt của đời sống chúng ta từ việc tìm kiếm thơng tin, trao
đổi dữ liệu đến việc hoạt động thương mại, học tập nghiên cứu và làm việc trực


tuyến... Nhờ Internet mà việc trao đổi thông tin cũng ngày càng tiện lợi, nhanh
chóng hơn, khái niệm thư điện tử (email) cũng khơng cịn mấy xa lạ với mọi
người.
Tuy nhiên trên mơi trường truyền thơng này, ngồi mặt tích cực Internet cũng
tiềm ẩn những tiêu cực của nó đối với vấn đề bảo vệ thơng tin.
Do đó, những yêu cầu được đặt ra đối với việc trao đổi thông tin trên mạng:
- Bảo mật tuyệt đối thông tin trong giao dịch.
- Đảm bảo tính tồn vẹn của thơng tin.
- Chứng thực được tính đúng đắn về pháp lí của thực thể tham gia trao đổi
thông tin.
- Đảm bảo thực thể không thể phủ nhận hay chối bỏ trách nhiệm của họ về
những hoạt động giao dịch trên Internet.
Mã hóa thơng tin là một ngành quan trọng và có nhiều ứng dụng trong đời
sống xã hội. Ngày nay các ứng dụng mã hóa và bảo mật thơng tin đang được sử
dụng ngày càng phổ biến hơn trong các lĩnh vực khác nhau trên Thế giới, từ các
lĩnh vực an ninh, quân sự, quốc phòng…. Cho đến các lĩnh vực dân sự như thương
mại điện tử, ngân hàng…
Ở Việt Nam hiện nay nhu cầu trao đổi thông tin cũng như các hoạt động khác
thông qua thư điện tử cũng rất phát triển. Vì vậy việc bảo mật cho hệ thống thư
điện tử ở Việt Nam cũng trở nên cần thiết. Hiện có rất nhiều phương pháp bảo mật
dữ liệu trên internet. Trong phần đề tài này tơi chỉ tìm hiểu một số phương pháp
mã hóa đang được sử dụng rộng rãi ngày nay.

3


PHẦN II:

NỘI DUNG


CHƯƠNG I: TỔNG QUAN VỀ HỆ MẬT MÃ
I. Khái niệm về mã hóa thơng tin
1.1 Khái niệm
Mã hóa thông tin là chuyển đổi thông tin từ dạng rõ (dạng đọc được) sang
dạng mờ (dạng không thể đọc được) và ngược lại. Nhằm mục đích ngăn chặn
nguy cơ truy cập thông tin truyền đi trên mạng một cách bất hợp pháp. Thông tin
sẽ được truyền đi trên mạng dưới dạng mờ và không thể đọc được với bất kỳ ai cố
tình muốn lấy thơng tin đó.
Khi chúng ta có nhu cầu trao đổi thơng tin, thì Internet là mơi trường khơng an
tồn, đầy rủi ro và nguy hiểm, khơng có gì đảm bảo rằng thơng tin mà chúng ta
truyền đi khơng bị đọc trộm trên đường truyền. Vì vậy mã hóa là biện pháp giúp ta
bảo vệ chính mình cũng như thơng tin mà ta gửi đi.
Ngồi ra mã hóa cịn đảm bảo tính tồn vẹn của dữ liệu.
1.2 Vai trị của mã hóa
Các hệ mã hóa phải thực hiện được các vai trị sau.
- Các hệ mã hóa phải che dấu được nội dung của văn bản rõ (Plain Text) để đảm
bảo sao cho chỉ người chủ hợp pháp của thơng tin mới có quyền truy cập thơng
tin, hay nói cách khác là chống truy cập khơng đúng quyền hạn.
- Tạo các yếu tố xác thực thông tin, đảm bảo thông tin lưu hành trên hệ thống đến
người nhận hợp pháp xác thực.
- Tổ chức các sơ đồ chữ kí điện tử, đảm bảo khơng có hiện tượng giả mạo, mạo
danh để gửi thông tin trên mạng.
Ưu điểm lớn nhất của các hệ mã hóa là có thể đánh giá được độ phức tạp của
tính tốn mà “kẻ địch” phải giải quyết bài tốn để có thể lấy được thơng tin của
dữ liệu đã được mã hóa. Tuy nhiên mỗi hệ mã hóa đều có một số ưu và nhược
điểm khác nhau, nhưng nhờ đánh giá được độ phức tạp tính tốn mà ta có thể ứng
dụng cụ thể tùy theo yêu cầu về độ an toàn.
4



1.3 Các thành phần của hệ mã hóa
Một hệ mã hóa là một bộ 5 (P,C,D,K,E) thõa mã các điều kiện sau.
- P là một tập hợp hữu hạn các bản rõ (Plain Text), nó cịn được gọi là
khơng gian bản rõ.
- C là tập hợp hữu hạn các bản mã (Crypto), nó cịn được gọi là khơng gian
bản mã. Mỗi phần tử của C có thể nhận được bằng cách áp dụng phép mã hóa
Ek lên một phần tử của P.
- K là tập hợp hữu hạn các khóa hay cịn gọi là khơng gian khóa. Đối với
mỗi phần tử k của K được gọi là một khóa (Key). Số lượng của khơng gian
khóa phải đủ lớn để “kẻ địch” khơng đủ thời gian để thử mọi khóa (phương
pháp vét cạn).
- E và D lần lượt là tập luật mã hóa và giải mã. Với mỗi k của K có một
quy tắc mã hóa ek: PC và một quy tắc giải mã tương ứng dk € D. Mỗi ek:
PC và dk: CP là những hàm mà: dk(ek(x))=x với mọi bản rõ x € P.

Hình 1.1: Mơ hình mã hóa
II. Tiêu chuẩn để đánh giá hệ mã hóa
2.1 Độ an tồn của thuật tốn
Ngun tắc đầu tiên trong mã hố là “Thuật tốn nào cũng có thể bị phá vỡ”.
Các thuật tốn khác nhau cung cấp mức độ an tồn khác nhau, phụ thuộc vào độ
phức tạp để phá vỡ chúng. Tại một thời điểm, độ an toàn của một thuật toán phụ
thuộc.

5


- Nếu chi phí hay phí tổn cần thiết để phá vỡ một thuật tốn lớn hơn giá trị
của thơng tin đã mã hóa thuật tốn thì thuật tốn đó tạm thời được coi là an
toàn.
- Nếu thời gian cần thiết dùng để phá vỡ một thuật toán là quá lâu thì thuật

tốn đó tạm thời được coi là an toàn.
- Nếu lượng dữ liệu cần thiết để phá vỡ một thuật toán quá lơn so với lượng
dữ liệu đã được mã hố thì thuật tốn đó tạm thời được coi là an tồn.
2.2 Tốc độ mã hóa và giải mã
Khi đánh giá hệ mã hóa phải chú ý đến tốc độ mã hóa và giải mã. Hệ mã hóa tốt
thì thời gian mã hóa và giải mã nhanh.
2.3 Phân phối khóa
Một hệ mã hóa phụ thuộc vào khóa, khóa này được truyền cơng khai hay truyền
bí mật. Phân phối khóa bí mật thì chi phí sẽ cao hơn so với các thuật tốn mã hóa
khóa cơng khai. Vì vậy đây cũng là một tiêu chí khi lựa chọn hệ mã hóa.
III.

Khóa

3.1 Khái niệm
Một khóa mã hóa là một phần thơng tin đặc biệt được kết hợp với một thuật
tốn để thi hành mã hóa và giải mã. Mỗi khóa khác nhau có thể tạo ra các văn bản
mã hóa khác nhau, nếu khơng chọn đúng khóa thì khơng thể mở được tài liệu đã
mã hóa trên, cho dù biết được thuật tốn trên dùng thuật tốn mã hóa gì, sử dụng
khóa càng phức tạp thì độ an tồn của dữ liệu càng lớn.
3.2 Ví dụ
Mã hóa nội dung của một bức thư với khóa là “thay thế mỗi kí tự xuất hiện
trong bức thư bằng kí tự đứng thứ 3 sau nó”. Cùng thật tốn trên nhưng sử dụng
khóa là “Thay thế mỗi kí tự xuất hiện trong bức thư bằng kí tự đứng thứ 4 sau nó”.
Như vậy kết quả của một bức thư có nội dung như nhau sau khi sử dụng hai khóa
khác nhau sẽ có hai bản mã khác nhau.
IV.Phân loại các thuật toán mã hóa
Có rất nhiều thuật tốn mã hóa khác nhau. Tuy nhiên có thể phân loại
thuật tốn mã hóa như sau.
6


các


4.1 Phân loại theo các phương pháp
4.1.1 Mã hoá cổ điển
Xuất hiện trong lịch sử, thuật tốn sử dụng khóa đơn giản, dễ hiểu. Là phương
pháp mà từng kí tự (hay từng nhóm kí tự) trong bản rỏ được thay thế bằng một kí
tự (hay nhóm kí tự) khác tạo nên bản mã. Bên nhận chỉ cần đảo ngược lại trình tự
thay thế trên thì sẽ nhận được bản rõ ban đầu.
Mã hóa cổ điển có hai phương pháp nổi bật là: Mã hóa thay thế và mã hóa hốn
vị.
Các hệ mã hóa thường được sử dụng trong lịch sử là: Hệ mã hóa Ceasar,
Vigenere, Hill…
4.1.2 Mã hóa đối xứng
Mã hóa đối xứng hay mã hóa chia sẽ khóa là mơ hình mã hóa hai chiều, có
nghĩa là tiến trình mã hóa và giải mã đều dùng chung một khóa. Khóa này được
chuyển giao bí mật giữa hai đối tượng tham gia giao tiếp. Khóa này có thể được
cấu hình trong Software hoặc được mã hóa trong Hardware. Mã hóa đối xứng thực
hiện nhanh nhưng có thể gặp rủi ro nếu khóa bị đánh cắp.
Một số thuật tốn mã hóa đối xúng nổi tiếng như: DES, AES, RC2, RC4, RC5,
RC6…
Ngoài ra cịn một số thuật tốn như: Skipjact, Blowfish, CATS-128.
4.1.3 Mã hóa bất đối xứng
Mã hóa bất đối xứng là mơ hình mã hóa hai chiều sử dụng một cặp khóa là khóa
chung (Public Key) và khóa riêng (Private Key). Trong đó khóa chung Public Key
có thể được cơng bố rộng rải. Thông thường thông tin được người gửi sử dụng
khóa Public Key để mã hóa và gửi đi. Người nhận thơng tin sẽ dùng khóa Private
Key để giải mã. Khóa Private Key chỉ do một người giữ do đó các phương pháp
mã hóa bất đối xứng đảm bảo tính bí mật hơn.

Một điều quan trọng của phương pháp mã hóa này là cặp khóa Public Key và
Private Key phải tương đồng nhau. Có nghĩa là chỉ có Private Key trong cùng một
cặp khóa mới có thể giải mã được dữ liệu đã mã hóa bởi khóa Public Key tương
ứng.
7


Thuật tốn mã hóa bất đối xứng nổi tiếng và được sử dụng nhiều nhất hiện nay
là RSA
Ngồi ra cịn một số thuật tốn khac như: Hellman, Elgamal…

4.1.4 Mã hóa hàm băm
Là cách thức mã hóa một chiều tiến hành biến đổi bản rõ thành bản mã mà
không bao giờ giải mã được. Người ta ví loại mã hóa này như một củ hành được
băm nhuyễn thì sẽ khơng bao giờ tái tạo lại được củ hành ban đầu.
Trong xử lý hàm băm, dữ liệu đầu vào có thể khác nhau về độ dài, nhưng độ dài
của xử lý băm luôn xác định. Hàm băm được xử lý trong mô hình xá thực
password.
Một số thuật tốn mã hóa hàm băm thường dùng như: MD4, MD5, SHA…
4.2 Phân loại theo số lượng khóa
4.2.1 Mã hóa khóa bí mật
Mã hóa khóa bí mật là thuật tốn mà tại đó khóa giải mã có thể được tính tốn
từ khóa mã hóa. Trong rất nhiều trường hợp khóa mã hóa và khóa giải mã là giống
nhau. Thuật toán này yêu cầu người gửi và người nhận thõa thuận một khóa trước
khi thơng tin được gửi đi và khóa này phải đảm bảo tính bí mật. Độ an toàn của
thuật này phụ thuộc nhiều vào độ bí mật của khóa, nếu để lộ khóa thì thì bất kì
người nào cũng có thể mã hóa và giải mã thơng tin một cách dễ dàng.

Hình 2 : Mơ hình mã hóa khóa bí mật
8



Trong đó :
K1 có thể trùng K2.
K1 có thể được tính từ K2.
K2 có thể được tính từ K1.
Mã hóa khóa bí mật thường được sử dụng cho các trường hợp dễ chuyển khóa.
Tức là người nhận và người gửi có thể trao đổi khóa cho nhau an tồn, khó bị kẻ
khác tấn công. Thường dùng để trao đổi trong văn phòng.
Một số vấn đề liên quan
- Các phương pháp mã hóa khóa bí mật địi hỏi người mã hóa và người giải mã
phải cùng chung một khóa hoặc là có thể biết khóa của nhau, khi đó khóa phải
được giữ bí mật tuyệt đối. Do đó kẻ địch dễ dàng xác định được một khóa nếu
biết khóa kia.
- Phương pháp này khơng đảm bảo được sự an tồn nếu có xác suất cao khóa
người gửi bị lộ. Khóa 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 khóa.
- Vấn đề quản lý và phân phối khóa là khó khăn và phức tạp, người gửi và
người nhận phải thống nhất với nhau về khóa việc thay đổi khóa là khó khăn và
dễ bị lộ.
4.2.2 Mã hóa khóa cơng khai
Mã hóa khóa cơng khai là các thuật tốn sử dụng khóa mã hóa và khóa giải mã
là hồn tồn khác nhau. Hơn nữa khóa giải mã khơng thể tính tốn được từ khóa
mã hóa.
Khác với mã hóa khóa bí mật, khóa mã hóa của thuật tốn mã hóa cơng khai
được cơng bố rộng rải. Một người bất kì có thể sử dụng khóa cơng khai để mã hóa
thơng tin, nhưng chỉ có người nhận thơng tin có khóa giải mã phù hợp với khóa
mã hóa để mã hóa thơng tin.
Mơ hình mã hóa khóa cơng khai.


9


Hình 3 : Mơ hình mã hóa khóa cơng khai.
Trong đó :
Khóa mã hóa khơng thể giống khóa giải mã.
Khóa giải mã khơng thể được tính từ khóa mã hóa.
Một điều đặc biệt của loại mã hóa này là cả khóa cơng khai và bản mã có thể
được gửi đi trên kênh khơng an tồn mà thơng tin vẫn khơng bị đọc trộm.
Chính vì mức độ an tồn cao nên mã hóa khóa cơng khai được sử dụng trên
mạng cơng khai Internet

10


CHƯƠNG II. MỘT SỐ PHƯƠNG PHÁP MÃ
HÓA CỔ ĐIỂN
I. Hệ mã hóa thay thế
1.1 Hệ mã hóa Ceasar
Hệ mã hóa Ceasar là một ví dụ điển hình cho hệ mã hóa thay thế. Nó là việc
trong bảng chử cái tiếng Anh 26 kí tự. Ceasar sử dụng các số nguyên thay cho các
kí tự, đánh số các kí tự trong bảng chử cái theo thứ tự bảng sau.

Các phép toán số học được thực hiên trên Modul 26( có nghĩa là 26 tương ứng
với 0, 27 tương ứng với 1, 28 tương ứng với 2,…, 79 = 26x3 + 1 tức 79 tương ứng
với 1.
HƯ CAESAR sư dơng tht to¸n mà hoá E k 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

11


Bảng chữ cái dùng để mà hoá

Trong trờng hợp này bản rõ DAI HOC VINH đợc mà hoá thành
GDL KRF YLQK, (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á 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.
1.2 H mó húa 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, nhng ở đâ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Ã.


12


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 M N O P Q R S T U V WX Y Z A
C D E F G H I J K L M N O P Q R S T U V WX Y Z A B
D E F G H I J K L M N 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 M N O P Q R S T U V WX Y Z A B C D E
G H I J K L M N O P Q R S T U V WX Y Z A B C D E F
H I J K L M N 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 M N O P Q R S T U V WX Y Z A B C D E F G H I
K L M N 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 M N O
Q R S T U V WX Y Z A B C D E F G H I J K L M N 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 M N O P Q R S
U V WX Y Z A B C D E F G H I J K L M N O P Q R S T
V WX Y Z A B C D E F G H I J K L M N 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
X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
Y Z A B C D E F G H I J K L M N O P Q R S T U V WX
Z A B C D E F G H I J K L M N O P Q R S T U V WX Y

Hình 4: Hình vng Vigenere.

13


Mỗi cột của hình vng Vigenere có thể xem như là một hệ CEASAR, với các
khóa: 0, 1, 2,...., 25. Để mã hóa thì bản rõ được đọc từ các hàng và khóa được đọc
từ các cột.
Ví dụ: Mã hóa bản “ DAI HOC VINH” với từ khóa “ KHOA KINH TE”. Đầu
tiên ta tìm điểm giao của hàng D cột K ta được N, tiếp tục ta tìm điểm giao của
hàng A cột H, ta được H. Cứ như vậy ta được bản mã là “ NHW HYK IPGL” . Ta
sẽ thu được bản mã tưng tự nếu ta đọc bản rõ tưng ứng với cột và khóa đọc tưng
ứng với hàng. Muốn giải mã thông tin vừa mã hóa trên ta thực hiện bằng cách, t
nhìn vào hàng nào chứa N trong cột K, ta tìm được chữ D, tương tự nhìn vào hàng
nào chứa H trong cột H, ta tìm được chữ A. Cứ như vậy ta sẽ tìm được bản rõ là
“DAI HOC VINH”.
Trong ví dụ trên thì độ dài bản rõ bằng độ dài khóa. Nhưng trong thực tế độ dài
bản rõ thường dài hơn rất nhiều so với khóa. Như vậy để mã hóa hay giải mã thì ta
phải áp dụng từ khóa một cách tuần hồn. Nghĩa là từ khóa được lặp đi lặp lại
nhiều lần sao cho các kí hiệu trong bản rõ phải được đọc hết.
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.
II. H mó húa hoỏn vị
Hệ mã hóa hốn vị hay cịn gọi là hệ mã hóa đổi chổ. Là hệ mã hóa mà 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
Phương pháp này có các kỷ thuật mã hóa sau.
2.1 Đảo ngược tồn bộ bản rõ
Nghĩa là bản gốc được viết theo thứ tự ngược lại từ sau ra trước, để tạo bản mã.

Đây là phương pháp mã hóa đơn giản nhất vì vậy khơng đảm bảo an tồn.
Ví dụ Plaintext: SECURE EMAIL
Bản mã: LIAMEERUCES
14


2.2 Mã hóa theo mẫu hình học
Bản gốc đượ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 ma trận hai chiều.
Ví dụ: bản rõ “KHOA CONG NGHE THONG TIN” được viết theo ma trận
4x5 như sau:

Nếu lấy các ký tự ra theo số thứ tự cột 3, 1, 4, 2, 5 thì ta thu được bản mã
“OGTTKOHNANHIHNEGCGON”.
2.3 Đổi chổ cột
Đầu tiên đổi chổ các ký tự trong ban 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õ là “ KHOA CONG NGHE THONG TIN” được viết dưới dạng
ma trận 4x5 theo cột như sau:

Vì có 5 cột nên ta có thể sắp xếp lại theo 5!=120 cách khác nhau. Để tăng độ an
tồn có thể chọn một trong các cách sắp xếp lại đó.
15


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





NGCTKGTOHHHINOOENGNA. Lu ý rằng các ký tự cách đợc bỏ
đi.
2.4 Hoỏn v cỏc ký tự của bản rõ theo chu kì cố định
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ụ: Mã hóa bản rõ “BAO MAT” chọn d=6 và f hoán vị dãy i= 123456 thành
f(i)=351462


Theo bảng trên ta thấy ký tự đầu sau khi hoán vị chuyển đến vị trí thứ 3, ký tự
thứ 2 chuyển tới vị trí thứ 5, ký tự thứ 3 chuyển tới vị trí thứ 1,… Như vậy sau khi
mã hóa ta thu được bản mã là “OABMTA”.

16


Nếu kích thước bản rõ lớn hơn nhiều so với d thì ta sẽ phải chia bản rõ thành
các khối d ký tự và tiến hành mã hóa theo từng khối. Ví dụ:
Bản rõ “KHOA CONG NGHE THONG TIN”, giả sử d=6, và f hoán vị dãy i=
12345 thành f(i)=35142
Ta thu được bản mã “OCKAHGGONNTOHHETNIG”

17


CHƯƠNG III. MỘT SỐ THUẬT TỐN
MÃ HĨA HIỆN ĐẠI.
I. Thuật tốn mã hóa DES
1.1 Lịch sử ra đời
Khoảng những năm 1970, tiến sĩ Horst Feistel đã đặt nền móng đầu tiên cho
chuẩn mã hóa DES với phương pháp mã hóa Feistel Cipher. Vào năm 1976 Cơ
quan bảo mật quốc gia Hoa Kỳ (NSA) đã công nhận DES dựa trên phương pháp
Feistel là chuẩn mã hóa dữ liệu. Kích thức khóa của DES ban đầu là 128 nhưng tại
bản công bố FIPS kích thước được rút xuống 56 bit để tăng tốc độ xử lý và đưa ra
các tiêu chuẩn thiết kệ một chuẩn mã hóa dữ liệu
Nội dung phương pháp mã hóa DES.
DES thực hiện mã hóa dữ liệu qua 16 vịng lặp mã hóa, mỗi vịng sử dụng một
khóa chu kỳ 48bit được tạo ra từ khóa ban đầu có độ dài 56bit. DES sử dụng 8

bảng hằng số S-box để thao tác
1.2 Mơ tả thuật tốn DES
1.2.1 Sơ đồ tổng qt
Phương pháp DES mã hóa khối thơng tin x có độ dài 64 bít với khóa k có độ dài
56 bit thành khối y có độ dài 64 bít.
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à hốn vị bản rõ dựa trên khóa, đó là 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õ.
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ố
16 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ờ.
Sơ đồ tổng quát :

18


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
L16=R15

R16=L15⊕ƒ(R15,K16)
IP -1
Ciphertext

Hình 5 : Sơ đồ tổng qt mã hóa DES
19


Q trình có 16 vịng thực hiện giống nhau trong q trình xử lý. Ngồi ra có
hai lần hốn vị đầu IP và cuối IP -1, hai hoán vị này được sử dụng với mục đích đưa
thơng tin vào và lấy thơng tin ra.
Muốn vào vịng mã hóa thì khối thơng tin x ban đầu 64 bít được chia làm hai
khối, mỗi khối 32 bít hàm f làm biến đổi một nữa của khối đang xử lý với một
khóa con tương ứng với vịng mã hóa.

Trong đầu ra của hàm có hàm f được kết hợp với nửa khối cịn lại bằng phép
toán XOR, và hai phần được trao đổi để xử lý trong chu trình kế tiếp.
Cứ thực hiện các vịng như vậy cho tới vịng cuối cùng thì hai phần khơng bị
tráo đổi nữa, chính vì điều này mà q trình mã hóa và giải mã là giống nhau.
1.2.2 Tạo khóa
Q trình mã hóa được thực hiện 16 vịng, mỗi vịng cần một khóa. Như vậy từ
khóa ban đầu tạo ra 16 khóa con cho 16 vịng lặp tương ứng.
Sơ đồ q trình tạo khóa.

Hình 6 : Sơ đồ tạo khóa

20


Theo sơ đồ ta thấy đầu tiên khóa K có độ dài 64 bít, sau đó được giảm xuống 58
bít bằng cách loại bỏ 8 bít chẵn lẽ. Sự loại bỏ được thực hiên khi đi qua PC1.
Bảng PC1 :

Như vậy các bít ở vị trí 8, 16, 24, 32, 40, 48, 56, 64 bị loại bỏ. 56 bít thu được
chia làm hai phần, mỗi phần 28 bít, các phần được xử lý độc lập nhau. Các phần
này được dịch 1 hay 2 bít là phụ thuộc vào vịng đó. Số bít dịch được cho trong
bảng sau.

Sau khi dịch bít, 56 bít này được chọn ra 48 bít. Bëi v× sự thực hiện
này đổi chỗ thứ tự các bít nh là sự lựa chọn một tập con các
bít, nó đợc gọi là hoán vị nén hoặc hoán vị lựa chọn. Sự thực
hiện này cung cấp một tập hợp các bít cùng cỡ với đầu ra của
hoán vị mở rộng. Bảng 4 định nghĩa hoán vị nén (cũng gọi là
hoán vị lùa chän). VÝ dơ, bÝt ë vÞ trÝ 33 cđa khoá dịch đợc
chuyển tới vị trí 35 của đầu ra, và bít ở vị trí 18 của khoá dịch

bị bỏ qua.
Bảng PC2( hoán vị nén).

Như vậy sau khi đi qua PC2 cịn lại 48 bít, 48 bít này sẽ được sử dụng làm
khóa K1 để sử dụng trong vịng mã hóa.

21


Hai phần, mỗi phần 28 bít sau khi được dịch bít ở lần thứ nhất, tiếp tục dịch bít
ở lần thứ 2 và qua bảng PC2 để hoán vị nén 48 bít và làm K2.
Q trình cứ tiếp tục như vậy ta thu được 16 khóa Ki (i=1…16).
1.2.3 Hốn vị khởi đầu
Mục đích của hốn vị khởi đầu là đổi chổ các bít của khối dữ liêu vịa thơng qua
bảng IP. Nó khơng ảnh hưởng đến sự an tồn của DES.
Với bản rõ cho trước x, một xâu bít x 0 sẽ được xây dựng bằng cách hốn vị các
bít của x theo phép hoán vị cố định ban đầu IP. Ta viết x 0=IP(x)=L0R0 trong đó L0
gồm 32 bít đầu và R0 gồm 32 bít cuối.
L

R

0

0

x0

Hình 4: biểu diễn dãy 64 bít x chia thành 2 thành phần L0,R0
Bảng hốn vị khởi đầu IP.


1.2.4 Mã hóa chi tiết một vịng
Q trình xử lý các vịng là giống nhau, ta xét q trình xử lý của một vịng i
với 1≤ i ≤ 16.
L

i-1

R

i-1

K

f



L

i

R

i

22

i



Hình 7: Sơ đồ chi tiết một vịng.
Ta thấy:
Li = Ri-1
Ri =Li-1 ⊕ f(Ri-1,Ki)
Hàm f có hai tham số là Ri-1 và Ki. Được thực hiện theo sơ đồ sau :

Hình 8: Sơ đồ hoạt động của hàm f.
Ri được mở rộng từ 32 bít thành 48 bít nhờ sự thay đổi thứ tự cảu các bít bằng
cách lặp lại một số bít nào đó, nó được hiểu như là một sự hoán vị mỏ rộng.
Để xác định ở đầu vào có 32 bít, bít nào được lặp lại và xuất hiện tại vị trí nào
của đầu ra 48 bít người ta xác định như sau:
Đầu vào có 32 bít chia làm 8 bộ, mỗi bộ có 4 bít. Bít đầu tiên và bít cuối cùng
của mỗi bộ tương ứng với 2 bít của khối dữ liệu ra, trong khi bít thứ 2 và bít thứ 3
23


của mỗi bộ tương ứng với một bít ở khối dữ liệu ra. Ví dụ, bít ở vị trí thứ 3 của
khối dữ liệu vào được chuyển tới vị trí thứ 4 trong khối dữ liệu ra, bít thứ 8 trong
khối dữ liệu vào thì được chuyển tới vị trí 11 và 13 trong khối dữ liệu ra.
Hộp E.

1 2 3 4

5 6 7 8

9 10 11 12

13 14 15 16


1 2 3 4 5 6

7 8 9 10 11 12

13 14 15 16 17 18

19 20 21 22 23 24

48

32

Hình 9: Hốn vị mở rộng
Như vậy 16 bít của Ri được hoán vị hai lần. Mặc dù khối dữ liệu ra rộng hơn
khối dữ liệu vào, nhưng một khối dữ liệu vào chỉ có duy nhất một khối dữ liệu ra.
Như vậy E(Ri-1) là một dãy 48 bít. Thực hiện phép tốn XOR cho dãy bít E(R i1) với khóa Ki. Ta thu được dãy 48 bít B. Biểu diễn B thành từng nhóm 6 bít B =
B1B2B3B4B5B6B7B8
24


Sử dụng 8 hộp S = S1, S2, S3, S4, S5, S6, S7, S8. Mỗi hộp Si có kích thước

4x

16. Mỗi dịng của hộp nhận đủ giá trí từ 015.
Xét dãy 6 bít Bi=b1b2b3b4b5b6. Si(Bi) được xác định bằng giá trị của phần tử tại
dịng m cột n. Trong đó m, n được xác định bằng cách.
Giá trị m được xác định bằng bít b1 và b6 được kết hợp thành một số 2 bít nhận
giá trị từ 0 đến 3. tương ứng với một hàng trong bảng.
Giá trị n được xác định bằng cách ghép bít b 2b3b4b5 thành một số 4 bít nhận giá

trị từ 0 đến 15 tương ứng với cột trong bảng.
Ví dụ:
B2=111010 ta có m= b1b6 = 10= 2 ; n = b2b3b4b5= 1101= 13.
Phần tử ở vị trí hàng 2 cột 13 là 6, sang giá trị nhị phân là 0110. Như vậy 0110
thay cho 111010.
Như vậy tập dãy 4 bít thu được C ta có dãy C = C1, C2, C3, C4, C5, C6, C7, C8.
Dãy 32 bít thu được bằng cách hốn vị hoán vị C theo quy luật P nhất định.
Đây là kết quả của hàm f(Ri-1,Ki) XOR với Li-1 tạo thành khối Ri với 32 bít.
Các hộp S.
Hộp S thứ 1.

Hộp S thứ 2.

Hộp S thứ 3.
25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×