Tải bản đầy đủ (.docx) (43 trang)

TIỄU LUÂN môn học cơ sở AN NINH MẠNG 7080703

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 (852.48 KB, 43 trang )

TRƯỜNG ĐẠI HỌC MỎ - ĐỊA CHẤT
BỘ MÔN MẠNG MÁY TÍNH

TIỄU LN MƠN HỌC
Cơ SỞ AN NINH MẠNG - 7080703

Cán bộ giảng dạy

Sinh viên thực hiện

GVC. ThS. NCS.Nguyễn Tuắn Anh Sinh viên 1:
Bộ mơn: Mạng máy tính

Họ và tên: Đào Thị Thắm
Mã sinh viên: 1921050555
Sinh viên 2:
Mã vànỉêvìTạ tengHà)
Lớp: CNPM A - K64
Nhóm mơn học: 08
HÀ NỘI - 2021


JỤC LỤC

DES | 2


MỞ ĐẦU
Khi nhu cầu trao đổi thông tin dữ liệu ngày càng lớn và đa dạng, các tiến bộ
về điện tử - viễn thông và công nghệ thông tin không ngừng phát triển ứng dụng để
nâng cao chất luợng và luu luợng truyền tin thì các quan niệm ý tuởng và biện pháp


bảo vệ thông tin dữ liệu cũng đuợc đổi mới. Bảo vệ an tồn thơng tin dữ liệu là một
chủ đề rộng, có liên quan đến nhiều lĩnh vực và trong thực tế có rất nhiều phuơng
pháp đuợc thực hiện để bảo vệ an tồn thơng tin dữ liệu. Một trong các biện pháp
hữu hiệu nhất hiện nay là mã hóa.Khái niệm mã hóa dữ liệu đề cập đến những phép
tính tốn học và chuơng trình thuật tốn chuyển văn bản gốc thành dạng văn bản mã
hóa, đây là một dạng thức khiến cho những nguời không đuợc ủy quyền không thể
đọc đuợc. Nguời nhận tin nhắn mã hóa sẽ sử dụng một khóa tạo nên cơ chế thuật
tốn để giải mã dữ liệu, chuyển nó trở về phiên bản văn bản ban đầu.
Truớc khi có Internet, phuơng pháp mã hóa dữ liệu rất ít khi đuợc sử dụng
rộng rãi vì nó đuợc coi là cơng cụ bảo đảm an ninh trong lĩnh vực ngoại giao và
quân sự nhiều hơn. Tuy nhiên từ khi dịch vụ ngân hàng, mua sắm trực tuyến và các
dịch vụ khác trở nên phổ biến thì ngay cả những nguời chỉ có nhu cầu sử dụng
Internet cơ bản tại nhà cũng biết đến mã hóa dữ liệu.
Một số giải pháp mã hóa dữ liệu tối uu có thể đuợc sử dụng qua nhiều thế
kỵ, trong khi các phuơng pháp giải mã khác có thể bị phá vỡ bởi những nguời có kỹ
năng về lĩnh vực này trong thời gian ngắn.
Một số chuẩn mã hóa dữ liệu phổ biến là: DES, AES (Advanced Encryptỉon
Standard - Tỉêu chuẩn mã hỏa nâng cao),...
Thuật tốn mã hóa khối ra đời sớm và có nhiều ảnh huởng là thuật toán
DES(Data Encryptỉon Standard - Tỉêu chuẩn mã hỏa dữ lỉệu).
Sau đây, chúng ta sẽ tìm hiểuvềDES.

DES | 3


KHÁI NIỆM Cơ BẢN VÈ MÃ HÓA VÀ GIẢI MÃ
1. Khái niệm
Mã hóa là một q trình che dấu thơng tin, biến đổi thơng tin ở dạng đọc
được thành,dạng.khác Xcó .thể _vơ nghĩa)-. Và chi.có người có khóa mới có thể giải
ma- được thông nn nay thanh dạng đỌc được ban đấu.


Hình: Mơ tả mã hóa giải mã
Các thuật ngữ thường dùng trong mã hóa và giải mã:



Cryptosystem (Cryptographic System):đầy là hệ thống mã hóa thơng tin, có
thể là phấn mềm như PGP, Ax-Crypt, Truecrypt... giao thức như SSL, IPsec
dùng trong Internet... hay đơn giản là một thuật toán như DES.



Encrypt (Encipher, Encryption):gọi là mã hóa - đó là q trình biến đổi
thơng tin từ dạng ban đấu - có thể hiểu được thành dạng không thể hiểu
được, với mục đích giữ bí mật thơng tin đó.



