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

Tìm hiểu chuẩn mật mã dữ liệu (DES) và ứng dụng vào thi tuyển đại học

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.02 MB, 74 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƢỜNG ĐẠI HỌC DÂN
LẬP HẢI PHÒNG -------o0o-------

ĐỒ ÁN TỐT NGHIỆP
NGÀNH CÔNG NGHỆ THÔNG TIN

HẢI PHÒNG 2013


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG
-------o0o-------

TÌM HIỂU CHUẨN MẬT MÃ DỮ LIỆU (DES) VÀ
ỨNG DỤNG VÀO THI TUYỂN ĐẠI HỌC

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ Thông tin

HẢI PHÒNG - 2013


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG
-------o0o-------

TÌM HIỂU CHUẨN MẬT MÃ DỮ LIỆU (DES) VÀ
ỨNG DỤNG VÀO THI TUYỂN ĐẠI HỌC

ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY
Ngành: Công nghệ Thông tin



Sinh viên thực hiện:

Đỗ Thị Phƣơng
Giáo viên hƣớng dẫn: TS. Hồ Văn Canh
1351010046
Mã số sinh viên:

HẢI PHÒNG - 2013


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC DÂN LẬP HẢI PHÒNG

CỘNG HÒA XA HỘI CHỦ NGHĨA VIỆT NAM
Độc lập - Tự do - Hạnh phúc -------o0o-------

NHIỆM VỤ THIẾT KẾ TỐT NGHIỆP

Sinh viên: Đỗ Thị Phƣơng

Lớp:

CT 1301

Mã SV: 1351010046
Ngành: Công nghệ Thông tin

Tên đề tài: Tìm hiểu chuẩn mật mã dữ liệu (DES) và ứng dụng vào thi tuyển
đại học.



