Tải bản đầy đủ (.pdf) (49 trang)

Bài tập lớn an toàn và bảo mật thông tin ứng dụng thuật toán des và lược đồ chia sẻ bí mật trong đăng ký bỏ phiếu điện tử

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 (974.26 KB, 49 trang )

lOMoARcPSD|39474592

BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

–––––––––––––––––––––––

BÀI TẬP LỚN
Mơn: An tồn và bảo mật thơng tin

ỨNG DỤNG THUẬT TỐN DES VÀ LƯỢC
ĐỒ CHIA SẺ BÍ MẬT TRONG ĐĂNG KÝ

BỎ PHIẾU ĐIỆN TỬ

GVHD: Th.s Trần Phương Nhung
Lớp: 20223IT6001001
Nhóm: 7
Sinh viên: Đào Mạnh Hùng_2019605134
Lã Đức Huy_2018601640
Đào Phi Hùng _2020605473
Đinh Tấn Hưng_2020603858
Hoàng Ngọc Hưng_2021601525

Hà Nội – 2023

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

MỤC LỤC



LỜI NÓI ĐẦU.................................................................................................................................. 1
DANH MỤC HÌNH ẢNH............................................................................................................2
Chương 1. Tổng quan an tồn và bảo mật thông tin.............................................................3

1. Tổng quan................................................................................................................................. 3
1.1. Sự cần thiết của an tồn và bảo mật thơng tin.......................................................3
1.2. An tồn và bảo mật thơng tin....................................................................................3
1.2.1. Khái niệm.................................................................................................................3
1.2.2. Các loại hình tấn cơng..........................................................................................3
1.2.3. Các yêu cầu an toàn bảo mật thông tin...........................................................4
1.2.4. Các mức độ bảo vệ................................................................................................4
1.3. Các phương pháp mã hóa cổ điển.............................................................................5
1.3.1. An tồn thơng tin bằng mật mã.........................................................................5
1.3.2. Hệ mật mã................................................................................................................5

2. CHUẨN MÃ DỮ LIỆU DES.............................................................................................8
2.1. Giới thiệu.......................................................................................................................... 8
2.2. Đặc điểm thuật toán DES............................................................................................8
2.3. Ưu điểm và nhược điểm của thuật toán DES........................................................9
2.4. Thuật toán DES............................................................................................................10
2.4.1. Q trình mã hóa.................................................................................................10
2.4.2. Hàm F..................................................................................................................... 12
2.4.3. Hộp S......................................................................................................................13
2.4.4. Tạo khóa K............................................................................................................15
2.4.5. Quá trình giải mã................................................................................................16
2.4.6. Bài tốn mã hóa và giải mã sử dụng thuật toán DES..............................17

Downloaded by nhim nhim ()


lOMoARcPSD|39474592

Chương 2. Kết quả nghiên cứu.................................................................................................22
1. Giới thiệu................................................................................................................................22
2. Nội dung thuật toán.............................................................................................................22
2.1. Bài toán chia sẻ bí mật...............................................................................................22
2.1.1. Khái niệm..............................................................................................................22
2.1.2. Các sơ đồ chia sẻ bí mật...................................................................................24
2.2. Áp dụng thuật toán DES và lược đồ chia sẻ bí mật vào đăng ký bỏ phiếu
điện tử......................................................................................................................................28
2.2.1. Bài toán ứng dụng...............................................................................................28
2.2.2. Chương trình........................................................................................................28
3. THIẾT KẾ, CÀI ĐẶT CHƯƠNG TRÌNH DEMO..................................................29
4. THỰC HIỆN BÀI TỐN.................................................................................................32
4.1. Phân cơng cơng việc...................................................................................................32
4.2. Đào Phi Hùng – Tổng quan về an tồn bảo mật thơng tin..............................32
4.3. Đào Mạnh Hùng – Tìm hiểu thuật tốn DES.....................................................34
4.4. Hồng Ngọc Hưng - Q trình mã hóa thuật toán DES..................................37
4.5. Lã Đức Huy – Q trình giải mã thuật tốn DES.............................................39
4.6. Đinh Tấn Hưng – Tìm hiểu chia sẻ bí mật và sơ đồ chia sẻ bí mật.............41