Decrypt (decipher, decryption):gọi là giải mã - đó là q trình ngược lại với
mã hóa, khơi phục lại thơng tin ban đấu từ thơng tin đã được mã hóa.






Pỉain text/message: là thơng điệp ban đấu chưa được mã hóa.
Cipher text/message:là chi thu được sau khi mã hóa.
Cipher : là thuật tốn sử dụng để thực hiện q trình mã hóa hay giải mã.
Key: là chìa khóa -khóa cung cấp thơng tin cấn cho qui trình mã hóa và giải

mã.

2. Các ngun lý của bảo mật và mã hóa
Có 4 ngun lý chính:
o Tính bí mật (Confidentiaỉity / Privacy).
o Tính tồn vẹn (Integrity).
o Tính xác thực (Authentication).
o

Tính khơng chối bỏ (Non-repudiation).

DES | 4


o Tính nhận dạng (Identỉfìcatỉon).

3. Các dạng thuật tốn mã hóa
a/ Dạng cổ điển:
-Substitution: sự thay thế - đây là phương pháp mã hóa mà từng kí tự (hoặc
từng nhóm kí tự) của thơng điệp ban đấu được thay thế bằng một (hay một nhóm)
thơng điệp khác. Phương pháp này khơng cịn được sử dụng nhưng ý tưởng của
phương pháp này vẫn được sử dụng là tiền đề trong những thuật toán hiện đại.
-Transposition: sự hoán vị - đây là phương pháp mã hóa trong đó các ký tự
của thơng điệp ban đấu thay đổi vị trí cho nhau cịn bản thân các thông điệp không
hề bị thay đổi.
b/Phương pháp hiện đại:
+ Symmetric cryptography (mã hóa đối xứng): tức là cả hai q trình mã hóa
và giải mã đều dùng một chìa khóa. Đe đảm bảo tính an tồn, chìa khóa này phải
được giữ bí mật. Vì thế các thuật tốn loại này cịn có tên gọi khác là secret key
cryptography (hay private key cryptography). Các thuật toán loại này thường được

d

hêỉfỉỉitỉimụ:tđ<đ/iJĩảiófuiỢỉ lihỉacủavới mâPitenthứ^áP đơn lẻ nhưng bộc lộ hẤn
> Block ciphers: thuật tốn khối - trong đó từng khối dữ liệu trong văn
bản ban đấu được thay thế bằng một khối dữ liệu khác có cùng độ dài.
Độ dài mỗi khối gọi là block size, thường được tính bằng đơn vị bit.
Ví dụ: DES, 3DES...
> Stream ciphers: thuật tốn dịng - trong đó dữ liệu đấu vào được mã
hóa từng bit một. Các thuật tốn dịng có tốc độ nhanh hơn các thuật
toán khối, được dùng khi khối lượng dữ liệu cấn mã hóa chưa được
biết trước, ví dụ trong kết nối khơng dây. Có the coi thuật tốn dịng là
thuật tốn khối với kích thước mỗi khối là 1 bit. Một số thuật tốn

dồng, thơng dụng: . RC2 A5/1 1A5/X Chameleon
+Asymmemc cryptơgraphy(ma hóa bai đoi xứng) sử dụng một cặp chìa khóa
có liên quan với nhau về mặt tốn học, một chìa cơng khai dùng đe mã hố (public
key) và một chìa bí mật dùng đe giải mã (private key). Một thơng điệp sau khi được
mã hóa bởi chìa cơng khai sẽ chỉ có the được giải mã với chìa bí mật tương ứng. Do
các thuật tốn loại này sử dụng một chìa khóa cơng khai (khơng bí mật) nên cịn có
tên gọi khác là public-key cryptography (thuật tốn mã hóa dùng chìa khóa cơng
khai). Một số thuật tốn bất đối xứng thơng dụng là : RSA, Elliptic Curve, ElGamal,
Diffie Hellman...
4. Một vài thuật tốn mã hóa nổi tiếng
❖ DES (Data Encryption Standard).
❖ One-time Pad (OTP).

DES | 5




RSA.

AES (Advance Encryption Standard).

DES | 6


