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

ỨNG DỤNG THUẬT TOÁN DES VÀ LƯỢC ĐỒ CHIA SẺ BÍ MẬT TRONG ĐANG 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 (1.04 MB, 47 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
–––––––––––––––––––––––

BÁO CÁO BÀI TẬP LỚN
MỘT SỐ CÔNG NGHỆ PHÁT TRIỂN PHẦN MỀM

ỨNG DỤNG THUẬT TOÁN DES VÀ LƯỢC
ĐỒ CHIA SẺ BÍ MẬT TRONG ĐANG KÝ
BỎ PHIẾU ĐIỆN TỬ
GVHD:

Th.s Trần Phương Nhung

Hà Nội – 2022


2

MỤC LỤC
DANH MỤC HÌNH ẢNH.........................................................................................4
LỜI NĨI ĐẦU ........................................................................................................5
PHẦN 1: AN TỒN VÀ BẢO MẬT THƠNG TIN.................................................6
CHƯƠNG 1: TỔNG QUAN.....................................................................................6
1.1. Sự cần thiết của an tồn và bảo mật thơng tin....................................................6
1.2. An tồn và bảo mật thơng tin.............................................................................6
1.2.1. Khái niệm........................................................................................................6
1.2.2. Các loại hình tấn cơng.....................................................................................6
1.2.3. Các u cầu an tồn bảo mật thơng tin............................................................6
1.3. Các phương pháp mã hóa cổ điển.......................................................................8
1.3.1. An tồn thơng tin bằng mật mã........................................................................8


1.3.2. Hệ mật mã.......................................................................................................8
CHƯƠNG 2: CHUẨN MÃ DỮ LIỆU DES............................................................10
2.1. Giới thiệu..........................................................................................................10
2.2. Đặc điểm thuật toán DES.................................................................................11
2.3. Ưu điểm và nhược điểm của thuật tốn DES....................................................12
2.4. Thuật tốn DES................................................................................................12
2.4.1. Q trình mã hóa...........................................................................................13
2.4.2. Hàm F............................................................................................................15
2.4.3. Hộp S.............................................................................................................16
2.4.4. Tạo khóa K....................................................................................................17
2.4.5. Q trình giải mã...........................................................................................19
2.4.6. Bài tốn mã hóa và giải mã sử dụng thuật toán DES.....................................19
PHẦN 2: KẾT QUẢ NGHIÊN CỨU......................................................................25
CHƯƠNG 1: GIỚI THIỆU.....................................................................................25
AN TỒN VÀ BẢO MẬT THƠNG TIN


3

CHƯƠNG 2: NỘI DUNG THUẬT TỐN.............................................................25
2.1. Bài tốn chia sẻ bí mật......................................................................................25
2.1.1. Khái niệm......................................................................................................25
2.1.2. Các sơ đồ chia sẻ bí mật................................................................................26
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ử
................................................................................................................................ 30
2.2.1. Bài tốn ứng dụng.........................................................................................30
2.2.2. Chương trình.................................................................................................30
CHƯƠNG 3: THIẾT KẾ, CÀI ĐẶT CHƯƠNG TRÌNH DEMO...........................32
CHƯƠNG 4: THỰC HIỆN BÀI TỐN.................................................................34
4.1. Phân cơng cơng việc.........................................................................................34

4.2. Hồng Đức Nam...............................................................................................35
4.3. Trần Quốc Nam................................................................................................37
4.4. Phan Thúy Nga.................................................................................................38
4.5. Lưu Viết Nghĩa.................................................................................................43
4.6. Trần Quốc Phi..................................................................................................45
PHẦN 3: KIẾN THỨC LĨNH HỘI VÀ BÀI HỌC KINH NGHIỆM......................46
3.1. Nội dung đã thực hiện......................................................................................46
3.2. Hướng phát triển...............................................................................................46
TÀI LIỆU THAM KHẢO.......................................................................................47

AN TỒN VÀ BẢO MẬT THƠNG TIN


4

DANH MỤC HÌNH ẢNH
Hình 1. Các u cầu an tồn bảo mật thơng tin.........................................................7
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..................................................................................13
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....................................................................36
Hình 13. Giao diện mã hóa DES.............................................................................38
Hình 14. Giao diện chia sẻ khóa và khơi phục khóa................................................38

Hình 15. Giao diện mã hóa DES.............................................................................41
Hình 16. Giao diện chia sẻ khóa..............................................................................42
Hình 17. Giao diện khơi phục khóa.........................................................................43
Hình 18. Chương trình chia sẻ và khơi phục khóa...................................................44
Hình 19. Giao diện chia sẻ khóa..............................................................................44
Hình 20. Chương trình demo...................................................................................45

AN TỒN VÀ BẢO MẬT THƠNG TIN


5

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 tồ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 tồ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à q bạn đọc.

AN TỒN VÀ BẢO MẬT THÔNG TIN


6

PHẦN 1: AN TỒN VÀ BẢO MẬT THƠNG TIN
CHƯƠNG 1: TỔNG QUAN
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 tồ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 tồ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.

1.2.3. Các yêu cầu an toàn bảo mật thơng tin

AN TỒN VÀ BẢO MẬT THƠNG TIN



7

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 u cầu cần thiết của việc bảo vệ thơng tin và tài ngun:

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.

AN TỒN VÀ BẢO MẬT THƠNG TIN



8

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 số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:


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.
AN TỒN VÀ BẢO MẬT THƠNG TIN


9



Bản mã Y là bản tin gốc đã được mã hố. Ở đâ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 tố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ã hoá 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à q 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ã:


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 khố 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 toá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):