Chương 3: Kiến thức lĩnh hội và bài học kinh nghiệm......................................................44
3.1. Nội dung đã thực hiện.....................................................................................................44
3.2. Hướng phát triển...............................................................................................................44

TÀI LIỆU THAM KHẢO..........................................................................................................45

Downloaded by nhim nhim ()

lOMoARcPSD|39474592


LỜI NÓI ĐẦU

Với sự bùng nổ mạnh của công nghệ thông tin và sự phát triển của mạng
Internet nên việc trao đổi thông tin trở nên dễ dàng hơn bao giờ hết. Tuy nhiên, phát
sinh thêm một vấn đề ngày càng trở nên cấp bách và cần thiết về yêu cầu an toàn
mạng, an ninh dữ liệu, bảo mật thông tin trong môi trường mạng cũng như trong
thực tiễn.

An toàn thông tin bằng mật mã là một trong các phương pháp đáp ứng nhu
cầu trên. Ở đề tài này nhóm em đề cập tới thuật tốn mã hóa DES (Data Encryption
Standard). Tuy rằng DES hiện nay không c漃n được đánh giá cao về độ an tồn tuyệt
đối nhưng nó vẫn được ứng dụng trong nhiều lĩnh vực thực tiễn.

Bên cạnh mã hóa thơng tin, lược đồ chia sẻ bí mật cũng được dùng để chia
nhỏ thơng tin trong q trình truyền đi để đảm bảo an toàn dữ liệu. Sơ đồ chia sẻ bí
mật thường được sử dụng để chia sẻ mật khẩu, khóa mã hóa trong đó có khóa mã
hóa của DES.

Để ứng dụng 2 phương pháp trên vào thực tiễn, được sự hướng dẫn của cô
Trần Phương Nhung, chúng em lựa chọn đề tài “Ứng dụng thuật toán DES v愃
lược đồ chia sẻ bí mật trong đăng ký bỏ phiếu điện tử” với mong muốn áp dụng
kiến thức đã học để giải quyết bài toán đăng ký bỏ phiếu điện tử.

Đề tài nhóm gồm 3 phần:
Phần 1: An tồn vào bảo mật thơng tin.
Phần 2: Kết quả nghiên cứu.
Phần 3: Kiến thức lĩnh hội và bài học kinh nghiệm.
Đề tài được hoàn thành bằng sự cộng tác của các thành viên nhóm cùng sự
hướng dẫn của cô Trần Phương Nhung. Nội dung đề tài được hoàn thành dựa trên

những lý thuyết đã học về thuật toán DES cùng nhiều tài liệu tham khảo khác tuy
nhiên khơng tránh khỏi thiếu xót mong nhận thêm phản ánh và góp ý từ phía giảng
viên và quý bạn đọc.

1

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

DANH MỤC HÌNH ẢNH

Hình 1. Các u cầu an tồn bảo mật thơng tin.........................................................6
Hình 2. Các mức độ bảo vệ thơng tin........................................................................7
Hình 3. Các hệ mật mã cổ điển................................................................................10
Hình 4. Sơ đồ một v漃ng DES..................................................................................12
Hình 5. Chia xâu x0 thành 2 khối L0 và R0...............................................................13
Hình 6. Sơ đồ hàm F................................................................................................15
Hình 7. Sơ đồ tạo khóa con......................................................................................18
Hình 8. Q trình phân phối khóa............................................................................30
Hình 9. Giao diện chương trình...............................................................................32
Hình 10. Giao diện chia sẻ khóa bí mật...................................................................33
Hình 11. Giao diện khơi phục khóa bí mật..............................................................34
Hình 12. Giao diện demo mã hóa DES ngơn ngữ JS...............................................37
Hình 13. Giao diện chia sẻ khóa và khơi phục khóa ngơn ngữ JS...........................38
Hình 14. Giao diện mã hóa DES ngơn ngữ python..................................................40
Hình 15. Giao diện chia sẻ khóa và khơi phục khóa ngơn ngữ python....................40
Hình 16. Giao diện mã hóa DES và chia sẻ khóa ngơn ngữ C#...............................42
Hình 17. Giao diện mã hóa và giải mã khóa ngơn ngữ Java....................................43
Hình 18. Giao diện chia sẻ và khơi phục khóa ngơn ngữ Java.................................43