I.GIỐI THIỆU
Thuật toán DES(Data Encryptỉon Standard) là một thuật toán mã hóa được
dùng rộng rãi nhất trên the giới. Trong nhiều năm và đối với nhiều người việc mã
hóa bảo mật và DES là một. Bất chấp việc nhiều cổ máy được tạo ra để bẻ khóa
DES điển hình như cổ máy trị giá $220000 của Electronic Frontier Foundation,
DES vẫn tồn tại trong các ngân hàng cũng như chính phủ bằng việc cải thiện qua
nhiều phiên bản như “Triple-DES”.
Kể từ khi DES ra đời, nhiều thuật toán mã hoá bảo mật khác cũng được phát
triển tưong tự DES hoặc dựa trên DES, một khi nắm được các nguyên tắc của DES
bạn sẽ dễ dàng hiểu các thuật toán này.
15-5-1973 dưới thời của Tổng Thống Richard Nicxon, Cục Tiêu Chuẩn Liên
Bang Hoa Kỳ đã công bố một thông báo trên Công báo Liên Bang mời đề xuất các
thuật tốn mã hóa đễ bảo vệ dữ liệu trong quá trình truyền và lưu trữ. Thơng báo đã
nêu rõ lý vai trị quan trọng của việc mã hóa dữ liệu.
Trong thập kỵ qua, đã có sự tăng tốc mạnh mẽ trong tích luỹ và truyền dữ
liệu của ngành cơng nghiệp, chính phủ và của các tổ chức khác trong khu vực tư
nhân. Phần lớn những nội dung truyền đi là những tài liều nhạy cảm và quan trọng
như việc chuyển tiền, hợp đồng, email, thơng tin cá nhân, các hoạt động ngầm của
chính phủ... Với sự tăng nhanh không ngừng về khối lượng giá trị cũng như tính
chất của nhủng thơng tin được lưu trũ cũng như truyền đi điều này dẫn đen yêu cầu
cần có những giải thuật cần thiet đễ mã hóa các thơng điệp này.
Sau một thời gian chờ đợi, nhiều đề xuất về thuật tốn mã hóa đã được đưa
ra tuy nhiên không đáp ứng được yêu cầu đề ra. Đen ngày 6 tháng 8 năm 1974, ba

ngày trước khi Nixon từ chức, IBM đã đưa ra thuật toán Lucifer. Thuật toán này đã
được đánh giá với sự trợ giúp của Co quan An ninh Quốc Gia (NSA) và vượt qua
Ếốuiửấtđêc Cục ^hu&Mc LHshrfts#ề HụoanKu êhuẩh íáức ^ơngiiViYặiUỳnỉậụtmẾt
Lucifer và đổi tên thành Data Encryption Standard (DES) vào 15 tháng 7 năm 1977.
DES đã nhanh chóng được áp dụng trong lĩnh vực truyền tín hiệu như đường
dây điện thoại cơng cộng. Ví dụ trong vịng một vài năm hãng International Flavors
and Fragrances đã sử dụng DES đễ bảo vệ các cơng thức sản xuất của mình khi
truyền qua điện thoại ("Wỉth Data Encryptỉon, Scents Are Safe at IFF,"
Computerworld 14, No. 21, 95 (1980)).
Trong khi đó lực lượng có nhu cầu mã hóa dữ liệu lớn nhất bên ngồi chính
phủ đó là các ngân hàng đã sử dụng DES như chuẩn mã hóa dữ liệu chính của mình
khi thực hiện các giao dịch. DES đã được American National Standards
Inst’nute/A98SI) chứng nhận là chuẩn mã hóa dự liệu trong giao dịch của ngân hàng


DES | 8


II. TỒNG QUAN
Giải thuật DES được phát triển tại công ty IBM dựa trên hệ mã hóa LUCIFER của
Feistel.
DES là một thuật tốn mã hóa khối (bỉock cỉpher) nghĩa là chuỗi cấn mã hóa
sẽ được đóng thành những khối có kích thước 64 bit và trả ve một chuỗi đã được
mã hóa có kích thước tương đương.Thực sự mà nói DES chính là kết quả của phép
hốn vị (permutatỉon) bằng 264 vị trí có thể của chuỗi 64 bit trong số đó có thể là 0
hoặc 1. Mỗi khối 64 bit này được chia thành 2 khối 32 bit bằng nhau, nửa khối bên
trái L và nữa khối bên phải R. (Sự phân chia này chỉ sử dụng trong những hoạt động
nhất định). Do q trình mã hóa và giải mã chỉ sử dụng một “khóa , nên DES thuộc
loại mã hóa đối xứng (Symmetrỉc cryptography).