AN TỒN VÀ BẢO MẬT THÔNG TIN


10


+ Các hệ mật này dùng một khoá để mã hố sau đó dùng một khố
khác để giải mã, nghĩa là khoá để 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.

CHƯƠNG 2: CHUẨN MÃ DỮ LIỆU DES
2.1. Giới thiệu

AN TỒN VÀ BẢO MẬT THƠNG TIN



11

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 tồ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 tố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).
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 tốn DES


DES là thuật tố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.

AN TỒN VÀ BẢO MẬT THƠNG TIN


12



Thuật tố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
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 tốn DES

AN TỒN VÀ BẢO MẬT THƠNG TIN


13

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


AN TOÀN VÀ BẢO MẬT THÔNG TIN


14

58
60
62
64
57
59
61
63

50
52
54
56
49
51
53
55

42
44
46
48
41
43
45

47

34
36
38
40
33
35
37
39

26
28
30
32
25
27
29
31

18
20
22
24
17
19
21
23

10

12
14
16
9
11
13
15

2
4
6
8
1
3
5
7

L0 (32 bit)

R0 (32 bit)

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
với 𝐢 = 𝟏, = 𝟏,, 𝟏,𝟔


Ri = Li-1  f(Ri-1, Ki)
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).
y = IP-1(R16L16)
40
39
38
37
36
35
34
33

8
7
6
5
4
3
2
1

48
47

46
45
44
43
42
41

16
15
14
13
12
11
10
9

56
55
54
53
52
51
50
49

24
23
22
21
20

19
18
17

64
63
62
61
60
59
58
57

32
31
30
29
28
27
26
25

Bảng 2: Hốn vị IP-1.
AN TỒN VÀ BẢO MẬT THƠNG TIN


15

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.
32
4
8
12
16
20
24
28

1
5
9
13
17
21
25
29

2
6
10
14

18
22
26
30

3
7
11
15
19
23
27
31

4
8
12
16
20
24
28
32

5
9
13
17
21
25
29

1

Bảng 3: Hàm mở rộng E.

AN TỒN VÀ BẢO MẬT THƠNG TIN


16

+) 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

2

8

5


18 31 10

24 14 32 27

19 13 30

6

3

9

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.
S1
14
0
4
15


4
15
1
12

13
7
14
8

1
4
8
2

15
3
0
13

1
13
14
8

8
4
7
10


14
7
11
1

2
14
13
4

15
2
6
9

11
13
2
1

8
1
11
7
S2

6 11
15 2
10 4

3 15

3
8
13
4

4
14
1
2

3
10
15
5

10
6
12
11

6
12
9
3

12
11
7

14

5
9
3
10

9
5
10
0

0
3
5
6

7
8
0
13

9
12
5
11

7
0
8

6

2
1
12
7

13
10
6
12

12
6
9
0

0
9
3
5

5
11
2
14

10
5
15

9

1
2
11

13
8
1

12
5
2

7
14
12

11
12
5

4
11
10

2
15
14


8
1
7

S3
10
13
13

0
7
6

9
0
4

14
9
9

6
3
8

3
4
15