Hình 19. Giao diện mã hóa DES ngơn ngữ PHP.....................................................44
Hình 20. Giao diện chia sẻ khóa ngơn ngữ PHP......................................................45
Hình 21. Giao diện khơi phục khóa ngơn ngữ PHP.................................................45

Chương 1. Tổng quan an tồn và bảo mật thơng tin
1. Tổng quan

2

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

1.1. Sự cần thiết của an toàn và bảo mật thông tin
Ngày nay, với sự phát triển mạnh mẽ của Công nghệ thông tin và mạng

Internet đã giúp cho việc trao đổi thông tin trở nên nhanh gọn, dễ dàng, ngày càng
có nhiều thơng tin được số hố trên máy tính và lưu trữ cũng như truyền đi trên
mạng Internet. Chính vì vậy nên nhu cầu về an tồn và bảo mật thơng tin trên máy
tính là hết sức cấp thiết.
1.2. An tồn và bảo mật thơng tin
1.2.1. Khái niệm

An toàn thông tin (Information Security) là việc bảo vệ chống truy nhập, sử
dụng, tiết lộ, sửa đổi hoặc phá hủy thông tin một cách trái phép. An tồn thơng tin
c漃n bao gồm cả việc đảm bảo an toàn cho các thành phần hoặc hệ thống được sử
dụng để quản lý, lưu trữ, xử lý và trao đổi thông tin.

Hệ thống thông tin an tồn là hệ thống đảm bảo an tồn thơng tin, đảm bảo
hệ thống có khả năng hoạt động liên tục và đảm bảo khả năng phục hồi.


Bảo mật hệ thống thông tin là đảm bảo tính bí mật, tính tồn vẹn và tính sẵn
sàng của hệ thống thơng tin.
1.2.2. Các loại hình tấn công

Định nghĩa chung: Tấn cơng là hoạt động có chủ ý của kẻ gian muốn lợi
dụng các thuong tổn của hệ thống thơng tin và tiến hành phá vỡ tính bí mật, tính
tồn vẹn và tính sẵng sàng của hệ thống thông tin.

Các loại hình tấn cơng phổ biến:
− Xem trộm thông tin: kẻ gian chặn các thông điệp và xem được nội dung

của thông tin.
− Thay đổi thông điệp: kẻ gian chặn các thông điệp và thay đổi nội dung

của thông tin.
− Mạo danh: kẻ gian giả danh là người gửi để gửi thông tin.

− Phát lại thông điệp: kẻ gian sao chép lại thông tin và gửi đi.

3

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

1.2.3. Các yêu cầu an toàn bảo mật thông tin
Ngày nay, với sự phát triển rất nhanh của khoa học công nghệ, các biện pháp

tấn công ngày càng tinh xảo hơn, độ an tồn của thơng tin có thể bị đe dọa từ nhiều

nơi, theo nhiều cách khác nhau, chúng ta cần phải đưa ra các chính sách đề ph漃ng
thích hợp. Các yêu cầu cần thiết của việc bảo vệ thông tin và tài nguyên:

Hình 1. Các u cầu an tồn bảo mật thông tin
− Đảm bảo tính bảo mật (Confidentiality): Ngăn ngừa việc tiết lộ trái phép