Hình. Mơ hình mã hoa đốỉ xứng
Khóa mã có độ dài 64 bit, trong đó có 8 bit chẵn lẻ được sử dụng để kiểm
sốt lỗi. Các bit chẵn lẻ nằm ở các vị trí 8, 16, 24,... , 64. Tức là cứ 8 bit khóa thì có
1 bit kiểm sốt lỗi, bit này qui định số bit có giá trị 1 của khối 8 bit đó theo tính bù
chẵn.
Nen 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à hoán vị bản rõ dựa trên khoá. Đó là các vịng lặp. DES sửdụng 16 vịng
lặp, nó áp dụng cùng một kiểu kết hợp của các kỹ thuật trên khối bản rõ 16 lấn.

DES | 9


Hình. Sơ đồ mã DES
Thuật tốn chỉ sử dụng các phép tốn sổ học và lơgíc trên các sổ 64 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 ve công nghệ phấn
cứng lúc bấy giờ. Ban đấu, sự thực hiện các phấn mềm kiểu này rất thơ so, nhưng
hiện tại thì việc đó đã tổt hon, và với đặc tính lặp đi lặp lại của thuật tốn đã tạo nên
ý tưởng sử dụng chíp với mục đích đặc biệt này.

DES | 10


DES làm việc trên bit hoặc sổ nhị phân 0/1. Một nhóm 4 bit tạo thành một sổ
trong hệ Hex. Ví dụ ta có sổ nhị phân “0001” thì trong hệ hex sẽ có giá trị bằng “1”,
sổ “1000” có giá trị bằng “8”, “1001” có giá trị bằng “9”, “1010” có giá trị bằng
“A” và “1111” có giá trị bằng “F”.
DES làm việc bằng cách mã hóa thơng điệp gồm 64 bit tưong đưong với 16
sổ hexa. Đe mã hóa được DES sử dụng “khóa” tưong đưong với chiều dài của 16
hexa hay . 64 bit Ắức . 8byte, nhưng .các bit thứ 8 tròn các byte này bị bỏ qua do đó
độ

,

lớn thực tê của khóa chi là 56 bit.
Ví dụ bạn cấn mã hóa thơng điệp sau “8787878787878787” sử dụng khóa
"0E329232EA6D0D73" thì sau khi mã hóa bằng DES bạn sẽ thu được một chuỗi đã
mã hóa là “0000000000000000”. Nêu thực hiện giải mã chuỗi đã được mã hóa đó
bằng key đã được sử dụng ta sẽ thu được chuỗi ban đấu.
Ví dụ trên rất rõ ràng với thơng điệp được mã hóa có chiều dài là 64 bit.
Trường hợp tưong tự xảy ra nêu thơng điệp có chiều dài là bội của 64 bit. Tuy nhiên
trong nhiều trường hợp chuỗi mã hóa khơng có chiều dài như vậy. Xét trường hợp
thông điệp sau: “Your lips are smoother than vaseline” thơng điệp trên có 36 byte
tưong đưong 76 sổ hexa do đó nó cấn được thêm vào cuổi một sổ byte vào cuổi
đoạn . mật mã và khi giải mã ta . sẽ xóa nhưng byte thêm vào này. Các byte thêm vào
sao cho thông điệp đa cho trở thành bội của 8bytes, 64 bit, hoặc 16 sổ hexa.
Thông điệp “Your lips are smoother than vaseline” trong mã hexa có dạng:
“596F7572206C6970732061726520736D6F6F74686572207468616E2076617365
6C696E650D0A”
thơng điệp chi chứa 72 sổ hexa do đó ta thêm vào cuổi chuỗi các sổ 0 đe đủ 80
sổhexa
“596F7572206C6970732061726520736D6F6F74686572207468616E2076617365
6C696E650D0A0000”
sau đó ta sử dụng một “khóa” DES 64 bit “0E329232EA6D0D73” ta sẽ thu được
chuỗi cấn mã hóa:
“C0999FDDE378D7ED727DA00BCA5A84EE47F269A4D64381909DD52F78F53
58499 828AC9B453E0E653”

DES | 11


III.


THUẬT TỐN

Bước 4. Tạo khóa con