NHIỆM VỤ ĐỀ TÀI
1. Nội dung và các yêu cầu cần giải quyết trong nhiệm vụ đề tài tốt
nghiệp a. Nội dung
1. Tìm hiểu mật mã DES.
2. Nghiên cứu bài toán chia sẻ bí mật của Lagrange.
3. Ứng dụng lƣợc đồ chia sẻ bí mật của Lagrange để phân phối khóa.
4. Demo chƣơng trình
b. Các yêu cầu cần giải quyết
1. Đọc tài liệu và hiểu đƣợc vấn đề đặt ra, nắm đƣợc các phƣơng pháp
mã dịch DES một cách thành thạo (cả tiếng việt và tiếng anh).
2. Hiểu đƣợc lƣợc đồ chia sẻ bí mật Lagrange.
3. Đọc hiểu đƣợc một số tài liệu chuyên môn bằng tiếng Anh
4. Nắm vững một ngôn ngữ lập trình cơ bản (Vb, C#, C++) và giải đƣợc
bài toán có tính ứng dụng vào thực tiễn.


Đồ án tốt nghiệp

Trƣờng DHDL Hải Phòng

CÁN BỘ HƢỚNG DẪN ĐỀ TÀI TỐT
NGHIỆP Ngƣời hƣớng dẫn thứ nhất:
Họ và tên: Hồ Thị Hƣơng Thơm
Học hàm, học vị: Tiến Sĩ
Cơ quan công tác: Trƣờng Đại Học Dân Lập Hải Phòng
Nội dung hƣớng dẫn:
Ngƣời hƣớng dẫn thứ hai:
Họ


tên: ……………………………………………………………………….
Học hàm, học vị: ……………………………………………………………….

quan
công
tác: ………………………………………………………………
Nội dung hƣớng dẫn: …………………………………………………………..
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
…………………………………………………………………………………
………...
Đề tài tốt nghiệp đƣợc giao ngày tháng năm 2013 Yêu
cầu phải hoàn thành trƣớc ngày tháng năm 2013
Đã nhận nhiệm vụ: Đ.T.T.N
Đã nhận nhiệm vụ: Đ.T.T.N
Sinh viên
Cán bộ hƣớng dẫn Đ.T.T.N

TS. Hồ Thị Hƣơng Thơm
Hải Phòng, ngày ............tháng.........năm 2013

HIỆU TRƢỞNG

GS.TS.NGƯT Trần Hữu Nghị

Đỗ Thị Phƣơng- CT1301

Page 6



Đồ án tốt nghiệp

Trƣờng DHDL Hải Phòng

PHẦN NHẬN XÉT TÓM TẮT CỦA CÁN BỘ HƢỚNG DẪN

1. Tinh thần thái độ của sinh viên trong quá trình làm đề tài tốt nghiệp:
........................................................................................................................
....
........................................................................................................................
....
........................................................................................................................
....
........................................................................................................................
....
........................................................................................................................
........................................................................................................................
........
2. Đánh giá chất lƣợng của đề tài tốt nghiệp (so với nội dung yêu cầu đã
đề ra trong nhiệm vụ đề tài tốt nghiệp)
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
........................................................................................................................
............................

3. Cho điểm của cán bộ hƣớng dẫn:
( Điểm ghi bằng số và chữ )

Đỗ Thị Phƣơng- CT1301

Page 7


Đồ án tốt nghiệp

Trƣờng DHDL Hải Phòng

........................................................................................................................
........................................................................................................................
........
Ngày.......tháng.........năm 2013
Cán bộ hƣớng dẫn chính
( Ký, ghi rõ họ tên )

Đỗ Thị Phƣơng- CT1301

Page 8


Đồ án tốt nghiệp

Trƣờng DHDL Hải Phòng

PHẦN NHẬN XÉT ĐÁNH GIÁ CỦA CÁN BỘ CHẤM PHẢN BIỆN ĐỀ
TÀI TỐT NGHIỆP

1. Đánh giá chất lƣợng đề tài tốt nghiệp (về các mặt nhƣ cơ sở lý luận,
thuyết minh chƣơng trình, giá trị thực tế, ...)

2. Cho điểm của cán bộ phản biện
( Điểm ghi bằng số và chữ )
........................................................................................................................
........................................................................................................................
........
Ngày.......tháng.........năm 2013
Cán bộ chấm phản biện
( Ký, ghi rõ họ tên )

Đỗ Thị Phƣơng- CT1301

Page 9


Đồ án tốt nghiệp

Trƣờng DHDL Hải Phòng

MỤC LỤC
LỜI NÓI ĐẦU....................................................................................................... 12
CHƢƠNG 1: MẬT MÃ CỔ ĐIỂN...................................................................... 14
1.1 KHÁI NIỆM VÀ ĐỊNH NGHĨA VỀ MẬT MÃ............................................ 14
1.1.1 Khái niệm................................................................................................ 14
1.1.2 Định nghĩa............................................................................................... 14
1.2 MỘT SỐ MÃ HÓA ĐƠN GIẢN................................................................... 15
CHƢƠNG 2: CHUẨN MÃ DỮ LIỆU (DES)..................................................... 16
2.1 Mô tả DES ( Data Encryption Standard)........................................................ 16

2.2 Các bƣớc thực hiện:....................................................................................... 17
2.2.1 Cách tính biến x0:.................................................................................... 17
2.2.2 Cách tính LiRi:......................................................................................... 18
2.2.2.1 Các biến trong hàm f:........................................................................ 18
2.2.2.2 Cách tính hàm f:................................................................................ 20
2.2.3 Xác định bản mã y:.................................................................................. 25
2.3 Giải mã DES.................................................................................................. 33
2.3.1 Thuật toán....................................................................................................... 33
2.3.2 Chứng minh thuật toán............................................................................ 33
2.4 Các vấn đề xung quanh DES.......................................................................... 35
2.4.1 Những ý kiến phản hồi............................................................................ 35
2.4.2 DES trong thực tế.................................................................................... 36
2.4.3 Một vài kết luận về mã DES.................................................................... 37
CHƢƠNG 3. CÁC SƠ ĐỒ CHIA SẺ BÍ MẬT.................................................. 38
3.1 Khái niệm về chia sẻ bí mật........................................................................... 38
3.2 Sơ đồ chia sẻ bí mật....................................................................................... 39
3.2.1 Khái niệm “ sơ đồ chia sẻ bí mật”:.......................................................... 39
3.2.2 Định nghĩa:.............................................................................................. 39
3.3 Cấu trúc truy nhập và sơ đồ chia sẻ bí mật..................................................... 43
3.3.1 Định nghĩa sơ đồ chia sẻ bí mật hoàn thiện............................................. 43
3.3.2 Định nghĩa tập hợp thức tối thiểu............................................................ 44
Đỗ Thị Phƣơng- CT1301

Page 10


Đồ án tốt nghiệp

Trƣờng DHDL Hải Phòng


3.4 Mạch đơn điệu............................................................................................... 44
3.4.1 Định nghĩa mạch đơn điệu....................................................................... 44
3.4.2 Chia sẻ khóa bí mật dựa vào “mạch đơn điệu”........................................45
CHƢƠNG 4. ỨNG DỤNG THUẬT TOÁN DES VÀ LƢỢC ĐỒ CHIA SẺ BÍ
MẬT VÀO THI TUYỂN SINH............................................................................ 48
4.1 Các ứng dụng................................................................................................. 48
4.2 Quy trình thực hiện giải bài toán.................................................................... 48
4.2.1 Sơ đồ........................................................................................................ 48
4.2.2 Các bƣớc thực hiện................................................................................. 49
4.2.3 Mô phỏng lƣợc đồ chia sẻ bỉ mật bằng ngôn ngữ C:............................... 49
4.2.3.1 Chia sẻ khóa bí mật theo giao thức “chia sẻ bí mật” Shamir.............50
4.2.3.2 Khôi phục khóa bí mật bằng phƣơng pháp giải hệ phƣơng trình tuyến
tính................................................................................................................ 52
4.2.3.3 Khôi phục khóa bí mật bằng phƣơng pháp dùng công thức nội suy
Lagrange....................................................................................................... 58
4.2.3.4 Chia sẻ khóa bí mật theo phƣơng pháp bằng mạch đơn điệu............60
4.2.3.5 Khôi phục khóa bí mật theo phƣơng pháp mạch đơn điệu................61
4.3 Mã nguồn mở của chƣơng trình..................................................................... 62
KẾT LUẬN............................................................................................................ 73
1. Tìm hiểu lí thuyết về mật mã........................................................................... 73
2. Phần ứng dụng................................................................................................. 73
TÀI LIỆU THAM KHẢO.................................................................................... 74

Đỗ Thị Phƣơng- CT1301

Page 11


Đồ án tốt nghiệp


Trƣờng DHDL Hải Phòng

LỜI NÓI ĐẦU

Ngày nay, mạng máy tính ngày càng trở lên phổ biến. Mỗi quốc gia đều có
mạng riêng với rất nhiều mạng mang tính bộ phận. trên phạm vi toàn cầu, ngƣời ta
đã dùng mạng Internet một cách thông dụng. Nhiều dịch vụ điện tử nhƣ: thƣ điện
tử, chuyển tiền, thƣơng mại điện tử, chính phủ điện tử…đã đƣợc áp dụng rộng rãi.
Các ứng dụng trên mạng máy ngày càng trở lên phổ biến, thuận lợi và quan
trọng thì yêu cầu về an toàn mạng, về an ninh dữ liệu càng trở lên cấp bách và cần
thiết.
Trên thế giới có rất nhiều quốc gia, nhiều nhà khoa học ngiên cứu về vấn đề
bảo mật, đƣa ra nhiểu thuật toán với mục đích thông tin truyền đi không bị lấy cắp
hoặc nếu bị lấy cắp thì cũng không sử dụng đƣợc. Trong đề tài của em đƣa ra một
thuật toán đó là thuật toán DES(Data encryption standar) đây là thuật toán chuẩn
của Mỹ, đƣợc Mỹ và nhiều nƣớc trên thế giới sử dụng, thuật toán này đã đƣợc đƣa
vào sử dụng nhiều năm nhƣng vẫn giữ đƣợc tính bảo mật của nó. Tuy nhiên với
công nghệ phát triển nhƣ hiện nay thì thuật toán DES trở lên không đƣợc an toàn
tuyệt đối nữa, ngƣời ta đã đƣa ra thuật toán 3DES dựa trên nền tảng của thuật toán
DES nhƣng số bít đƣợc mã hóa tăng lên.
Mã hóa và các lƣợc đồ chia sẻ bí mật có thể đƣợc ứng dụng trong rất nhiều
lĩnh vực ví dụ: phát hành thẻ ATM trong ngân hang, đấu tầu từ xa, trong thi tuyển
sinh, trong lĩnh vực quân sự… Trong đề tài của em đề cập tới một lĩnh vực đó là
ứng dụng trong thi tuyển sinh đại học.
Vấn đề thi tuyển sinh đại học ở nƣớc ta trở thành gánh nặng cho ngành Giáo
Dục và các ban ngành khác liên quan. Nó làm tổn hại về kinh tế và công sức không
chỉ đối với các ban ngành tham gia tổ chức kỳ thi mà ngay cả đối với các thí sinh dự
thi, nhƣng đó là điều bắt buộc phải đƣợc tổ chức hàng năm. Do vậy làm sao để
giảm thiểu các khâu trong thi tuyển sinh mà vẫn đảm bảo tính công bằng và chính
xác là điều cần thiết, theo tôi để làm đƣợc điều đó ta nên ứng dụng công nghệ thông

tin vào việc thi tuyển sinh đại học, một trong những ứng dụng đó là ứng dụng lƣợc
đồ chia sẻ bí mật vì nó đảm bảo đƣợc tính bí mật và chính xác mà trong thi tuyển
sinh hai điều đó là quan trọng nhất.
Phạm vi luận văn đề cập đến mật mã, thuật toán DES, lƣợc đồ chia sẻ bí mật
và ứng dụng của chúng trong thi tuyển sinh.

Đỗ Thị Phƣơng- CT1301

Page 12


Đồ án tốt nghiệp

Trƣờng DHDL Hải Phòng

Luận văn gồm 4 chƣơng:
Chƣơng 1: Mật mã cổ điển: chƣơng này giới thiệu về khái niệm và định
nghĩa mật mã, một số mã cổ diển.
Chƣơng 2: thuật toán DES: chƣơng này nói về mã hóa và giải mã trong
thuật toán DES, các vấn đề xung quanh DES.
Chƣơng 3: Chia sẻ bí mật: chƣơng này nói về khái niệm chia sẻ bí mật,
phƣơng thức chia sẻ và khôi phục khóa bí mật.
Chƣơng 4: Ứng dụng thuật toán DES và lƣợc đồ chia sẻ bí mật vào thi tuyển

sinh: Chƣơng này nói vè phần ứng dụng và mô phỏng lƣợc đồ chia sẻ bí mật bằng
ngôn ngữ C.
Để hoàn thành luận văn này, trƣớc hết em xin chân thành cảm ơn TS Hồ Văn
Canh - ngƣời đã trực tiếp hƣớng dẫn, cung cấp tài liệu và đóng góp nhiều ý kiến
cho luận văn. Em cũng xin chân thành cảm ơn các thầy cô giáo, các cán bộ khoa
công nghệ thông tin trƣờng đại học Dân Lập Hải Phòng đã tận tình giảng dạy, giúp

đỡ em trong suốt khóa học.

Đỗ Thị Phƣơng- CT1301

Page 13


Đồ án tốt nghiệp

Trƣờng DHDL Hải Phòng

CHƢƠNG 1: MẬT MÃ CỔ ĐIỂN
1.1 KHÁI NIỆM VÀ ĐỊNH NGHĨA VỀ MẬT MÃ
1.1.1 Khái niệm
Chức năng cơ bản của mật mã là tạo ra khả năng liên lạc trên một kênh
không mật cho hai ngƣời sử dụng ( tạm gọi là A và B ) sao cho đối phƣơng C
không thể hiểu đƣợc thông tin truyền đi.
Kênh liên lạc có thể là một đƣờng dây điện thoại hoặc một mạng máy tính.
Thông tin mà A muốn gửi cho B bản rõ có thể là một văn bản tiếng Anh, các dữ
liệu bằng số hoặc bất cứ tài liệu nào có cấu trúc tùy ý.
A sẽ mã hóa bản rõ bằng một khóa đã đƣợc xác định trƣớc và gửi bản mã kết
quả trên kênh. C có bản mã thu trộm đƣợc trên kênh xong không thể xác định nội
dung của bản rõ, nhƣng B (ngƣời biết khóa mã) có thể giải mã và thu đƣợc bản rõ. Ta
sẽ mô tả hình thức nội dung bằng cách dùng khái niệm toán học nhƣ sau:
1.1.2 Định nghĩa
Một hệ mật mã là một bộ 5 ( P, C, K, E,D ) thỏa mãn các điều kiện sau:
1.
2.
3.
4.


P là một tập hữu hạn các bản rõ có thể
C là một tập hữu hạn các bản mã có thể
K (không gian khóa) là tập hữu hạn các khóa có thể.
Đố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 є D. Mỗi ek: P→ C và dk: C→ P là những hàm sao cho:
dk(ek(x)) = x với mọi bản rõ x є P.

Trong đó chúng ta cần lƣu ý tính chất 4: Nội dung của nó là nếu một bản rõ x
đƣợc mã hóa bằng ek và bản mã nhận đƣợc sau đó đƣợc giải mã bằng d k thì ta
phải thu đƣợc bản rõ ban đầu x.
Giả sử ta có bản rõ cần truyền đi là: x= x1, x2,….,xn với số nguyên n≥1 nào đó. Ở
đây mỗi kí hiệu của mỗi bản rõ xi є P,1≤ i ≤ n. Mỗi xi sẽ đƣợc mã hóa bằng quy
tắc mã ek với khóa k xác định trƣớc đó.
Bản mã thu đƣợc là: y=y 1, y2,…,yn. Trong đó yk=ek(xi) i=1,2,…,n còn k є K. Khi
Bob nhận đƣợc y1, y2,…,yn anh ta sẽ giải mã bằng hàm giải mã d k và thu đƣợc
bản rõ gốc x= x1, x2,….,xn.

Đỗ Thị Phƣơng- CT1301

Page 14


Đồ án tốt nghiệp

Trƣờng DHDL Hải Phòng

Hình 1.1 là một ví dụ về một kênh liên lạc

C

x

y

A

x

Bộ mã hóa

Bộ giải mã

B

k
k
k

k
Kênh an

Nguồn khóa
Hình 1.1. Kênh liên lạc
Rõ ràng là trong trƣờng hợp này hàm mã hóa phải là hàm đơn ánh( tức là ánh xạ
1-1), nếu không việc giải mã sẽ không thực hiện đƣợc một cách tƣờng minh.
Ví dụ
y= ek(x1)= ek(x2)
trong đó x1 ≠ x2, B sẽ không có cách nào đẻ biết liệu bản rõ là x1 hay x2.
1.2 MỘT SỐ MÃ HÓA ĐƠN GIẢN
Mã dịch vòng

Mã thay thế
Mã Affine
Mã Hill
Mã chuyển vị

Đỗ Thị Phƣơng- CT1301

Page 15


Đồ án tốt nghiệp

Trƣờng DHDL Hải Phòng

CHƢƠNG 2: CHUẨN MÃ DỮ LIỆU (DES)
Các hệ mật mã truyển thống ở chƣơng 1 có một số ƣu điểm là mã hóa và
giải mã bằng thủ công đƣợc thực hiện rất dễ dàng, việc trao đổi khóa mã cũng rất
đơn giản bằng thủ công hoặc bằng qui ƣớc. Song với lƣợng thông tin quá phong
phú nhƣ hiện nay và với mạng truyền thông nhƣ hiện nay thì mật mã thủ công vừa
không đảm bảo bí mật. Mặt khác các thuật toán mã hóa thủ công đòi hỏi phải tuyệt
đối giữ bí mật… Nhƣ vậy mật mã thủ công đòi hỏi bảo mật cả thuật toán mã hóa và
cả khóa mã.
Sau những năm 70 của thế kỉ trƣớc, các nhà toán học đã nghiên cứu và tạo
ra nhiều phƣơng thức mật mã với tốc độ mã hóa rất nhanh (hàng trục thậm chí hàng
trăm kilo Byte trong một giây) và ngƣời ta chỉ cầm giữ bí mật khóa mã và mã hóa
đƣợc mọi dữ liệu tùy ý. Đó là một bƣớc tiến vĩ đại của kĩ thuật mật mã. Trong đó
mã DES ( Data Encryption Standard) là một điển hình của bƣớc tiến này. Chƣơng
này em muốn mô phỏng mã hóa và giải mã của thuật toán DES.
2.1 Mô tả DES ( Data Encryption Standard)
DES mã hóa một xâu bít x:

Bản rõ x độ dài 64 bít.
Khóa k độ dài 56 bit.
Bản mã y nhận đƣợc cũng là một xâu bit có độ dài 64 bit.
Thuật toán tiến hành theo 3 giai đoạn:
1.

Với bản rõ cho trƣớc x, một xâu bit x0 sẽ đƣợc tạo ra bằng cách hoán vị các

bit của x theo phép hoán vị cố định ban đầu IP.
Ta viết : x0=IP(X)=L0R0, trong đó L0 gồm 32 bit đầu và R0 là 32 bit cuối.
2.
Sau đó tính toán 16 lần lặp theo một hàm xác định. Ta sẽ tính đƣợc LiRi, 1 ≤
i ≤ 16 theo qui tắc sau:
Li = Ri-1
Ri = Li-1
Trong đó

f (Ri-1, Ki)
kí hiệu cộng theo modulo 2 của 2 xâu bit.
f là một hàm mà của Ri-1, ki mô tả sau.
ki là các xâu bit độ dài 48 bit đƣợc tính nhƣ hàm của khóa k. (Trên

thực tế mỗi ki là một phép chọn hoán vị bit trong k).

Đỗ Thị Phƣơng- CT1301

Page 16


Đồ án tốt nghiệp

3.

Trƣờng DHDL Hải Phòng
-1

Áp dụng phép hoán vị ngƣợc IP cho xâu bit R16L16 ta thu đƣợc bản mã
-1

y.Tức là y = IP (R16 L16).
Li-1

Ri-1

A
f

J

Ki

+

Li

Ri

Hình 2.1. Một vòng ( vòng thứ i ) của DES.
2.2 Các bƣớc thực hiện:
2.2.1 Cách tính biến x0:
Hoán vị biến x theo phép hoán vi ban đầu IP(X)

x0 = IP(X) = L0R0
Bảng 2.1.Bảng IP

IP
58 50 42 34 26 18 10

2

60 52 44 36 28 20 12

4

62 54 46 38 31 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

Đỗ Thị Phƣơng- CT1301

Page 17


Đồ án tốt nghiệp

Trƣờng DHDL Hải Phòng

Theo bảng 2.1 này có nghĩa là bit thứ 58 của x là bit đầu tiên của IP(x), bit thứ 50
của x là bit thứ 2 của IP(x), bit ở vị trí thứ 7 là bit cuối của IP(x).
2.2.2 Cách tính LiRi:
Để tính LiRi trƣớc hết ta phải xác định hàm
f 2.2.2.1 Các biến trong hàm f:
Có 2 biến vào
 Biến thứ nhất Ri-1là xâu bit độ dài 32
 Biến thứ hai J là xâu bít độ dài 48
 Đầu ra của f là một xâu bit độ dài 32 bít. Hàm f thực hiện qua các
bƣớc sau:
Bước 1: Xác định biến thứ nhất (biến A):
Xâu bit của Ri-1 đƣợc mở rộng thành một xâu bit có độ dài 48 theo một hàm mở
rộng cố định E.
Bảng 2.2. Bảng chọn E bit
Bảng chọn E bit

32

1

2

3

4

5

4

5

6

7

8

9

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

Đỗ Thị Phƣơng- CT1301

Page 18


Đồ án tốt nghiệp

Trƣờng DHDL Hải Phòng

E(Ri-1) gồm 32 bit của Ri-1 (đƣợc hoán vị theo cách cố định) với 16 bit xuất
hiện 2 lần.Theo bảng E bit ở vị trí thứ 32 là bit đầu tiên của E(R i-1), ở vị trí thứ 1 là
bit thứ 2 và bit cuối của E(Ri-1).
Bước 2: Xác định biến thứ hai (biến J)
Biến J thực chất là phép hoán vị và dịch vòng của xâu bit khóa k
Thuật toán tạo 16 khóa con k1, k2,…k16
K

PC-1

C 0…

D0

LS1


C1

LS1

D1

PC-2

K1



LS16

C16

LS16

D16

PC-2

K16

Hình 2.2. Sơ đồ tạo khóa k

Đỗ Thị Phƣơng- CT1301

Page 19



Đồ án tốt nghiệp

Trƣờng DHDL Hải Phòng

Theo sơ đồ hình 2.2 trên việc xác định ki đƣợc thực hiện nhƣ sau:
Với khóa k 64 bit cho trƣớc hoán vị thực chất chỉ có 56 bit dùng để tạo ki với i từ
1 đến 16.Tránh các bit ở vị trí 8,16,24,32,40,48,56,64.
Theo phép hoán vị cố định PC-1 ta viết:
PC-1(K) = C0D0. Trong đó C0 là 28 bit đầu và D0 là 28 bit cuối.
Mỗi phần sẽ đƣợc xử lí một cách độc lập.
Ci = LSi (Ci -1)
Di = LSi (Ci -1) với 1≤ i≤ 16
LSi biểu diễn phép dịch bit vòng sang trái 1 hoặc 2 vị trí tùy thuộc vào i.
Sang trái 1 bit nếu i= 1, 2, 9, 16 hoặc sang trái 2 bit nếu I thuộc các vị trí còn lại.
ki = PC-2 (Ci - Di).
PC-2 là hoán vị cố định sẽ hoán vị chuỗi Ci - Di 56 bit thành chuỗi 48 bit.
2.2.2.2 Cách tính hàm f:
Ri-1
Cộng XORKi
E(Ri-1).

48 bit

48 bit

B1

B2


B3

B4

B5

B6

S1

S2

S3

S4

S5

S6

C4

C5

C6

C1

C2


C3

B7

S7

C7

B8

S8

C8

P

F(Ri-1,k i)

Hình 2.3.Sơ đồ hoạt động của hàm f(Ri-1,k i):
Đỗ Thị Phƣơng- CT1301

Page 20


Đồ án tốt nghiệp

Trƣờng DHDL Hải Phòng

Sau khi mở rộng Ri-1 bởi hàm mở rộng E để chuyên Ri-1 gồm 32 bit thành E(Ri-1)

gồm 48 bit, E(Ri-1) cộng XOR với khóa ki cho ra là:
E(Ri-1) + ki = B = B1B2…B8
B gồm 48 bit đƣợc phân thành 8 khối (block) nhƣ nhau và mỗi block Bi, i =1,8 có
độ dài 6 bit.
Sau đó mỗi Bi đƣợc đƣa vào hộp Si, i = 1,8 và biến đổi để cho đầu ra là Ci gồm 4
bit (i = 1,8). Sự biến đổi này đƣợc thực hiện nhƣ sau:
Giả sử Bi gồm 6 bit là Bi= bi1bi2…bi6. Khi đó bi1bi6 đƣợc nhập thành cặp, bi1bi6
đƣợc chuyển thành số thập phân từ 1 đến 3. Ví dụ:
bi1bi6 = 00→0
bi1bi6 =01→1
bi1bi6 =10→2
bi1bi6 =11→3
Còn bi2bi3 bi4bi5 của Bi đƣợc chuyển thành số thập phân từ 0 đến 15 nhƣ sau:
Bảng 2.3. Bảng chuyển đổi giá trị.
bi2bi3 bi4bi5
0000

Số tự nhiên
0

0001

1

0010

2

0011


3

0100

4

0101

5

0110

6

0111

7

1000

8

1001

9

1010

10


1011

11

1100

12

1101

13

1110

14

1111

15

Đỗ Thị Phƣơng- CT1301

Page 21


Đồ án tốt nghiệp

Trƣờng DHDL Hải Phòng

Số nguyên dƣơng ri = bi1bi6 và si = bi2bi3 bi4bi5 chính là tọa độ (hoành tung) của

ma trận Si từ ti chuyển thành Ci = Ci1Ci2 Ci3Ci4 với Cij є{0,1} i= i =1,8 , j =1,4.
Vậy đầu ra của hộp S là:
C1C2 …C8 mỗi Ci gồm 4 bit tọa thành khối C = C1C2…C8 gồm 32 bit. 32 bit này
đƣợc đƣa vào ma trận chuyển vị P để cho đầu ra cũng là 32 bit. Đó là đầu ra của
hàm f(Ri-1,Ki).
Ta có thể trình bày cụ thể cách tính hàm f nhƣ sau:
Với xâu bit có độ dài 6 bit (kí hiệu B i= b1b2…b6), ta tính đƣợc Sj(Bj ) nhƣ sau:
Hai bit bib6 xác định biểu diễn nhị phân của hàng r của S j (0 ≤ r ≤ 3) và 4 bit b 2b3
b4b5 xác định biểu diễn nhị phân của cột c của S j (0 ≤ c ≤ 15). Khio đó Sj(Bj ) sẽ
xác định phần tử Sj(r,c); phần tử này viết dƣới dạng nhị phân là một xâu bit có độ
dài là 4.(Bởi vậy mỗi Sj có thể coi là một hàm mã mà đầu vào là một xâu bit có độ
dài 2 và một xâu bit độ dài 4, còn đầu ra là một xâu bit cố độ dài 4). Bằng cách
tƣơng tự tính các Cj= Sj(Bj ), 1≤ j ≤ 8.
Thật vậy mỗi chuỗi B là một chuỗi 6 bit trong đó bit đầu và bit cuối đƣợc dùng để
xác định vị trí của hàng trong phạm vi từ 0 đến 3 (hoặc từ 00 đến 11) bốn bit giữa
dùng để xác định vị trí của cột trong phạm vi từ 0 đến 15 (hoặc từ 0000 đến 1111).
Sauk hi xác định đƣợc vị trí của hàng và cột ta đối chiếu trong bảng S đƣợc một
số thập phân ,quy đổi số thập phân đó ra giá trị nhị phân ta đƣợc Cj.
Ví dụ: Bit đầu vào của B là B = 100110
Bit đầu và cuối là “10” cho ta thứ tự của hàng là 2, bốn bit giữa là “0011” cho ta
thứ tự của cột là 4. Đối chiếu với hộp S 1 xuất hiện số 14, chuyển 14 sang nhị phân
14= 1110, Vậy S(B) = S(100110)= 1110.
Tám hộp S là:

S1
14 4

13

1 2


15

11 8

3

10

3

12

5

9

1 7

1

15 7

4 14

2

13 1

10


6

12 11

9

5

3 8

4

1

8 13

6

2

11

15

12

9

7


3

10

5 0

2 4

9

1

7

5

11

3

14

10

0

6 13

14


15 12 8

Đỗ Thị Phƣơng- CT1301

Page 22


Đồ án tốt nghiệp

Trƣờng DHDL Hải Phòng

S2
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

3 2

15

10

1

3

15 4


2

11

6 7

12 0

5 14

9

10 0

9

14

6

3 15 5

1

13

12

7


13 7

0

9

3

4 6

10

2

8

5

13 6

4

9

8

5 3

0


11

1

0

6

9 8

7

4

15

13 8

9

S3

1

10 13

11

4


2

8

14 12

11

15

1

2

12 5

10

14

7

14

3

11

5


2

12

11

12

4

15

S4
7

13

14

3 0

6

13 8

11

5 6


10 6

9

3

15

0

12

4

1

14 11

2

4

1

9

10

1


2

8 5

15 0

3

4

7

2 12 1

10

14

9

0 12

11 7

13

15

1


3 14 5

2

8

4

6 10

1

13

8

9

4

5 11 12

7

2

14

10 11


6

8

5

3

15 13

0 14 9

12 4

7

1

5

0

15

10 3

9 8

6


11 10

13 7

8

15

9

12

5

6

3 0

14

14 2

13 6

9

10

4 5


3

S5
2

2

11 8

12 7

7

1

Đỗ Thị Phƣơng- CT1301

13

15 0

Page 23


Đồ án tốt nghiệp

Trƣờng DHDL Hải Phòng

S6
12 1


10

15 9

2

6

8

0

13 3

4

14

7

15 11

10 15 4

2

7

12 9


5

6

1

13

14 0

11 3

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 11

7

6

0

8

13

11


12

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

5

9

2

6

11

13

8

1


4

10

7

9

5

0 15 14

2

3

12

13 2

8

4

6

1

5


13 8

10 3

7

11

4

1

9

2

1

14 7

4

8

S7
4

0


S8
15 11 1

10 9

3

14

5

0

12 7

12 5

6

11

0

14

9

2

12 14 2


0

10 13

15 3

5

8

10 8

15 12

9

3

6

11

7

4
13

6


0

5

Sau khi thực hiện các phép đối chiếu hộp S ta đƣợc các giá trị SiBi
Tính hàm f = P(S1(B1)) = S2(B2)…….. S8(B8) thực hiện theo phép hoán vị P
Phép hoán vị P có dạng:

Đỗ Thị Phƣơng- CT1301

Page 24


Đồ án tốt nghiệp

Trƣờng DHDL Hải Phòng

Bảng 2.4. Bảng hoán vị P

P
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

4

25

Theo bảng 2.4 thì bit thứ 16 và bit thứ 7 của xâu bit SjBj lần lƣợt là bít thứ nhất và
bit thứ 2 của hàm f…
LỉRi đƣợc xác định theo công thức sau:
Lỉ = Ri-1
Ri= Li-1+ f(Ri-1, ki)
2.2.3 Xác định bản mã y:

Sau khi xác định đƣợc LỉRi ta thu đƣợc L16R16 , vậy bản mã y đƣợc xác định
theo công thức:
-1

y= IP (R16, L16)

Đỗ Thị Phƣơng- CT1301

Page 25


×