15

6
3

5
10
0

AN TOÀN VÀ BẢO MẬT THÔNG TIN


17

1

10

13

0

6

9

8

7

4


15

14

3

11

5

2

12

1
4
15
9

2
7
1
4

8
2
3
5

5

12
14
11

11
1
5
12

12
10
2
7

4
14
8
2

15
9
4
14

8
5
15
6

5

0
9
15

3
15
12
0

15
10
5
9

13
3
6
10

0
9
3
4

14
8
0
5

9

6
14
3

0
6
7
11

13
1
0
14

3
13
4
1

4
14
10
7

14
0
1
6

7

11
13
0

5
3
11
8

11
8
6
13

S4
7
13
10
3

13
8
6
15

14
11
9
0


3
5
0
6

0
6
12
10

6
15
11
1

9
0
7
13

10
3
13
8
S5

2
14
4
11


12
11
2
8

4
2
1
12

1
12
11
7

7
4
10
0

10
7
13
14

11
13
7
2


6
1
8
13
S6

12
10
9
4

1
15
14
3

10
4
15
2

15
2
5
12

9
7
2

9

2
12
8
5

6
9
12
15

8
5
3
10

S7
4
13
1
6
13
1
7
2

11
0
4

11
2
15
11
1

2
11
11
13
8
13
4
14

14
7
13
8
4
8
1
7

15
4
12
1
6
10

9
4

0
9
3
4
15
3
12
10

8
1
7
10

13
10
14
7

3
14
10
9

12
3
15

5

9
5
6
0

7
12
8
15

5
2
0
14

10
15
5
2

6
8
9
3

1
6
2

12

11
7
14
8

S8
1 10
4 12
2
0
13 15

9
5
6
12

3
6
10
9

14
11
13
0

5

0
15
3

0
14
3
5

12
9
5
6

7
2
8
11

Bảng 5: S-box.
2.4.4. Tạo khóa K

AN TỒN VÀ BẢO MẬT THÔNG TIN


18

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
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 hố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
10
63
14

49
2
55
6

41
59
47
61

33
51
39
53

25 17

9
1
58 50
43 35 27 19 11
3
31 23 15
7
62 54
45 37 29 21 13
5
Bảng 6: Hốn vị cố định PC-1.

42
60
46
28

34
52
38
20

26
44
30
12

18
36
22

4

AN TỒN VÀ BẢO MẬT THÔNG TIN


19



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 C i-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

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

3 4 5 6 7 8 9 10 11 12 13

14 15 16

22 2 2 2 2 1


2

2

2

2 2

2

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 hốn vị cố định PC-2 thu
được khóa Ki (48 bit).
Ki = PC-2(CiDi)
14 17 11 24

1

5

3

23 19 12

26

8


16 7

4

28 15 6
27 20

21 10
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á.
Để 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 R i-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

L 1 = R0

=

11110000101010101111000010101010
AN TOÀN VÀ BẢO MẬT THÔNG TIN

1


20

16 vịng lặp mã hóa được thể hiện như sau:

E(R0)

= 011110100001010101010101011110100001010101010101

K1

= 000110110000001011101111111111000111000001110010

E(R0)  K1


= 011000010001011110111010100001100110010100100111

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

L2 = R1

= 11101111010010100110010101000100

E(R1)

= 011101011110101001010100001100001010101000001001

K2

= 011110011010111011011001110110111100100111100101

E(R1)  K2

= 000011000100010010001101111010110110001111101100

S-box output

= 11111000110100000011101010101110

f(R1, K2)


= 00111100101010111000011110100011

L 3 = R2

= 11001100000000010111011100001001

E(R2)

= 111001011000000000000010101110101110100001010011

K3

= 010101011111110010001010010000101100111110011001

E(R2)  K3

= 101100000111110010001000111110000010011111001010

S-box output

= 00100111000100001110000101101111

f(R2, K3)

= 01001101000101100110111010110000

L 4 = R3

= 10100010010111000000101111110100


E(R3)

= 010100000100001011111000000001010111111110101001

K4

= 011100101010110111010110110110110011010100011101

E(R3)  K4

= 001000101110111100101110110111100100101010110100

S-box output = 00100001111011011001111100111010
= 10111011001000110111011101001100
f(R3, K4)
L 5 = R4

= 011101110

AN TỒN VÀ BẢO MẬT THƠNG TIN



×