thông tin quan trọng với người không được phép. Thông tin được che
giấu với người không được cấp phép.
− Đảm bảo tính tồn vẹn (Integrity): Thơng tin và tài nguyên không thể bị
sửa đổi, bị thay thế bởi những người khơng có quyền hạn.
− Đảm bảo tính sẵn sàng (Availability): Thơng tin và tài ngun ln sẵn
sàng để đáp ứng sử dụng cho người có quyền hạn.
1.2.4. Các mức độ bảo vệ

Hình 2. Các mức độ bảo vệ thông tin

4
Downloaded by nhim nhim ()

lOMoARcPSD|39474592

Tường lửa: Ngăn chặn thâm nhập trái phép và lọc bỏ các gói tin khơng muốn
gửi hoặc nhận vì các lý do nào đó để bảo vệ một máy tính hoặc cả mạng nội bộ
(intranet).

Bảo vệ vật lý: Ngăn cản các truy nhập vật lý vào hệ thống.
Mã hoá dữ liệu: Dữ liệu bị biến đổi từ dạng nhận thức được sang dạng khơng
nhận thức được theo một thuật tốn nào đó và sẽ được biến đổi ngược lại ở trạm
nhận (giải mã).
Đăng ký và mật khẩu: Thực ra đây cũng là kiểm soát quyền truy nhập, nhưng

không phải truy nhập ở mức thông tin mà ở mức hệ thống.
Quyền truy nhập: Là lớp bảo vệ trong cùng nhằm kiểm soát các tài nguyên
của mạng và quyền hạn trên tài nguyên đó.
1.3. Các phương pháp mã hóa cổ điển
1.3.1. An tồn thơng tin bằng mật mã
Mật mã là một ngành khoa học chuyên nghiên cứu các phương pháp truyền
tin bí mật. Mật mã bao gồm lập mã và phá mã.
− Lập mã bao gồm mã hóa và giải mã. Sản phẩm là các hệ mã mật, các hàm

băm, các hệ chữ ký điện tử, các cơ chế phân phối, quản lý khóa và các
giao thức mật mã.
− Phá mã bao gồm phá mã hoặc tạo mã giả. Sản phẩm là các phương pháp
phá mã, các phương pháp giả mạo chữ ký, các phương pháp tấn công các
hàm băm và các giao thức mật mã.
1.3.2. Hệ mật mã
 Vai tr漃 của hệ mật mã:
− Hệ mật mã phải che dấu được nội dung của văn bản rõ (PlainText).

− Tạo các yếu tố xác thực thông tin, đảm bảo thông tin lưu hành trong hệ
thông đến người nhận hợp pháp là xác thực (Authenticity).

− 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.

 Khái niệm cơ bản:

5

Downloaded by nhim nhim ()


lOMoARcPSD|39474592

− Bản rõ X được gọi là là bản tin gốc. Bản rõ có thể được chia nhỏ có kích
thước phù hợp.

− Bản mã Y là bản tin gốc đã được mã hoá. Ở đây ta thường xét phương
pháp mã hóa mà khơng làm thay đổi kích thước của bản rõ, tức là chúng
có cùng độ dài.

− Mã là thuật toán E chuyển bản rõ thành bản mã. Thông thường chúng ta
cần thuật tốn mã hóa mạnh, cho dù kẻ thù biết được thuật tốn, nhưng
khơng biết thơng tin về khóa cũng khơng tìm được bản rõ.

− Khố K là thơng tin tham số dùng để mã hố, chỉ có người gửi và người
nhận biết. Khóa là độc lập với bản rõ và có độ dài phù hợp với yêu cầu
bảo mật.

− Mã hố là q trình chuyển bản rõ thành bản mã, thông thường bao gồm
việc áp dụng thuật tốn mã hóa và một số q trình xử lý thơng tin kèm
theo.

− Giải mã là quá trình chuyển bản mã thành bản rõ, đây là quá trình ngược
lại của mã hóa.

 Một hệ mã mật là bộ 5 (P, C, K, E, D) thoả mãn các điều kiện sau:
− P là không gian bản rõ: là tập hữu hạn các bản rõ có thể có.