Hình: Quả trình tạo khóa con
Đầu tiên, từ 64 bit ban đầu của khóa, 56 bit đuợc chọn (Permuted Choỉce 1, hay
PC-1); 8 bit còn lại bị loại bỏ. 56 bit thu đuợc đuợc chia làm hai phần bằng nhau,
mỗi phần28 bit đuợc xử lý độc lập. Sau mỗi chu trình, mỗi phần đuợc dịch đi 1
hoặc 2 bit (tùy thuộc từng chu trình). Các khóa con 48 bit đuợc tạo thành bởi thuật
tốn lựa chọn 2 (Permuted Choỉce 6, hay PC-2) gồm 24 bit từ mỗi phần. Quá trình
dịch bit (đuợc ký hiệu là "<<<" trong sơ đồ) khiến cho các khóa con sử dụng các bit
khác nhau của khóa chính; mỗi bit đuợc sử dụng trung bình ở 14 trong tống số 16
khóa con.
Q trình tạo khóa con khi thực hiện giải mã cũng diễn ra tuơng tự nhung các khóa
con đuợc tạo theo thứ tự nguợc lại. Ngoài ra sau mỗi chu trình, khóa sẽ đuợc dịch
phải thay vì dịch trái nhu khi mã hóa.


Bước 2. Mã hóa khổi thơng tin 64 bit

Hình: cấu trúc thuật tốn Feỉstel
Có 16 chu trình giong nhau trong q trình xử lý. Ngồi ra cịn có hai lấn hoán vị


đấu và cuối (Inỉtỉal andfinalpermutatỉon - IP&FP). Hai quá trình này có tính chất
đối nhau (trong q trình mã hóa thì IP truớc FP, khi giải mã thì nguợc lại). IP và
FP khơng có vai trị xét về mật mã học và việc sử dụng chúng chỉ có ý nghĩa đáp
ứng cho q trình đua thơng tin vào và lấy thơng tin ra từ các khối phấn cứng có từ
thập niên 1970.



Truớc
khi đi
vàosẽ16
chuxử
trình
chính,
thơngnày
tin cịn
64 fit
đuợc
làm hai
nhan.cấu
32
bit
vàcủa
mơi
phấn
đuợc
lýFeistel)
tuấn
tự khối
(q
trình
đuộc
gọitách
là mạng
Aeistel)
trúc

