ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CNTT & TT
NÔNG THỊ LỆ QUYÊN
TÌM HIỂU MỘT SỐ SƠ ĐỒ THỎA THUẬN
KHÓA BÍ MẬT VÀ ỨNG DỤNG TRONG
THANH TOÁN ĐIỆN TỬ
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái Nguyên - 2015
ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CNTT&TT
NÔNG THỊ LỆ QUYÊN
TÌM HIỂU MỘT SỐ SƠ ĐỒ THỎA THUẬN
KHÓA BÍ MẬT VÀ ỨNG DỤNG TRONG
THANH TOÁN ĐIỆN TỬ
Chuyên ngành: Khoa học máy tính
Mã số chuyên ngành: 60.48.01
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
NGƯỜI HƯỚNG DẪN KHOA HỌC
PGS.TS TRỊNH NHẬT TIẾN
Công trình đƣợc hoàn thành tại:
Trƣờng ĐH Công nghệ thông tin và Truyền thông – ĐH Thái Nguyên
Người hướng dẫn khoa học: PGS.TS Trịnh Nhật Tiến
Phản biện 1:
Phản biện 2:
Luận văn sẽ được bảo vệ trước hội đồng chấm luận văn họp tại:
...................................................................................................
Vào hồi ..... giờ ... ...ngày ..... tháng năm 2015
i
LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này của tự bản thân tôi tìm hiểu, nghiên cứu
dưới sự hướng dẫn của PGS.TS Trịnh Nhật Tiến. Các chương trình thực nghiệm
do chính bản thân tôi lập trình, các kết quả là hoàn toàn trung thực. Các tài
liệu tham khảo được trích dẫn và chú thích đầy đủ.
TÁC GIẢ LUẬN VĂN
Nông Thị Lệ Quyên
ii
LỜI CẢM ƠN
Tôi xin bày tỏ lời cảm ơn chân thành tới tập thể các thầy cô giáo Viện
công nghệ thông tin – Viện Hàn lâm Khoa học và Công nghệ Việt Nam, các
thầy cô giáo Trường Đại học Công nghệ thông tin và truyền thông - Đại học Thái
Nguyên đã dạy dỗ chúng em trong suốt quá trình học tập chương trình cao học
tại trường.
Đặc biệt em xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo PGS.TS Trịnh
Nhật Tiến, Trường Đại học Công nghệ – Đại học Quốc gia Hà Nội đã quan
tâm, định hướng và đưa ra những góp ý, gợi ý, chỉnh sửa quí báu cho em trong
quá trình làm luận văn tốt nghiệp.
Cuối cùng, em xin chân thành cảm ơn các bạn bè đồng nghiệp, gia đình
và người thân đã quan tâm, giúp đỡ và chia sẻ với em trong suốt quá trình làm
luận văn tốt nghiệp.
Thái Nguyên, ngày
tháng năm 20
HỌC VIÊN
Nông Thị Lệ Quyên
iii
MỤC LỤC
LỜI CAM ĐOAN ................................................................................................................. I
LỜI CẢM ƠN ...................................................................................................................... II
MỤC LỤC ......................................................................................................................... III
DANH MỤC CÁC HÌNH VẼ ............................................................................................ V
DANH MỤC CÁC TỪ VIẾT TẮT.................................................................................. VI
MỞ ĐẦU ............................................................................................................................... 1
CHƢƠNG 1. CÁC KHÁI NIỆM CƠ BẢN ...................................................................... 3
1.1. VẤN ĐỀ MÃ HÓA.................................................................................................... 3
1.1.1. Mã hóa khóa đối xứng (mã hóa khóa riêng) ....................................................... 6
1.1.2. Mã hóa khóa bất đối xứng (mã hóa khóa công khai) ....................................... 14
1.2. VẤN ĐỀ VỀ CHỮ KÍ ĐIỆN TỬ ............................................................................ 16
1.2.1. Chữ kí điện tử ................................................................................................... 17
1.2.2. Chữ kí số........................................................................................................... 17
1.3. VẤN ĐỀ QUẢN LÍ KHÓA .................................................................................... 25
1.3.1. Khóa và một số khái niệm ................................................................................ 25
1.3.2. Vấn đề quản lí khóa bí mật ............................................................................... 26
1.3.3. Vấn đề quản lí khóa công khai ......................................................................... 27
CHƢƠNG 2. MỘT SỐ SƠ ĐỒ THỎA THUẬN KHÓA BÍ MẬT ................................ 29
2.1. THỎA THUẬN KHÓA BÍ MẬT BẰNG CÁCH GỬI KHÓA BÍ MẬT ............. 29
2.2. THỎA THUẬN KHÓA BÍ MẬT BẰNG CÁCH KHÔNG GỬI KHÓA ............ 29
2.2.1.Sơ đồ thỏa thuận khóa Blom ............................................................................. 30
2.2.2. Sơ đồ thỏa thuận khóa Diffie – Hellman .......................................................... 33
2.2.3. Sơ đồ thỏa thuận khóa “Trạm tới Trạm” .......................................................... 36
2.2.4. Sơ đồ thỏa thuận khóa MTI .............................................................................. 41
2.3. THỎA THUẬN KHÓA BÍ MẬT BẰNG CÁCH CHIA SẺ KHÓA THÀNH
NHIỀU MẢNH .............................................................................................................. 43
CHƢƠNG 3. ỨNG DỤNG TRONG “THANH TOÁN ĐIỆN TỬ” .............................. 47
3.1. THANH TOÁN ĐIỆN TỬ LÀ GÌ. ......................................................................... 47
3.2. CÁC MÔ HÌNH THANH TOÁN ĐIỆN TỬ ......................................................... 47
3.2.1. Các mô hình thanh toán điện tử ........................................................................ 47
3.2.2. Rủi ro về an toàn thông tin trong thanh toán điện tử ........................................ 49
3.2. BÀI TOÁN: THỎA THUẬN KHÓA BÍ MẬT ĐỂ THỰC HIỆN VIỆC MÃ HÓA
SỬ DỤNG TRONG THANH TOÁN ĐIỆN TỬ .......................................................... 53
3.2.1. Bài toán: Bảo mật hợp đồng thanh toán điện tử ............................................... 53
3.2.2. Bài toán: Bảo toàn hợp đồng thanh toán điện tử .............................................. 54
iv
3.2.3. Bài toán: Xác thực hợp đồng thanh toán điện tử .............................................. 55
3.2.4. Bài toán: Phòng tránh chối cãi hợp đồng thanh toán ........................................ 55
3.3. GIẢI QUYẾT BÀI TOÁN THỎA THUẬN KHÓA BÍ MẬT ĐỂ THỰC HIỆN
VIỆC MÃ HÓA SỬ DỤNG TRONG THANH TOÁN ĐIỆN TỬ .............................. 56
3.3.1. Giải quyết bài toán: Bảo mật hợp đồng thanh toán điện tử .............................. 56
3.3.2. Giải quyết bài toán bảo toàn hợp đồng trong thanh toán điện tử ..................... 56
3.3.3. Giải quyết bài toán: Xác thực hợp đồng thanh toán điện tử ............................. 58
3.3.4. Giải quyết bài toán: Phòng tránh chối cãi hợp đồng thanh toán..................... 599
3.4. CHƢƠNG TRÌNH THỬ NGHIỆM ...................................................................... 59
3.4.1. Thỏa thuận khóa ............................................................................................... 59
3.4.2. Mã hóa bản hợp đồng điện tử bằn hệ mã hóa DES .......................................... 61
3.4.3. Tạo chữ ký số bằng chữ ký số RSA ................................................................. 62
KẾT LUẬN ......................................................................................................................... 63
TÀI LIỆU THAM KHẢO ................................................................................................. 64
v
DANH MỤC CÁC HÌNH VẼ
TT
Hình vẽ
Trang
1
Hình 1.1: Sơ đồ mã hóa dữ liệu
4
2
Hình 1.2: Sơ đồ hoạt động của mã hóa khóa đối xứng
6
3
Hình 1.3: Quy trình mã hóa của hệ mã hóa DES
7
4
Hình 1.4: Quy trình lập mã DES
8
5
Hình 3.3: Sơ đồ tính khóa con trong hệ mã hóa DES
10
6
Hình 1.5: Sơ đồ tính hàm f trong hệ mã hóa DES
12
7
Hình 1.6: Sơ đồ hoạt động của mã hóa khóa bất đối xứng
14
8
Hình 1.7: Sơ đồ mã hóa dữ liệu của hệ mã hóa khóa công khai RSA
16
9
Hình 1.8: Sơ đồ giải mã dữ liệu của hệ mã hóa khóa công khai RSA
16
10
Hình 2.1: Thỏa thuận khóa Diffie – Hellman
34
11
Hình 2.2: Kẻ xâm nhập giữa cuộc trong giao thức Diffie-Hellman
35
12
Hình 2.3: Thỏa thuận khóa trạm tới trạm
37
13
Hình 2.4: Giao thức trạm tới trạm có sự xâm nhập giữa đường
38
14
Hình 2.5: Sơ đồ thỏa thuận khóa MTI
41
15
Hình 2.6: Giao thức MTI có sự xâm nhập giữa đường
42
vi
DANH MỤC CÁC TỪ VIẾT TẮT
STT
TỪ VIẾT TẮT
Ý NGHĨA
1
TMĐT
Thương mại điện tử
3
CA
Certification Authority
4
STS
Station To Station
5
MTI
Matsumoto, Takashima, Imai
1
MỞ ĐẦU
Khi nhu cầu trao đổi thông tin dữ liệu qua mạng Internet 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 được
phát triển ứng dụng để nâng cao chất lượng và lưu lượng truyền tin thì các quan
niệm ý tưởng và biện pháp bảo vệ thông tin dữ liệu cũng được đổi mới. Bảo vệ an
toà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ó thể có rất nhiều phương pháp được thực hiện để bảo vệ an toàn thông tin
dữ liệu:
+ Bảo vệ an toàn thông tin bằng các biện pháp hành chính.
+ Bảo vệ an toàn thông tin bằng các biện pháp kỹ thuật (phần cứng).
+ Bảo vệ an toàn thông tin bằng các biện pháp thuật toán (phần mềm).
Ba nhóm trên có thể được ứng dụng riêng rẽ hoặc phối kết hợp. Các thông
tin dữ liệu nằm ở kho dữ liệu hay đang trên đường truyền đều cần được bảo vệ, tuy
nhiên môi trường khó bảo vệ an toàn thông tin nhất và cũng là môi trường đối
phương dễ xâm nhập nhất đó là môi trường mạng và quá trình truyền tin.
“Mật mã” có lẽ là một kỹ thuật được dùng lâu đời nhất trong việc đảm bảo
“An toàn thông tin”. Trước đây “mật mã” chỉ được dùng trong ngành an ninh quốc
phòng, ngày nay việc đảm bảo “An toàn thông tin” là nhu cầu của mọi ngành, mọi
người (do các thông tin chủ yếu được truyền trên mạng công khai), vì vậy kỹ thuật
“mật mã” là công khai cho mọi người dùng. Điều bí mật nằm ở “khóa” của mật mã.
Vì vậy với bất kì hệ mã hóa nào người ta cần phải quản lí tốt “khóa”.
Hiện nay có hai loại hệ mã hóa chính: mã hóa khóa đối xứng (hệ mã hóa
khóa riêng) và mã hóa khóa bất đối xứng (mã hóa khóa công khai). Với hệ mã khóa
đối xứng, nếu biết được khóa này thì “dễ” tính được khóa kia và ngược lại. Hệ mã
khóa công khai có ưu điểm hơn hệ mã khóa đối xứng ở chỗ: có thể công khai thuật
toán mã hóa và khóa mã hóa (khóa công khai) cho nhiều người sử dụng, và cần phải
quản lí tốt khóa công khai.
2
Do đó việc sử dụng hệ mã hóa khóa công khai cho cặp người dùng thỏa
thuận khóa bí mật của hệ mã khóa riêng sẽ làm cho hệ mã khóa riêng trở nên an
toàn vì khi đó ta chỉ thỏa thuận cách tính khóa trên mạng chứ không truyền khóa
trên mạng, thuật toán mã hóa và giải mã sẽ nhanh hơn.
Được sự gợi ý của giáo viên hướng dẫn và nhận thấy tính thiết thực của vấn
đề, em đã chọn đề tài “Tìm hiểu một số sơ đồ thỏa thuận khóa bí mật và ứng
dụng trong thanh toán điện tử” để làm nội dung cho luận văn tốt nghiệp của
mình.
Luận văn này tập trung vào tìm hiểu cơ sở lý thuyết toán học và một số kỹ
thuật mật mã để thực hiện thỏa thuận khóa bí mật của hệ mã khóa riêng, sau đó áp
dụng giải quyết một số bài toán về an toàn thông tin trong “Thanh toán điện tử”.
Nội dung chính của luận văn gồm có ba chương
Chƣơng 1: Các khái niệm cơ bản
Trong chương này luận văn trình bày các kiến thức cơ bản về mã hóa, vấn đề
chữ kí số, vấn đề quản lí khóa.
Chƣơng 2: Một số sơ đồ thỏa thuận khóa bí mật
Nội dung chương 2 trình bày về vấn đề thỏa thuận khóa bí mật và một số sơ
đồ thỏa thuận khóa bí mật
Chƣơng 3: Ứng dụng trong thanh toán điện tử
Nội dung chương 3 tập trung và trình bày một số bài toán ứng dụng thỏa thuận
khóa bí mật trong thanh toán điện tử và xây dựng chương trình kiểm thử cho bài
toán “Bảo toàn hợp đồng thanh toán điện tử”, chương trình kiểm thử được viết bằng
ngôn ngữ lập trình java.
3
CHƢƠNG 1. CÁC KHÁI NIỆM CƠ BẢN
1.1. VẤN ĐỀ MÃ HÓA
Mã hoá là phần rất quan trọng trong vấn đề bảo mật. Mã hoá ngoài nhiệm vụ
chính là làm cho tài liệu an toàn hơn, nó còn có một lợi ích quan trọng là: thay vì
truyền đi tài liệu thô (không được mã hoá) trên một đường truyền đặc biệt, được
canh phòng cẩn mật không cho người nào có thể “xâm nhập” vào lấy dữ liệu, người
ta có thể truyền một tài liệu đã được mã hoá trên bất cứ đường truyền nào mà không
lo dữ liệu bị đánh cắp vì nếu dữ liệu có bị đánh cắp đi nữa thì dữ liệu đó cũng không
dùng được.
Theo nghĩa hẹp thì “mật mã” chủ yếu dùng để bảo mật dữ liệu, người ta quan
niệm “Mật mã học” là khoa học nghiên cứu mật mã bao gồm tạo mã và phân tích
mã (là kỹ thuật, nghệ thuật phân tích mật mã, kiểm tra tính bảo mật của nó hoặc
phá vỡ sự bí mật của nó).
Theo nghĩa rộng, “mật mã” là một trong những công cụ hiệu quả đảm bảo an
toàn thông tin nói chung: bảo mật, bảo toàn, xác thực, chống chối cãi,…
Một số khái niệm liên quan:
Thuật toán mã hoá/ giải mã [3]: là thuật toán dùng để chuyển thông tin thành
dữ liệu mã hoá hoặc ngược lại. Thuật toán mã hóa/ giải mã là công khai.
Khoá [3]: là thông tin mà thuật toán mã hóa/ giải mã sử dụng để mã hóa/ giải
mã thông tin. Mỗi khi một thông tin đã được mã hoá thì chỉ có những người có
khoá thích hợp mới có thể giải mã. Nếu không thì dù dùng cùng một thuật toán giải
mã nhưng cũng không thể phục hồi lại thông tin ban đầu. Đây là đặc điểm quan
trọng của khoá: mã hoá chỉ phụ thuộc vào khoá mà không phụ thuộc vào thuật toán
mã hóa/ giải mã. Điều này giúp cho một thuật toán mã hóa/ giải mã có thể được sử
dụng rộng rãi.
4
Hệ mã hóa [3]: Việc mã hóa phải theo quy tắc nhất định, quy tắc đó gọi là hệ
mã hóa. Hệ mã hóa được định nghĩa là bộ năm P, C, K , E, D , trong đó:
P là tập hữu hạn các bản rõ có thể
C là tập hữu hạn các bảm mã có thể
K là tập hữu hạn các khóa
E là tập các hàm lập mã
D là tập các hàm giải mã
Với khóa lập mã ke K , có hàm lập mã ek E , ek : P C
e
e
Với khóa giải mã k d K , có hàm giải mã ek D, ek : C P
d
d
Sao cho kk ek x x, với mọi x P
d
e
Ở đây x được gọi là bản rõ, ek x được gọi là bản mã
e
Sơ đồ mã hóa và giải mã dữ liệu:
kd
ke
x
ekd C
eke X
C
x
Hình 1.1: Sơ đồ mã hóa dữ liệu
Trong sơ đồ này, người gửi G có khóa lập mã k e , người nhận N có khóa giải
mã k d
Người gửi G muốn gửi bản tin x cho người nhận N. Để đảm bảo bí mật, G
mã hóa bản tin x bằng khóa lập mã k e được bản mã C và gửi C cho N. Tin tặc có
thể bắt chặn giữa đường lấy bản mã C, nhưng cũng “khó” hiểu được bản tin gốc x
vì không có khóa giải mã k d .
Người nhận N nhận được bản mã C, họ dùng khóa giải mã k d để giải mã C sẽ
nhận được bản tin gốc x d k ek ( x)
d
e
5
Với hình thức khá phổ biến hiện nay là truyền tin qua thư điện tử và không sử
dụng các công cụ mã hoá, bảo mật cũng như chữ ký điện tử thì các tình huống sau
có thể xảy ra:
- Không chỉ nguời nhận mà người khác cũng có thể đọc được thông tin.
- Thông tin mà ta nhận được có thể không phải là của người gửi đúng đắn.
- Thông tin nhận được đã bị người thứ ba sửa đổi.
- Bị nghe/xem trộm: thông tin được truyền đi trên đường truyền có thể bị ai đó
“xâm nhập” vào lấy ra, tuy nhiên vẫn đến được người nhận mà không bị thay đổi.
- Bị thay đổi: thông tin bị chặn lại ở một nơi nào đó trên đường truyền và
bị thay đổi. Sau đó thông tin đã bị thay đổi này được truyền tới cho người nhận như
không có chuyện gì xảy ra.
- Bị lấy cắp: thông tin bị lấy ra nhưng hoàn toàn không đến được người nhận.
Để giải quyết vấn đề này, thông tin trước khi truyền đi sẽ được mã hoá và khi
tới người nhận, nó sẽ được giải mã trở lại.
Để đảm bảo rằng chỉ người cần nhận có thể đọc được thông tin mà ta gửi khi
biết rằng trên đường đi, nội dung thông tin có thể bị theo dõi và đọc trộm, người ta
sử dụng các thuật toán đặc biệt để mã hoá thông tin. Trong trường hợp này, trước
khi thông tin được gửi đi, chúng sẽ được mã hoá lại và kết quả là ta nhận được một
nội dung thông tin “không có ý nghĩa”.
Khi thông điệp bị theo dõi hoặc bị bắt giữ trên đường đi, để hiểu được thông
tin của thông điệp, kẻ tấn công phải làm một việc đó là giải mã nó.
Thuật toán mã hoá càng tốt thì chi phí cho giải mã đối với kẻ tấn công càng
cao. Khi chi phí giải mã cao hơn giá trị thông tin thì coi như đã thành công
trong vấn đề bảo mật.
Các thuật toán mã hoá thông tin khá đa dạng nhưng có thể chia ra làm hai
hướng chính là mã hóa với khóa đối xứng và mã hóa với khóa bất đối xứng.
6
1.1.1. Mã hóa khóa đối xứng (mã hóa khóa riêng)
Hệ mã hóa khóa đối xứng là hệ mã hóa có khóa lập mã và khóa giải mã là
“giống nhau”, theo nghĩa biết được khóa này thì “dễ” tính được khóa kia. Vì vậy
phải giữ bí mật cả hai khóa. Đặc biệt có một số hệ mã hóa có khóa lập mã và khóa
giải mã trùng nhau ( k d ke ), như hệ mã hóa “dịch chuyển” hay DES.
Khóa K
Bản rõ
Mã hóa
Khóa K
Bản mã
Giải mã
Bản rõ
Hình 1.2: Sơ đồ hoạt động của mã hóa khóa đối xứng
1.1.1.1. Ưu điểm
- Tốc độ mã hóa/ giải mã nhanh. Đây là ưu điểm nổi bật của mã hóa khóa đối xứng.
- Sử dụng đơn giản: dùng một khoá cho cả 2 bước mã và giải mã.
1.1.1.2. Nhược điểm:
- Đòi hỏi khoá phải được 2 bên gửi/ nhận trao tận tay nhau vì không thể truyền
khoá này trên đường truyền mà không được bảo vệ. Điều này làm cho việc sử dụng
khoá trở nên không thực tế.
- Không an toàn: càng nhiều người biết khoá thì độ rủi ro càng cao.
- Trong trường hợp khoá mã hoá thay đổi, cần thay đổi đồng thời ở cả người gửi và
người nhận, khi đó rất khó có thể đảm bảo được là chính bản thân khoá không
bị đánh cắp trên đường đi.
- Không xây dựng được các dịch vụ về chữ kí điện tử, hay thanh toán điện tử.
1.1.1.3. Nơi sử dụng hệ mã khóa đối xứng
Hệ mã khóa đối xứng thường được sử dụng trong môi trường mà khóa chung
có thể dễ dàng trao chuyển bí mật, chẳng hạn trong cùng một mạng nội bộ. Hệ mã
hóa khóa đối xứng thường dùng để mã hóa những bản tin lớn, vì tốc độ mã hóa và
giải mã nhanh hơn hệ mã hóa khóa công khai.
7
1.1.1.4. Một số thuật toán mã hoá khóa đối xứng
-
Hệ mã hóa cổ điển là hệ mã khóa đối xứng: dễ hiểu, dễ thực thi nhưng độ an
toàn không cao. Vì giới hạn tính toán chỉ nằm trong bảng chữ cái, sử dụng trong bản
tin cần mã hóa, ví dụ là Z 26 nếu dùng các chữ cái tiếng Anh. Với hệ mã hóa cổ
điển, nếu biết khóa lập mã hay thuật toán lập mã, có thể “dễ” xác định được bản rõ,
vì “dễ” tìm được khóa giải mã.
-
Hệ mã hóa DES (1973) là hệ mã hóa khóa đối xứng hiện đại, có độ an toàn
cao
-
RC2, RC4, RC5: Độ dài khoá có thể lên tới 2048 bit.
-
IDEA (International Data Encryption Algorithm): Khóa có độ dài 128 bit,
thường dùng trong các chương trình email.
-
Blowfish: Khóa có độ dài 448 bit.
1.1.1.5/ Mã hóa DES
Mã hóa bản thanh toán hợp đồng điện tử (vì bản hợp đồng điện tử thường dài
nên không thể mã hóa bằng RSA)
+ Quy trình mã hóa bằng hệ mã hóa DES:
Bản rõ chữ
(1)
Bản rõ số, dạng
nhị phân
(2)
Các đoạn 64 bit
rõ số
(3)
(5)
Bản mã chữ
(4)
Bản mã số
Các đoạn 64 bit
mã số
Hình 1.3. Quy trình mã hóa của hệ mã hóa DES
8
* Quy trình lập mã DES
Bản rõ: 64 bit
IP
L0
R0
L0
L0
f
k1
R1 L0 f R0 , k1
L1 R0
L0
f
k2
R2 L1 f R1 , k2
L2 R1
L0
R15 L14 f R14 , k15
L15 R14
L0
R16 L15 f R15 , k16
L0
f
L16 R15
IP 1
Hình 1.4.
Quy trình lập mã DES
Bản mã: 64 bit
k16
9
- Thực hiện mã hóa DES theo sơ đồ
+ Bản rõ là xâu x , bản mã là xâu y , khóa là xâu K , đều có độ dài 64 bit
+ Thuật toán mã hóa DES thực hiện qua ba bước chính như sau:
Bước 1: Bản rõ x được hoán vị theo phép hoán vị IP thành IP x .
IP x L0 R0 , trong đó L0 là 32 bit đầu (Left), R0 là 32 bit cuối (Right). ( IP x
tách thành L0 R0 )
Bước 2: Thực hiện 16 vòng mã hóa với những phép toán giống nhau. Dữ liệu được
kết hợp với khóa thông qua hàm f :
Li Ri 1, Ri Li 1 f Ri 1, ki
Trong đó là phép toán hoặc loại trừ của hai xâu bit (cộng theo module 2).
k1 , k2 ,..., k16 là các khóa con (48 bit) được tính từ khóa gốc K
Bước 3: Thực hiện phép hoán vị ngược IP 1 cho xâu R16 L16 , thu được bản mã y .
y IP1 R16 , L16 .
1/ Bảng hoán vị ban đầu IP
Bit 1 của IP x là bit 58 của x 58
50
42
34
26
18
10
2
Bit 2 của IP x là bit 50 của x 60
52
44
36
28
20
12
4
62
54
46
38
30
22
14
6
64
57
59
61
63
58
49
51
53
55
48
41
43
45
47
40
33
35
37
39
32
25
27
29
31
24
17
19
21
23
16
9
11
13
15
8
1
3
5
7
48
47
46
16
15
14
56
55
54
24
23
22
64
63
62
32
31
30
45
44
43
42
41
13
12
11
10
9
53
52
51
50
49
21
20
19
18
17
61
60
59
58
57
29
28
27
26
25
2/ Bảng hoán vị cuối cùng IP 1
40 8
39 7
38 6
37
36
35
34
33
5
4
3
2
1
10
3/ Tính khóa con k1 , k2 ,..., k16 từ khóa gốc K
K
PC 1
C0
D0
LS1
LS1
C1
D1
LS 2
LS 2
C2
D2
PC 2
k1
PC 2
k2
PC 2
k16
………………………
LS16
LS16
C16
D16
Hình 1.5. Sơ đồ tính khóa con trong hệ mã hóa DES
Khóa K là xâu dài 64 bit, trong đó 56 bit là khóa, 8 bit để kiểm tra tính chẵn
lẻ nhằm phát hiện sai, các bit này không tham gia vào quá trình tính toán.
11
Các bit kiểm tra tính chẵn lẻ nằm ở vị trí 8, 16, 24,…, 64 được xác định sao
cho mỗi byte chứa một số lẻ các số 1. Bởi vậy mỗi sai sót đơn lẻ được xác định
trong mỗi nhóm 8 bit
4/ Tính khóa ki như sau:
Với khóa K độ dài 64 bit, ta loại bỏ các bit kiểm tra tính chẵn lẻ, hoán vị 56
bit còn lại theo phép hoán vị PC 1 : PC 1 K C0 D0 , trong đó C0 là 28 bit đầu,
D0 là 28 bit cuối của PC 1 K
Với i 1, 2,...,16 ta tính Ci LSi Ci1 , Di LSi Di 1 , trong đó LSi là phép
chuyển vị vòng sang trái: dịch 1 vị trí nếu i 1, 2,9,16 , dịch 2 vị trí với những vị trí
i khác.
Với i 1, 2,...,16 , khóa ki được tính theo phép hoán vị PC 2 từ
Ci Di : ki PC 2 Ci Di (48 bit)
Phép hoán vị PC 1 :
57 49 41 33 25
1
58 50 42 34
10 2
59 51 43
19 11 3
60 52
17
26
35
44
9
18
27
36
63
7
14
21
55
62
6
13
47
54
61
5
39
46
53
28
31
38
45
20
23
30
37
12
15
22
29
4
21
13
5
28
20
12
4
Phép hoán vị PC 2
14 17 11 24
3
28 15 6
23 19 12 4
16 7
27 20
:
1
21
26
13
5
10
8
2
41
30
44
52
40
49
31
51
39
37
45
56
47
33
34
55
48
53
46
42
50
36
29
32
- Xem thêm -