− C là không gian bản mã: là tập hữu hạn các bản mã có thể có.

− K là kkhơng gian khố: là tập hữu hạn các khố có thế có.

+ Đối với mỗi k ∈ K có một quy tắc mã: eK: P → C và một quy tắc

giải mã tương ứng dK: C → P.
+ Với 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àm giải mã dK chính là ánh xạ ngược của hàm mã hóa eK.

 Phân loại hệ mật mã:

6

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

− Hệ mật mã đối xứng (hay c漃n gọi là mật mã khóa bí mật): là những hệ
mật dùng chung một khoá cả trong q trình mã hố dữ liệu và giải mã
dữ liệu. Do đó khố phải được giữ bí mật tuyệt đối. Một số thuật tốt nổi
tiếng trong mã hoá đối xứng là: DES, Triple DES(3DES), RC4, AES...

− Hệ mật mã bất đối xứng (hay c漃n gọi là mật mã khóa cơng khai):
+ Các hệ mật này dùng một khoá để mã hoá sau đó dùng một khố

khác để giải mã, nghĩa là khố để mã hoá và giải mã là khác nhau.
+ Các khoá này tạo nên từng cặp chuyển đổi ngược nhau và không có

khố nào có thể suy được từ khố kia. Khố dùng để mã hố có thể cơng
khai - Public Key nhưng khố dùng để giải mã phải giữ bí mật - Private Key.
Một số thuật tốn mã hố cơng khai nổi tiếng: Diffle-Hellman, RSA...

 Có ba phương pháp chính cho việc mã hố và giải mã:
− Sử dụng khóa đối xứng.
− Sử dụng khóa bất đối xứng.
− Sử dụng hàm băm một chiều.
 Các hệ mật mã cổ điển:

Hình 3. Các hệ mật mã cổ điển.

7
Downloaded by nhim nhim ()

lOMoARcPSD|39474592

2. CHUẨN MÃ DỮ LIỆU DES

2.1. Giới thiệu
Vào những năm đầu thập kỷ 70, nhu cầu có một chuẩn chung về thuật toán

mật mã đã trở nên rõ ràng. Các lý do chính là:
− Sự phát triển của công nghệ thông tin và của nhu cầu an toàn & bảo mật
thông tin: sự ra đời của các mạng máy tính tiền thân của Internet đã cho
phép khả năng hợp tác và liên lạc số hóa giữa nhiều công ty, tổ chức
trong các dự án lớn của chính phủ Mỹ.
− Các thuật tốn mã hóa cổ điển khơng thể đảm bảo được tính tin cậy đ漃i
hỏi cao.
− Các thiết bị khác nhau đ漃i hỏi sự trao đổi thông tin mật mã thống nhất,
chuẩn.
Một chuẩn chung cần thiết phải có với các thuộc tính như:
− Bảo mật ở mức cao.


− Thuật toán được đặc tả và hồn tồn cơng khai, tức là tính bảo mật không
được phép dựa trên những những đặc điểm của thuật tốn mã hóa.

− Việc cài đặt phải dễ dàng để đem lại tính kinh tế.

− Phải mềm dẻo để áp dụng được cho muôn vàn nhu cầu ứng dụng.
Năm 1972, Viện tiêu chuẩn và công nghệ quốc gia Hoa kỳ (National Institute
of Standards and Technology - NIST) đặt ra yêu cầu xây dựng một thuật tốn mã
hố bảo mật thơng tin với yêu cầu là dễ thực hiện, sử dụng được rộng rãi trong
nhiều lĩnh vực và mức độ bảo mật cao. Năm 1974, IBM giới thiệu thuật toán
Lucifer, thuật toán này đáp ứng hầu hết các yêu cầu của NIST. Sau một số sửa đổi,
năm 1976, Lucifer được NIST công nhận là chuẩn quốc gia Hoa kỳ và được đổi tên
thành Data Encryption Standard (DES).

8

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