thuật
tốn
(mạng
đảm
bảo
rằng
q
trình

hóa

giải

diễn
ranhau.
tuongĐiều
tự. Điểm
khác cho
nhauviệc
chỉ thực
ở chỗhiện
các thuật
khóa tốn
con đuợc
sử đon
dụnggiản,
theo đặc
trìnhbiệt
tự
nguợc

này
giúp
trở
nên
là khi thực hiện bằng phấn cứng.
Hàm F (Feistel)
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. Đấu ra sau hàm
F đuợc kết hợp với nửa còn lại của khối và hai phấn đuợc tráo đổi để xử lý trong
chu trình kế tiếp. Sau chu trình cuối cùng thì 2 nửa khơng bị tráo đổi; đây là đặc
điểm của cấu trúc Feistel khiến cho q trình mã hóa và giải mã trở nên giống nhau.
Half Block (32 bits)

Subkey (48 bits)

Hình: Hàm F
Hàm F hoạt động trên khối 32 bit, bao gồm 4 giai đoạn:
1. Mở rộng: 32 bit đấu vào đuợc mở rộng thành 48 bit sử dụng thuật toán hoán vị


mở rộng (expansỉon permutatỉon) với việc nhân đôi một số bit. Giai đoạn này đuợc
ký hiệu là E trong so đồ.
6. Trộn khỏa: 48 bit thu đuợc sau quá trình mở rộng đuợc XOR với khóa con.


3. Thay thế: 48 bit sau khi trộn đuợc chia làm 8 khối con 6 bit và đuợc xử lý qua hộp
ỀyyrfW’iỊrctWa,ẵng mội kảẤg 6r!ỉí’Kyi'ột -tó đảbbsomấí qu^ể^1 áhóđộ an tồn của
DES. Nếu khơng có S-box thì q trình sẽ là tuyến tính và việc thám
mã sẽ rất đơn giản.
4.Hoản vị: Cuối cùng, 32 bit thu đuợc sau S-box sẽ đuợc sắp xếp lại theo một thứ
tự cho truớc (còn gọi là P-box).

Quá trình luân phiên sử dụng S-box và sự hốn vị các bít cũng nhu q trình mở
rộng đã thực hiện đuợc tính chất gọi là sự xáo trộn và khuyếch tán (confusỉon and
dỉffusỉon)., Đây là yêu cấu cấn có của một thuật tốn mã hố đuợc Claude Shannon
phát hiện trong nhung năm 1940.


IV.

ví DỤ

Xét chuỗi cần mã hóa M = 0123456789ABCDEF (hệ Hexa). Ta chuyển M
ve dạng nhị phân sẽ thu đuợc một khối 64bit.
M = 0O00 0O01 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101
1110 1111
Chia M làm 2 khối:
L = 0000 0001 0010 0011 0100 0101 0110 0111
R = 1000 1001 1010 1011 1100 1101 1110 1111
DES hoạt động trên các khối 64 bit sử dụng một khóa có kích thuớc 56bit. Tuy
nhiên khóa thực sự đuợc luu trữ với chiều dài 64 bit và có 8 bit không đuợc sử dụng
(8,16,24,32,40,48,56,64). Tuy nhiên ta sẽ xem xét 8 bit này khi tạo ra các khóa
con(subkeys). Ở đây ta sẽ sử dụng một khóa K = “133457799BBCDFF1” biểu diễn
trong hệ Hexa, lúc này ta sẽ chuyển khóa K này về dạng nhị phân:
K = 00010011 00110100 01010111 01111001 10011011 10111100 11011111
11110001
Sau khi đã chuẩn bị xong khóa và dữ liệu ta tiến hành mã hóa theo các buớc sau:
Bước 4. Tạo ra 16 khóa con có chiều dài 48bit
Khóa 64 bit sẽ đuợc hốn đổi vị trí theo bảng PC-1. Ta có thể thấy phần tử đầu tiên
của bảng là 57 điều đó có nghĩa là bit thứ 57 của khóa K sẽ trở thành bit đầu tiên để
trở thành khóa K+. Bit thứ 49 trong khóa ban đầu sẽ trở thành bit thứ hai. Cuối
cùng bit thứ 4 trong khóa K sẽ trở thành bit cuối cùng sau khi hốn vị. Ở đây chỉ có

56 bit trong khóa k thực hiện việc hốn vị.
PC-1

5
1
1
1n0
1
6
37
1
24

4
5
82r
1
15
56
26
1

4
5
0s
o5
94
75
46
15


3
4
2
5
13
94
65
32

2
3
44
75
23
13
84
52

1
2
6
3
52
33
03
71

9
1

8
2
1
52
2
49

Khóa K 64bit ban đầu:
K = 00010011 00110100 01010111 01111001 10011011 10111100 11011111
11110001
Sau khi thực hiện biến đổi ta sẽ thu đuợc một khóa 56 bit:


K+ = 1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111Tiếp đó
ta chia khóa 56 bít này thành hai nửa, Co và Do có sổ bit bằng nhau là 28

bit.
Co = 1111OOOO11OO11OO1O1O1O1O1111
Do = O1O1O1O1O11OO11OO1111OOO1111
Từ Co và Do ở trên ta sẽ tạo ra 16 khổi Cn và Dn (i<=n<=16). Mỗi cặp Cn và Dn
được .tạo ra từ cặp Cn-i ■ và Dn"1 (n=1,2,^,16) bằng cách dich bit của .khối trước . nó
sang trái theo bảng “ỉeft shỉfts ,. Đê dịch bit ta chuyên các bit sang trái và thêm bit 1
vào đấu dãy bit (tính từ phải sang trái), lặp lại cho đến hết.
Interatio
n
Number
1
2
3
4


Numbe
r
of Left
1Shifts
1
2
2

6
7
8
9
1O
11
12
13
14
15
16

2
2
2
1
2
2
2
2
2

2
1

Điều đó có nghĩa là ta có thê tạo ra C4 và D4từ C3 và D3 bằng cách dịch bit của C3
và D3 sang trái 2 bít, tương tự các trường hợp còn lại.
Co = 1111OOOO11OO11OO1O1O1O1O1111
Do = O1O1O1O1O11OO11OO1111OOO1111
C1 = 111OOOO11OO11OO1O1O1O1O11111

D

1 = 1O1O1O1O11OO11OO1111OOO1111O

C2 = 11OOOO11OO11OO1O1O1O1O111111
D2 = O1O1O1O11OO11OO1111OOO1111O1


c3 : 0000110011001010101011111111
D> : 0101011001100111100011110101
c4 : 0011001100101010101111111100

D4 : 0101100110011110001111010101
c5 : 1100110010101010111111110000
D5 : 0110011001111000111101010101
c6 : 0011001010101011111111000011

D

1 : 1001100111100011110101010101


c7 : 1100101010101111111100001100

D7 : 0110011110001111010101010110
c8 : 0010101010111111110000110011

D8 : 1001111000111101010101011001
c9 : 0101010101111111100001100110

D9 : 0011110001111010101010110011
cio : 0101010111111110000110011001
D10 : 1111000111101010101011001100
cii : 0101011111111000011001100101

D

11 : 1100011110101010101100110011

ci6 : 0101111111100001100110010101
D16 : 0001111010101010110011001111
ci3 : 0111111110000110011001010101

D

1> : 0111101010101011001100111100

ci4 : 1111111000011001100101010101
D14 : 1110101010101100110011110001
ci5 : 1111100001100110010101010111

D


1

5

: 1010101010110011001111000111


cii: 1111000011001100101010101111


D16 : 0101010101100110011110001111
Bây giờ chúng ta sẽ tạo ra những khóa con Kn (1<=n<=16) từ những cặp Cn và Dn
sau khi biến đổi qua bảng PC-2. Những khóa Kn sau khi tạo ra chỉ có chiều dài là
48 bit.
1

A

T 28 15 i4 21 ?0
2 1 1 4 26 8
31 97 22 2 13 2
64 5 73 03 47 5
13 24 15 74 33 54
04 04 13 55 34 85
44 94 95 63 29 33
6 2 0 PC-2
6
2
Ta có thể thấy rằng sau khi qua bảng biến đổi PC-2 thì bit thứ 14 của CnDn sẽ là bit

đâu tiên của Kn .v.v...
Với khóa đấu tiên ta có
C1D1= 11100001100110010101010111111010101011001100111100011110
=>K1 = 000110 110000 001011 101111 111111 000111 000001 110010
Tuong tự ta có:
K2 = 011110 011010 111011 011001 110110 111100 100111 100101
K> = 010101 011111 110010 001010 010000 101100 111110 011001
K4 = 011100 101010 110111 010110 110110 110011 010100 011101
K5 = 011111 001110 110000 000111 111010 110101 001110 101000
K6 = 011000 111010 010100 111110 010100 000111 101100 101111
K7 = 111011 001000 010010 110111 111101 100001 100010 111100
Ks = 111101 111000 101000 111010 110000 010011 101111 111011
K9 = 111000 001101 101111 101011 111011 011110 011110 000001
K10 = 101100 011111 001101 000111 101110 100100 011001 001111
K11 = 001000 010101 111111 010011 110111 101101 001110 000110
KI2 = 011101 010111 000111 110101 100101 000110 011111 101001

1> = 100101 111100 010111 010001 111110 101011 101001
K
= 010111 110100 001110 110111 111100 101110 011100
K1 = 101111 111001 000110 001101 001111 010011 111100
K1 = 110010 110011 110110 001011 000011 100001 011111 110101
K

14

5
6

Kết thúc buớc một ta đã thu đuợc 16 khóa con.


000001
111010
001010


Bước 2. Mã hóa khổi thơng tin 64 bit
Ta tìm hoán vị IP (Inỉtỉaỉ Permutatỉon) cho chuổi M 64 bit cấn mã hóa. Bit thử 58
của M trở thành bit đấu tiên của IP, bit 50 trở thành bit thử hai của IP và bit cuối
cùng của IP là bit thử 7 của M.
IP

5
86
60
6
45
75
96
61

5
05
25
5
64
95
15
35


42

3

44 436
46 38
48 40
41 33
43 35
45 37
47 39

2
62
83
3
22
52
72
93

18

1
01
21
1
69

20

22
24
17
19 1
21 11
23 31

2
4
6
8
1
3
5
7

Thực hiện hoán vị trên, ta được:
M = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101
1110 1111
IP = 1100 1100 0000 0000 1100 1100 1111 1111 1111 0000 1010 1010 1111 0000

1010 1010
Ta thấy bit thử 58 của M là bit “1” trở thành bit đấu tiên của IP. Bit thử 50 của M là
bit “1” trở thành bit thử hai của IP và bit thử 7 của M là bit “0” trở thành bit cuối
cùng của IP.
Ke đen, khối thông tin IP được tách làm 2 phấn 32 bit, 32 bit trái Lovà 32 bit
phảiRo:
Lo = 1100 1100 0000 0000 1100 1100 1111 1111
Ro = 1111 0000 1010 1010 1111 0000 1010 1010
Chu trình sau được lặp lại 16 lấn (1 < n > 16), mổi khối 32 bit sẽ được xử lí tuấn tự

thơng qua hàm F. Ta có cơng thửc sau (dấu + thể hiện phép tốn XOR):
Ln : Rn-1
Rn : Ln-1 + f (Rn-1, Kn)
L16R16 là khối cuối cùng (n = 16). Ở mổi vòng lặp, ta lấy 32 bit phải của kết quả

trước gán cho 32 bit trái của bước hiện tại. 32 bit phải của bước hiện tại được tính
bằng cách lấy 32 bit trái của bước trước XOR với hàm F.
Với n = 1 ta có:
K1 = 000110 110000 001011 101111 111111 000111 000001 110010
L1 = Ro = 1111 0000 1010 1010 1111 0000 1010 1010
R1 = Lo + F (Ro, K1)
Hàm F được tính như sau:
Mở rộng: đấu tiên mở rộng khổi Rn-1 từ 32 bit thành 48 bit bằng cách sử dụng bảng
chọn E để lặp lại một sổ bit trong Rn-1. Đấu vào của E(Rn-1) là một khổi 32 bit và
đấu ra là khổi 48 bit.


Đấu ra của E là 48 bit, được viết thành 8 khổi, mỗi khổi 6 bit bằng cách chọn một
sổ bit từ đấu vào theo bảng bên dưới:
E BIT-SELECTION TABLE

3
4
8
1
21
26
02
42


1
5
9
1
31
72
12
52

2
3
6 7
10 11
14 15
18 19
22
26
30

45
89
12 1
1
62
23 0 2
27 4 2
31 8 3

3
1

72
21
52
91

Tính E(Ro) từ Ro
R°: 1111 0000 1010 1010 1111 0000 1010 1010
E(Ro) : 011110 100001 010101 010101 011110 100001 010101 010101
Bit thứ 32 của R° được lặp lại 2 lấn trong E(Ro) ở vị trí thứ nhất và vị trí thứ 63.

Ta thấy với mỗi khổi 4 bit ban đấu trong R0 đã được mở rộng thành khổi 6 bit trong
E(Ro).
Trộn khỏa: bước kế trong việc tính F là thức hiện phép XOR E(Rn-i) với khóa Kn0
Kn + E(Rn-1)

Đổi với khóa K1 và E(Ro) ta có:
K1 : 000110 110000 001011 101111 111111 000111 000001 110010
E(Ro) : 011110 100001 010101 010101 011110 100001 010101 010101
Ki+E(Ro) : 011000 010001 011110 111010 100001 100110 010100 100111
Thay thế: 48 bit sau khi trộn khóa được chia làm 8 khổi con 6 bit và được xử lý qua
hộp thay thế S-box. Mỗi nhóm 6 bit cho một địa chỉ khác nhau trong S-box, dựa
vào địa chỉ này để thay thế các nhóm 6 bit thành các nhóm 4 bit tưong ứng.
Kết quả ở bước trước được viết lại theo nhóm 6 bit:
Kn + E(Vn-i) =B1B2B3B4B5B6B7B8
Tính:
SI(BI)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8)
Dựa vào hàm Sl, S2,..., S8 để thay thế các khổi 6 bit bằng khổi 4 bit.
Sau đây là bảng S1.
j
i