DES là thuật toán mã hoá bảo mật được sử dụng rộng rãi nhất trên thế giới,
tồn tại trong nhiều lĩnh vực như ngân hàng, thương mại, thông tin… và vẫn được tin
dùng trong 2 thập kỷ sau đó, trước khi bị thay thế bởi AES.
2.2. Đặc điểm thuật toán DES

− DES là thuật toán mã hóa khối, độ dài mỗi khối là 64 bit.

− Khóa dùng trong DES có độ dài tồn bộ là 64 bit. Tuy nhiên chỉ có 56 bit
thực sự được sử dụng và 8 bit c漃n lại dùng cho việc kiểm tra.


− DES xuất ra bản mã 64 bit.

− Thuật toán DES được thực hiện 16 v漃ng.

− DES là hệ mật mã đối xứng vì vậy q trình mã hóa và giải mã sử dụng cùng
một khóa.

− DES được thiết kế chạy trên phần cứng.

2.3. Ưu điểm và nhược điểm của thuật toán DES
 Ưu điểm:
Nếu dữ liệu đang lựa chọn bảo vệ chỉ có tuổi thọ vài giờ thì lựa chọn DES là

hợp lý. Phương pháp mã hoá DES nhanh hơn so với thuật toán TDES/AES.
 Nhược điểm:
Hiện nay DES được xem là khơng đủ an tồ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ờ. Đã có rất nhiều kết quả phân tích cho thấy những điểm yếu
về mặt lý thuyết của mã hóa có thể dẫn đến phá khóa, tuy chúng khơng khả thi
trong thực tiễn. Thuật tốn được tin tưởng là an tồn trong thực tiễn có dạng Triple
DES (thực hiện DES ba lần), mặc dù | trên lý thuyết phương pháp này vẫn có thể bị
phá. Gần đây DES đã được thay thế bằng AES (Advanced Encryption Standard, hay
Tiêu chuẩn Mã hóa Tiên tiến).

Mặc dù đã có nhiều nghiên cứu về phá mã DES hơn bất kỳ phương pháp mã
hóa khối nào khác nhưng phương pháp phá mã thực tế nhất hiện nay vẫn là tấn công

9


Downloaded by nhim nhim ()

lOMoARcPSD|39474592

kiều duyệt tồn bộ. Nhiều đặc tính mật mã hóa của DES đã được xác định và từ đó
ba phương pháp phá mã khác được xác định với mức độ phức tạp nhỏ hơn tấn cơng
duyệt tồn bộ. Tuy nhiên các phương pháp này đ漃i hỏi một số lượng bản rõ quá lớn
(để tấn công lựa chọn bàn rõ) nên hầu như không thể thực hiện được trong thực tế.

“NSA (National Standards Association) coi DES là một trong những sai lầm
lớn nhất. Nếu họ biết trước rằng chi tiết của thuật tốn sẽ được cơng bố để mọi
người có thể viết chương trình phần mềm, họ sẽ khơng bao giờ đồng ý.”
2.4. Thuật toán DES

Hình 4. Sơ đồ một vịng DES

2.4.1. Q trình mã hóa
Q trình mã hóa gồm 3 giai đoạn.

a) Giai đoạn 1:

10
Downloaded by nhim nhim ()

lOMoARcPSD|39474592

Bản rõ x (64 bit) được hoán vị khởi tạo IP (Initial Permutation) tạo nên
xâu bit x0. Chia x0 thành 2 khối L0 gồm 32 bit đầu tiên và R0 gồm 32 bit cuối.

x0 = IP(x) = L0R0


Hình 5. Chia xâu x0 thành 2 khối L0 và R0

58 50 42 34 26 18 10 2 L0 (32 bit)
60 52 44 36 28 20 12 4 R0 (32 bit)
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7

Bảng 1: Hoán vị IP.
Hoán vị IP nhằm đổi chỗ khối dữ liệu vào, thay đổi vị trí của các bit trong
khối dữ liệu vào. Ví dụ: hoán vị IP chuyển bit 1 thành bit 58, bit 2 thành bit 50, bit 3
thành bit 42…

b) Giai đoạn 2:

Từ L0 và R0 sẽ lặp 16 v漃ng, tại mỗi v漃ng tính :
Li = Ri-1

Ri = Li-1 ⊕ f(Ri-1, Ki) với 𝐢 = 𝟏, 𝟏𝟔

Trong đó:
⊕ là phép XOR của 2 xâu bit.
Ki là các xâu có độ dài 48 bit được tính như là các hàm của khóa
K. K1 đến K16 lập nên một lịch khóa.

c) Giai đoạn 3:

Áp dụng hoán vị ngược IP-1 cho xâu bit R16L16 để thu dược bản mã y (64

bit).

11

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

y = IP-1(R16L16)

40 8 48 16 56 24 64 32
39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30
37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28
35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26
33 1 41 9 49 17 57 25

Bảng 2: Hoán vị IP-1.

2.4.2. Hàm F

Hình 6. Sơ đồ hàm F
Hàm F lấy đối số đầu tiên là xâu nhập Ri-1 (32 bit), đối số thứ hai là Ki (48
bit) và tạo ra xâu xuất có độ dài 32 bit.
Hàm F được thực hiện qua các bước:
+) Bước 1: Đới số đầu tiên Ri-1 sẽ được “mở rộng” thành xâu có độ dài 48 bit

thông qua hàm mở rộng E cố định.
Hàm mở rộng E: E(Ri-1) bao gồm 32 bit từ Ri-1, được hoán vị theo một cách
thức xác định với 16 bit được tạo ra 2 lần.

12

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

32 1 2 3 4 5
456789
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
Bảng 3: Hàm mở rộng E.

+) Bước 2: Tính E(Ri-1) ⊕ Ki thu được kết quả là một khối 48 bit. Khối này sẽ
được chia thành 8 khối mỗi khối 6 bit. B = B1B2B3B4B5B6B7B8

+) Bước 3: Cho các khối Bi đi qua hộp Si sẽ biến một khối 6 bit thành một
khối Ci 4 bit.

+) Bước 4: Xâu bit C = C1C2C3C4C5C6C7C8 có độ dài 32 bit được hoán vị
tương ứng với hoán vị cố đinh P. Kết quả là P(C) = f(Ri-1, K1).

16 7 20 21 29 12 28 17

1 15 23 26 5 18 31 10
2 8 24 14 32 27 3 9
19 13 30 6 22 11 14 25

Bảng 4: Hoán vị cố định P.

2.4.3. Hộp S
− Dữ liệu vào 6 bit cho ra kết quả 4 bit. Dữ liệu ra là giao của hàng và cột.
− Mỗi hộp S-box là một bảng gồm 4 hàng 16 cột được đánh số từ 0. Như vậy

mỗi hộp S có hàng 0, 1, 2, 3; cột 0, 1, ... ,15. Mỗi phần tử của hộp là một số 4 bit.
Sáu bit vào hộp S sẽ xác định số hàng và số cột để tìm kết quả ra.

− Mỗi khối Bi có 6 bit kí hiệu là b1, b2, b3, b4, b5 và b6. Bit b1 và b6 được kết hợp
thành một số 2 bit, nhận giá trị từ 0 đến 3, tương ứng với một hàng trong bảng S.
Bốn bit ở giữa từ b2 tới b5 được kết hợp thành một số 4 bit, nhận giá trị từ 0 đến 15,
tương ứng với một cột trong bảng S.

13

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

S

1

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

4 1 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
S

2

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

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

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

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

3

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

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

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

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

4


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

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

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

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

5

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

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

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

S
6

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

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

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

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


14

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

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

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

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

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

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

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

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

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

Bảng 5: S-box.

2.4.4. Tạo khóa K


Hình 7. Sơ đồ tạo khóa con
Khóa K là một xâu có độ dài 64 bit trong đó 56 bit dùng làm khóa và 8 bit