o 1 2 3 4 5 6 7 8 9 1o 11 12 13 14 15


- Xác đinh hang i: lây bit đâu tiên và bit cuôi cùng của B ghép lại được một sô
trong
hệ nhị phân có giá trị từ 00 đến 11, đổi sô này sang hệ thập phân (giá trị từ 0 đến
3)
ta xác định được hàng i trong bảng S1.
- Xác định cột j: lây 4 bit ở giữa của B đổi sang hệ thập phân (có giá trị từ 0 đến
15,
giá trị nhị phân là 0000 đến 1111) ta xác định được cột j trong bảng S1.
- từ i và j vừa tìm được, tìm trong bảng S1 được giá trị ở hệ thập phân, đổi giá trị
này sang hệ nhị phân, giá trị nhị phân này chính là kết quả của việc tính S1(B).
Vỉ dụ:
B : 011011
Bit đâu tiên là 0, bit cuôi cùng là 1, ghép lại thành 01, đổi sang thập phân được 1,
vậy 1 là hàng trong bảng S1.
1 bit ở giữa là 1101, đổi sang thập phân là 13, vậy 13 là thứ tự cột trong bảng S1.
Tìm trong bảng S1 hàng 1, cột 13 được giá trị 5, đổi sang nhị phân được 0101.
0101
là kết quả của việc tính S1(B)
Vậy 5(011011) : 0101.
Bảng S1, S2... S8 được chỉ ra sau đây:
S1

14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
41 14 8 13 6 2 11 15 12 9 7 3 10 5 0
15 12 8 2 4 9 1 7


5 11 3 14 10 0 6 13

S2

S3
10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8


×