15

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

dùng để kiểm tra sự bằng nhau để phát hiện lỗi. Các bit ở các vị trí 8, 16, 24, 32, 40,
48, 56, 64 được xác định là các bit kiểm tra.

Q trình tạo khóa con:
− Cho khóa K 64 bit, loại bỏ các bit kiểm tra tại các vị trí 8, 16, 24, 32, 40,

48, 56, 64. Thực hiện hoán vị các bit c漃n lại của K tương ứng với hoán vị
cố định PC-1.
57 49 41 33 25 17 9 1 58 50 42 34 26 18
10 2 59 51 43 35 27 19 11 3 60 52 44 36
63 55 47 39 31 23 15 7 62 54 46 38 30 22
14 6 61 53 45 37 29 21 13 5 28 20 12 4

Bảng 6: Hoán vị cố định PC-1.
− 56 bit kết quả được chia thành 2 khối C0 , D0 mỗi khối 28 bit trong dó

C0 gồm 28 bit đầu tiên và D0 gồm 28 bit c漃n lại.
PC-1(K) = C0D0

− Tại mỗi v漃ng lặp, Ci và Di sẽ có được từ phép dịch trái các bit của Ci-1 và
Di-1. Các v漃ng 1, 2, 9, 16 dịch trái 1 bit, các v漃ng c漃n lại dịch trái 2 bit.

Vòng lặp 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Số lần dịch trái 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1

Bảng 7: Bảng dịch bit tại các vòng lặp của DES.
− Sau khi dịch trái, cho xâu CiDi (56 bit) qua hoán vị cố định PC-2 thu

được khóa Ki (48 bit).

Ki = PC-2(CiDi)
14 17 11 24 1 5 3 28 15 6 21 10
23 19 12 4 26 8 16 7 27 20 13 2
41 52 31 37 47 55 30 40 51 45 33 48
44 49 39 56 34 53 46 42 50 36 29 32

Bảng 8: Hoán vị cố định PC-2.
2.4.5. Quá trình giải mã

Việc giải mã dùng cùng một thuật toán như việc mã hoá.

16

Downloaded by nhim nhim ()

lOMoARcPSD|39474592

Để giải mã dữ liệu đã được mã hố, q trình giống như mã hố được lặp lại

nhưng các chìa khố phụ được dùng theo thứ tự ngược lại từ K16 đến K1, nghĩa là


trong bước 2 của q trình mã hố dữ liệu đầu vào ở trên Ri-1 sẽ được XOR với K17-i

chứ khơng phải với Ki.

2.4.6. Bài tốn mã hóa và giải mã sử dụng thuật toán DES

Giả sử ta mã hóa bản rõ sau trong dạng thập lục phân 0123456789ABCDEF

và sử dụng khóa thập lục phân 133457799BBCDFF1.

Khóa trong dạng nhị phân khơng có các bit kiểm tra sẽ là:

00010010011010010101101111001001101101111011011111111000

Áp dụng hoán vị IP, ta nhận được L0 và R0 (trong dạng nhị phân):

L0 = 11001100000000001100110011111111

L1 = R0 = 11110000101010101111000010101010
16 v漃ng lặp mã hóa được thể hiện như sau:

E(R0) = 011110100001010101010101011110100001010101010101

K1 = 000110110000001011101111111111000111000001110010

E(R0) ⊕ K1 = 011000010001011110111010100001100110010100100111

S-box output = 01011100100000101011010110010111
f(R0,K1) = 00100011010010101010100110111011
L2 = R1 = 11101111010010100110010101000100


E(R1) = 011101011110101001010100001100001010101000001001
K2 = 011110011010111011011001110110111100100111100101
E(R1) ⊕ K2 = 000011000100010010001101111010110110001111101100
= 11111000110100000011101010101110
S-box output = 00111100101010111000011110100011
f(R1, K2) = 11001100000000010111011100001001
L3 = R2

17
Downloaded by nhim nhim ()


×