1. Trang chủ
  2. » Luận Văn - Báo Cáo

HỆ MÃ HÓA CÔNG KHAI RSA QUÁ TRÌNH MÃ HÓA GIẢI MÃ VÀ CHỮ KÝ SỐ

63 628 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 63
Dung lượng 1,31 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Phần I LÝ THUYẾT CHUNG VỀ AN TOÀN BẢO MẬT THÔNG TIN Chương 1 MỘT SỐ KHÁI NIỆM 1.1 Khái niệm hệ mật mã 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: P: Là một tập hợp

Trang 1

MỤC LỤC

LỜI NÓI ĐẦU 3

Phần I 4

LÝ THUYẾT CHUNG VỀ AN TOÀN BẢO MẬT THÔNG TIN 4

Chương 1 4

MỘT SỐ KHÁI NIỆM 4

1.1 Khái niệm hệ mật mã 4

1.2 Mã hóa và giải mã 4

1.3 Quy trình mã hóa và giải mã dữ liệu 4

1.4 Khái niệm hệ mã cổ điển 5

1.5 Hệ mã công khai 6

Chương 2 7

MỘT SỐ HỆ MÃ CỔ ĐIỂN 7

2.1 Mã dịch vòng 7

2.2 Mã thay thế 8

2.3 Mã Affine 9

2.4 Mã Vigenere 11

2.5 Hệ mã Hill 12

2.6 Hệ mã Hoán vị 13

2.7 Các hệ mã dòng 15

2.8 Sơ lược về thám mã các hệ mã cổ điển 17

2.9 Nhận xét chung về các hệ mật mã cổ điển 18

Chương 3 19

HỆ MÃ DES 19

3.1 Mô tả DES 19

3.2 Ví dụ 27

Chương 4 31

MỘT SỐ HỆ MẬT MÃ CÔNG KHAI 31

4.1 Tổng quan 31

4.2 Hệ mã RSA 31

4.3 Hệ mã Ba Lô 32

Phần II 35

HỆ MÃ CÔNG KHAI RSA VÀ CÀI ĐẶT RSA 35

Chương 1 35

HỆ MÃ CÔNG KHAI RSA 35

1.1 Cơ sở toán học của thuật toán RSA 35

1.2 Tạo khóa của mã RSA 38

1.3 Mã hóa 39

1.4 Giải mã 40

1.5 Ví dụ 40

1.6 Một số vấn đề 41

Trang 2

1.7 Đánh giá độ an toàn 42

1.8 Chữ ký số bằng hệ mã RSA 44

Chương 2 46

CÀI ĐẶT THUẬT TOÁN RSA 46

2.1 Xây dựng lớp BigInteger để lưu số lớn 46

2.2 Cài đặt thuật toán 46

KẾT LUẬN 53

TÀI LIỆU THAM KHẢO 54

Phụ lục 55

MỘT SỐ MÃ NGUỒN 55

NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN 63

Trang 3

LỜI NÓI ĐẦU

Từ xưa đến nay thông tin luôn là yếu tố quan trọng trong các hoạt động của đời sống con người Trong thời đại ngày nay, các phương thức truyền đạt thông tin ngày càng đa dạng và phát triển Với sự ra đời của máy tính và mạng máy tính, việc trao đổi thông tin đã trở lên dễ dàng hơn, nhanh chóng hơn, đa dạng hơn Nhưng kèm theo đó là các nguy cơ xâm phạm thông tin cũng ngày càng tăng Nắm bắt được thông tin nhiều khi mang ý nghĩa quyết định, sống còn đặc biệt trong các lĩnh vực: kinh tế, chính trị, an ninh, quốc phòng…Vì vậy việc bảo mật thông tin đã, đang

và sẽ là vấn đề được đặt ra rất cấp bách Để giải quyết vấn đề đó các hệ mật mã đã

ra đời Từ các hệ mật mã sơ khai cổ điển như: hệ mã dịch vòng, hệ mã Hill, hệ mã Affine,…, cho đến các hệ mật mã hiện đại, phức tạp như hệ mã DES Các hệ mật

mã công khai như hệ mã RSA, hệ mã ba lô Nhưng đi kèm với sự ra đời và phát triển của các hệ mật mã là các phương pháp phá khóa các hệ mật mã đó Cuộc chiến giữa bảo mật thông tin và xâm phạm thông tin vẫn luôn diễn ra một cách thầm lặng nhưng vô cùng gay gắt

Với mong muốn tìm hiểu được các phương pháp bảo mật thông tin em đã chọn đề tài “HỆ MÃ HÓA CÔNG KHAI RSA: QUÁ TRÌNH MÃ HOÁ, GIẢI MÃ

VÀ CHỮ KÝ SỐ” làm đồ án tốt nghiệp Tuy đã có nhiều cố gắng trong việc xây dựng đồ án nhưng do còn hạn chế về mặt thời gian cũng như kiến thức và kinh nghiệm thực tế nên đồ án không tránh khỏi những thiếu sót Vì vậy em rất mong được sự chỉ bảo, đóng góp ý kiến của các thầy cô giáo để đồ án của em ngày càng hoàn thiện hơn

Trang 4

Phần I

LÝ THUYẾT CHUNG VỀ AN TOÀN BẢO MẬT

THÔNG TIN

Chương 1 MỘT SỐ KHÁI NIỆM

1.1 Khái niệm hệ mật mã

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:

P: Là một tập hợp hữu hạn các bản rõ, nó được gọi là không gian bản rõ

C: Là tập hữu hạn các bản mã, nó được gọi là không gian bản mã Mỗi phần tử của

C có thể nhận được bằng cách áp dụng phép mã hóa Ek lên một phần tử của P, với

kK

K: Là tập hữu hạn các khóa hay còn gọi là không gian khóa Đối với mỗi phần tử k của K được gọi là một khóa Số lượng của không gian khóa phải đủ lớn để “kẻ địch” không có đủ thời gian để thử mọi khóa có thể (phương pháp vét cạn)

Đối với mỗi kK có một quy tắc mã ek P: C và một quy tắc giải mã tương ứng

dkD Mỗi ek P: Cdk C: P là những hàm mà:Dk(ek(x)) x với mọi bản

Trang 5

Quy trình thực hiện như sau:

Bộ phận quản lý khóa thực hiện lập khoá mã hoá (Ke) và khóa giải mã (Kd)

Dữ liệu gốc được mã hóa nhờ khóa mã hóa Vấn đề ở đây là quản lý khóa như thế nào để cho việc mã hóa và giải mã tương đối đơn giản và đảm bảo tuyệt đối bí mật cho khóa giải mã

1.4 Khái niệm hệ mã cổ điển

Trong các hệ mã cổ điển, người ta sử dụng cùng một khóa ở hai phía dĩ nhiên hạn chế sự an toàn và phổ biến của phương pháp đối xứng, đồng thời cũng là điểm yếu, bởi vì chỉ cần một bên để lộ khóa thì bí mật sẽ bị mất

Hệ mã cổ điển là loại mã được thực hiện thông qua hàm f có tính thuận nghịch, sử dụng f để mã hóa, biết f có thể suy ra hàm giải mã 1

Khoá Ke Qu¶n lý kho¸ Khoá Kd

Hình 1.1: Quy trình mã hoá dữ liệu

Trang 7

Giả sử khóa cho MDV là K = 11 và bản rõ là :wewillmeetatmidnight

Đổi chuỗi ra số theo tứ tự trong bảng chữ cái ta có:

Ta thu được bản mã: HPHTWWXPPELEXTOYTRSE

Giả sử P = C = K = Z26 với 0  k  25 , Định nghĩa:

Trang 8

Giả sử P = C = K = Z26 K chứa mọi hoán vị có thể của 26 kí hiệu

Trang 9

Sau đây là một ví dụ về phép hoán vị ngẫu nhiên  tạo nên một hàm mã hóa (cũng như trước các ký hiệu của bản rõ được kí hiệu bằng chữ in thường còn các ký hiệu của bản mã được kí hiệu bằng chữ in hoa)

Như vậy e (a) X , e (b) N,… Hàm giải mã là phép hoán vị ngược Điều này được thực hiện bằng cách viết hàng thứ hai lên trước rồi sắp xếp theo thứ tự chữ cái Ta nhận được:

Trang 10

Ở đây tất cả các phép toán đều được thực hiện trên Z26

Để minh họa ta hãy mã hóa bản rõ “hot” Trước tiên ta biến đổi các chữ h, o, t thành

các thặng dư theo modulo 26 Ta được các số tương ứng là 7,14,19 bây giờ sẽ mã hóa:

0 26 mod 52 26 mod 3 7

23 26 mod 101 26 mod 3 14

6 26 mod 136 26 mod 3 19

Bởi vậy 3 kí hiệu của bản mã là 0, 23, 6 tương ứng với xâu kí tự axg

Thực hiện giải mã theo hàm giả mã ta thu được bản mã “hot”

2.3.2 Đánh giá độ an toàn

Do đặc trưng của hệ mã cổ điển: Hàm mã hóa phải khả nghịch, có f thì tính được 1

f , hàm f phải là hàm đơn ánh do định lý về nghiệm duy nhất của đồng dư

đa thức ax bmodm Bởi vậy, hàm mã hóa của hệ mã Affine là hàm ek(x) có nghiệm duy nhất khi (a,26) = 1

Trang 11

Cho m là một số nguyên dương cố định nào đó Giả sử P = C = K = (Z26)m

Với khoá K = ( k1, k1,…,km) ta xác định:

ek(x1, x2, …, xm) = (x1+k1, x2+k2,…, xm+km)

dk(y1, y2,…, ym) = (y1-k1, y2-k2, …, ym-km) Trong đó tất cả các phép toán đều được thực hiện trên Z26

Từ nhận xét trên ta thấy, sẽ có 12 cách chọn a, 26 cách chọn b do đó có: 12*26 = 312 cách chọn khóa Như vậy độ an toàn là nhỏ

2.4 Mã Vigenere

2.4.1 Mô tả

Trong cả hai hệ mã dịch vòng và mã thay thế (một khi khóa đã được chọn) mỗi ký tự sẽ được ánh xạ vào một ký tự duy nhất Vì lý do đó, các hệ mật còn được gọi là các hệ thay thế đơn biểu Còn đây là một hệ mật không phải là bộ chữ đơn, mật mã này lấy tên của Blaise de Vigenere sống vào thế kỷ XVI Hệ mã Vigenere được định nghĩa như sau:

Sử dụng phép tương ứng A <=> 0, B<=> 1,…, Z<=>25 mô tả ở trên ta có thể gắn cho mỗi khóa K với một chuỗi kí tự có độ dài m được gọi là từ khóa Mật mã Vigenere sẽ đồng thời mã hóa m kí tự

Trang 12

Bởi vậy dãy kí tự tương ứng của xâu bản mã sẽ là

mã hệ đơn biểu

2.5 Hệ mã Hill

2.5.1 Mô tả

Mật mã Hill cũng là một hệ mật thay thế đa biểu do Lester S.Hill đưa ra năm

1929 Giả sử m là một số nguyên dương P=C=(Z26)m Ý tưởng ở đây là lấy m tổ

Trang 13

Cho m là một số nguyên dương cố định Cho P=C=(Z26)m và cho

Tất cả các phép toán đều được thực hiện trong Z26

hợp tuyến tính của m ký tự trong một phần tử của bản rõ để tạo ra m ký tự ở một phần tử của bản mã Hệ mã Hill được định nghĩa như sau:

8 11

18 7

Do không gian khóa nhỏ hơn so với hệ mã Vigenere nên độ an toàn của hệ

mã Hill nhỏ hơn so với hệ mã Vigenere

2.6 Hệ mã Hoán vị

2.6.1 Mô tả

Trang 14

Cho m là một số nguyên dương xác định nào đó Cho P=C= (Z26)m và cho K gồm tất cả các hoán vị của {1,…,m} Đối với một khoá  (tức là một hoán vị)

π

-1 (m)) Trong đó 1

 là hoán vị ngược của hoán vị 

Tất cả các hệ mật mã thảo luận ở trên đều ít nhiều xoay quanh phép thay thế: Các ký tự của bản rõ được thay thế bằng các ký tự khác trong bản mã Ý tưởng của

mã hoán vị là giữ các ký tự của bản rõ không thay đổi nhưng sẽ thay đổi vị trí của chúng bằng cách sắp sếp lại các ký tự này Thật ra thì sự phân biệt giữa mã hoán vị

và mã thay thế đã được Giovani Porta chỉ ra từ năm 1563 Định nghĩa hình thức cho

mã hoán vị như sau:

Ví dụ:

Giả sử m = 6 và các phép hoán vị ( ) như sau:

Khi đó phép hoán vị ngược 1

Shesel lsseas hellsb ythese ashore

Bây giờ mỗi nhóm 6 chữ cái được sắp xếp lại theo phép hoán vị  ta có:

Trang 15

EESLSH SALSES LSHBLE HSYEET HRAEOS Như vậy bản mã thu được là: EESLSHSALSESLSHBLEHSYEET HRAEOS Quá trinh giải mã làm tương tự bằng phép hoán vị đảo 1

2.6.2 Đánh giá độ an toàn

Không giống với mã thay thế ở đây không có các phép toán đại số nào cần thực hiện khi mã hóa và giải mã nên thích hợp hơn cả là dùng các ký tự mà không dùng các thặng dư theo modulo 26 Thực tế mã hoán vị là trường hợp đặc biệt của

Các hệ mật thuộc dạng này thường được gọi là các mã khối Một quan điểm

sử dụng khác là mật mã dòng Ý tưởng cơ bản ở đây là tạo ra một dòng khóa z=z1z2 và dùng nó để mã hóa một xâu bản rõ x = x1x2… theo quy tắc

 , , ,1 1

Phần tử zi của dòng khóa được dùng để mã xi tạo ra y  i e iz x i Bởi vậy, để

mã hoá xâu bản rõ x1x2… ta phải tính liên tiếp : z1, y1,z2, y2…

Việc giải mã xâu bản mã: y1y2… có thể được thực hiện bằng cắch tính liên tiếp: z1, x1, z2, x2…

Dưới đây là định nghĩa toán học của mật mã dòng

Trang 16

Mật mã dòng là một bộ (P, C, K, L, F, E, D) thoả mãn được các điều kiện sau:

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: Là tập hữu hạn các khóa có thể (không gian khóa)

L: Là tập hữu hạn các bộ chữ của dòng khóa

F: f f1, 2,  là bộ tạo khóa dòng Trong đó, với mỗi i ≥ 1

L P

8 17 4 13 3 4 25 21 14 20 Bây giờ cộng các phần tử tương ứng rồi rút gọn theo modulo 26:

25 21 17 16 7 3 20 9 8 12 Bản mã ở dạng ký tự là : ZVRQHDUJIM

Với 0  z  25 ta xác định

ez(x) = x + z mod 26

dz(y) = y - z mod 26 (x,y  Z26 )

Trang 17

Giải mã:

Trước tiên biến đổi xâu thành dãy số:

25 21 17 16 7 3 20 9 8 12 Sau đó ta tính

2.7.3 Đánh giá độ an toàn của khóa tự sinh

Dĩ nhiên là mã dùng khóa tự sinh là không an toàn do chỉ có 26 khóa

2.8 Sơ lược về thám mã các hệ mã cổ điển

Trong phần này ta sẽ bàn tới một vài kỹ thuật thám mã Giả thiết chung ở đây

là luôn coi đối phương đã biết hệ mật đang dùng Giả thiết này được gọi là nguyên

lý Kerekhoff Dĩ nhiên, nếu đối phương không biết hệ mật được dùng thì nhiệm vụ của anh ta sẽ khó khăn hơn Tuy nhiên, ta không muốn độ mật của một hệ mã lại dựa trên một giả thiết không chắc chắn là đối phương không biết hệ mật được sử dụng Do đó, mục tiêu trong thiết kế một hệ mật là phải đạt được độ mật dưới giả thiết Kerekhoff

Trước tiên ta phân biệt các mức độ tấn công khác nhau vào các hệ mật Sau

đó là một số loại thông dụng nhất:

- Chỉ có bản mã: Thám mã chỉ có xâu bản mã y

- Chỉ có bản mã y và một bản rõ x

- Bản rõ đã biết được lựa chọn: Một người tấn công có thể truy nhập được vào

hệ thống và chọn một bản rõ x, sau đó mã hóa thành bản mã y tương ứng

- Bản mã được lựa chọn: Người tấn công có thể truy nhập được vào hệ thống

và chọn một bản mã y, sau đó giải mã được thành bản rõ x tương ứng Trong mỗi trường hợp trên, điều đối tượng cần phải xác định chính là khóa đã

sử dụng Rõ ràng 4 mức tấn công trên đã được liệt kê theo độ tăng của sức mạnh

Trang 18

tấn công Nhận thấy rằng, tấn công theo bản mã được lựa chọn là thích hợp với các

hệ mật khóa công khai

 Phương pháp chung

Kỹ thuật thám mã sử dụng phương pháp chung là dùng các kỹ thuật thống kê

để tìm tần suất xuất hiện các ký tự và các cụm ký tự

Đối với các bản mã cần phá, cũng thực hiện phép thống kê tương ứng rồi lần lượt thử gán các ký hiệu có tần suất xuất hiện tương đương với nhau Bằng cách như vậy có thể làm giảm bớt số lần thử

2.9 Nhận xét chung về các hệ mật mã cổ điển

- Tính bảo mật kém

- Khóa có thể có nhiều dạng khác nhau nhưng chỉ có một khóa chung duy nhất cho

cả người mã hóa và người giải mã

- Thuật toán nói chung phải giữ bí mật: e k xd k ye k1 x

- Không thể dùng vào mục đích xác thực, không dùng được cho chữ kí điện tử

Trang 19

Chương 3

HỆ MÃ DES

Vào đầu những năm 70, hãng IBM (Mỹ) đề xuất một thuật toán mã khối được gọi là thuật toán Lucifer Thuật toán đó đáp ứng các yêu cầu của cơ quan chuẩn quốc gia Mỹ NBS (National Bureau of Standard) và được ứng dụng ở các trạm ngân hàng tự động Thuật toán Lucifer sau này được phát triển cải tiến trở thành mã chuẩn DES

3.1 Mô tả DES

Thuật toán tiến hành theo 3 giai đoạn:

 Với bản rõ cho trước x, một xâu bít x0 sẽ được xây dựng bằng cách hoán vị các bít 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 bít đầu và R0 là 32 bít cuối

 Sau đó tính toán 16 lần lặp theo một hàm xác định Ta sẽ tính LiRi, 1≤i ≤16 theo qui tắc sau:

Trong đó  kí hiệu phép hoặc loại trừ của hai xâu bít (cộng theo modulo 2)

F là một hàm mà ta sẽ mô tả ở sau, còn K1, K2, …, K16 là các xâu bít độ dài 48 đượ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ị bít trong K) K1,…, k16 sẽ tạo thành bảng khóa Một vòng của phép mã hóa được mô tả trên hình 3.1

 Áp dụng phép hoán vị ngược IP-1 cho xâu bít R16L16, ta thu được bản mã y Tức là y = IP-1 (R16L16) Hãy chú ý thứ tự đã đảo của L16 và R16

Trang 20

Hình 3.1 Một vòng của DES

Hàm f có hai biến vào: biến thứ nhất A là xâu bít độ dài 32, biến thứ hai J là một xâu bít độ dài 48 Đầu ra của f là một xâu bít độ dài 32 Các bước sau được thực hiện:

1 Biến thứ nhất A được mở rộng thành một xâu bít độ dài 48 theo một hàm

mở rộng cố định E E(A) gồm 32 bít của A (được hoán vị theo cách cố định) với 16 bít xuất hiện hai lần

2 Tính E(A)  J và viết kết quả thành một chuỗi 8 xâu 6 bít=

Li-1 Ri-1

+

Li Ri

Trang 21

4 Xâu bít C= C1C2…C8 có độ dài 32bit được hoán vị theo phép hoán vị cố định P Xâu kết quả là P(C) được xác định là f A,J 

Hàm f được mô tả trong hình 3.2 Chủ yếu nó gồm một phép thế (sử dụng hộp S), tiếp sau đó là phép hoán vị P 16 phép lặp của f sẽ tạo nên một hệ mật như

Trang 25

là một xâu bít độ dài 64, trong đó 56 bít là khóa và 8 bít để kiểm tra tính chẵn lẻ nhằm phát hiện sai Các bít ở các vị trí 8,16,…, 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ột sai sót đơn lẻ có thể phát hiện được trong mỗi nhóm 8 bít Các bít kiểm tra bị bỏ qua trong quá trình tính toán bảng khóa

Với một khóa K 64 bít cho trước, ta loại bỏ các bít kiểm tra tính chẵn lẻ và hoán vị các bít còn lại của K theo phép hoán vị cố định PC -1 Ta viết:

Trang 26

Hình 3.3 Khóa của DES

Các hoán vị PC-1 và PC-2 được dùng trong bảng khoá là:

LS16 LS16

C16 D16 PC-2 K16

Trang 27

3.2 Ví dụ

Sau đây là một ví dụ về phép mã DES Giả sử ta mã bản rõ (ở dạng mã hexa

- hệ đếm 16):

0 1 2 3 4 5 6 7 8 9 A B C D E F Bằng cách dùng khóa:

1 2 3 4 5 7 7 9 9 B B C D F F 1 Khoá ở dạng nhị phân không chứa các bít kiểm tra là:

00010010011010010101101111001001101101111011011111111000

Sử dụng IP, ta thu được L0 và R0 (ở dạng nhị phân) như sau:

L0 = 1100110000000000110010011111111

L1 =R0 = 11110000101010101111000010101010 Sau đó thực hiện 16 vòng của phép mã DES như sau:

E(R0) = 011110100001010101010101011110100001010101010101

K1 = 000110110000001011101111111111000111000001110010 E(R0)  K1 = 011000010001011110111010100001100110010100100111 S-box outputs 01011100100000101011010110010111

L2 = R1 = 11101111010010100110010101000100

Trang 28

E(R1) = 011101011110101001010100001100001010101000001001

K2 = 011110011010111011011001110110111100100111100101 E(R1) K2 = 000011000100010010001101111010110110001111101100 S-box outputs 11111000110100000011101010101110

L3 = R2 = 11001100000000010111011100001001

E(R2) = 111001011000000000000010101110101110100001010011

K3 = 010101011111110010001010010000101100111110011001 E(R2) K3 = 101100000111110010001000111110000010011111001010 S-box outputs 00100111000100001110000101101111

L4 =R3 = 10100010010111000000101111110100

E(R3) =01010000010000101111100000000101011111111010100

K4 = 011100101010110111010110110110110011010100011101 E(R3) K4 = 001000101110111100101110110111100100101010110100 S-box outputs 00100001111011011001111100111010

L5 = R4 = 01110111001000100000000001000101

E(R4) = 101110101110100100000100000000000000001000001010

K5 = 011111001110110000000111111010110101001110101000 E(R4)  K5 = 110001100000010100000011111010110101000110100010 S-box outputs 01010000110010000011000111101011

L6 = R5 = 10001010010011111010011000110111

E(R5) = 110001010100001001011111110100001100000110101111

K6 = 011000111010010100111110010100000111101100101111 E(R5)  K6 =101001101110011101100001100000001011101010000000 S-box outputs 01000001111100110100110000111101

L7 = R6 = 11101001011001111100110101101001

E(R6) = 111101010010101100001111111001011010101101010011

K7 = 111011001000010010110111111101100001100010111100 E(R6)  K7 = 000110011010111110111000000100111011001111101111 S- box outputs 00010000011101010100000010101101

L8 = R7 = 00000110010010101011101000010000

Trang 29

E(R7) = 000000001100001001010101010111110100000010100000

K8 = 111101111000101000111010110000010011101111111011 E(R7)  K8 = 111101110100100001101111100111100111101101011011 S-box outputs 01101100000110000111110010101110

L9 = R8 = 11010101011010010100101110010000

E(R8) = 011010101010101101010010101001010111110010100001

K9 = 111000001101101111101011111011011110011110000001 E(R8)  K9 = 100010100111000010111001010010001001101100100000 S-box outputs 00010001000011000101011101110111

L10 = R9 = 00100100011111001100011001111010

E(R9) = 000100001000001111111001011000001100001111110100

K10 = 101100011111001101000111101110100100011001001111 E(R9)  K10 = 101000010111000010111110110110101000010110111011 S-box outputs 11011010000001000101001001110101

L11 = R10 = 10110111110101011101011110110010

E(R10) = 010110101111111010101011111010101111110110100101

K11 = 001000010101111111010011110111101101001110000110 E(R10)  K11 = 011110111010000101111000001101000010111000100011 S-box outputs 01110011000001011101000100000001

L12 = R11 = 11000101011110000011110001111000

E(R11) = 011000001010101111110000000111111000001111110001

K12 = 011101010111000111110101100101000110011111101001 E(R11)  K12 = 000101011101101000000101100010111110010000011000 S-box outputs 01110011000001011101000100000001

L13 = R12 = 01110101101111010001100001011000

E(R12) = 001110101011110111111010100011110000001011110000

K13 = 100101111100010111010001111110101011101001000001 E(R12)  K13 = 101011010111100000101011011101011011100010110001 Sbox outputs 10011010110100011000101101001111

L14 = R13 = 00011000110000110001010101011010

Trang 30

E(R13) = 000011110001011000000110100010101010101011110100

K13 = 010111110100001110110111111100101110011100111010 E(R13)  K14 = 010100000101010110110001011110000100110111001110 S-box outputs 01100100011110011001101011110001

L15 = R14 = 11000010100011001001011000001101

E(R14) = 111000000101010001011001010010101100000001011011

K15 = 101111111001000110001101001111010011111100001010 E(R14)  K15 = 010111111100010111010100011101111111111101010001 S-box outputs 10110010111010001000110100111100

R15 = 01000011010000100011001000110100

E(R15) = 001000000110101000000100000110100100000110101000

K16 = 110010110011110110001011000011100001011111110101 E(R15)  K16 = 111010110101011110001111000101000101011001011101 S-box outputs 10100111100000110010010000101001

R16 = 00001010010011001101100110010101

Cuối cùng áp dụng IP-1 vào L16, R16 ta nhận được bản mã hexa là:

8 5 E 8 1 3 5 4 0 F 0 A B 4 0 5

Trang 31

Có những thuật toán mật mã khóa bất đối xứng không có tính chất khóa công khai

và bí mật như đề cập ở trên mà cả hai khóa (cho mã hóa và giải mã) đều cần phải giữ bí mật

Trong mật mã hóa khóa công khai, khóa cá nhân phải được giữ bí mật trong khi khóa công khai được phổ biến công khai Trong 2 khóa, một dùng để mã hóa và khóa còn lại dùng để giải mã Điều quan trọng đối với hệ thống là không thể tìm ra khóa bí mật nếu chỉ biết khóa công khai

Hệ thống mật mã hóa khóa công khai có thể sử dụng với các mục đích:

 Mã hóa: giữ bí mật thông tin và chỉ có người có khóa bí mật mới giải mã được

 Tạo chữ ký số: cho phép kiểm tra một văn bản có phải đã được tạo với một khóa bí mật nào đó hay không

 Thỏa thuận khóa: cho phép thiết lập khóa dùng để trao đổi thông tin mật giữa 2 bên

Thông thường, các kỹ thuật mật mã hóa khóa công khai đòi hỏi khối lượng tính toán nhiều hơn các kỹ thuật mã hóa khóa đối xứng nhưng những lợi điểm mà chúng mang lại khiến cho chúng được áp dụng trong nhiều ứng dụng

4.2 Hệ mã RSA

Trong mật mã học, RSA là một thuật toán mật mã hóa khóa công khai Đây

là thuật toán đầu tiên phù hợp với việc tạo ra chữ ký điện tử đồng thời với việc mã hóa Nó đánh dấu một sự tiến bộ vượt bậc của lĩnh vực mật mã học trong việc sử dụng khóa công cộng RSA đang được sử dụng phổ biến trong thương mại điện tử

và được cho là đảm bảo an toàn với điều kiện độ dài khóa đủ lớn

Ngày đăng: 03/08/2016, 16:04

HÌNH ẢNH LIÊN QUAN

Hình 1.1: Quy trình mã hoá dữ liệu - HỆ MÃ HÓA CÔNG KHAI RSA QUÁ TRÌNH MÃ HÓA GIẢI MÃ VÀ CHỮ KÝ SỐ
Hình 1.1 Quy trình mã hoá dữ liệu (Trang 5)
Hình 3.1. Một vòng của DES - HỆ MÃ HÓA CÔNG KHAI RSA QUÁ TRÌNH MÃ HÓA GIẢI MÃ VÀ CHỮ KÝ SỐ
Hình 3.1. Một vòng của DES (Trang 20)
Hình 3.2: Hàm f của DES - HỆ MÃ HÓA CÔNG KHAI RSA QUÁ TRÌNH MÃ HÓA GIẢI MÃ VÀ CHỮ KÝ SỐ
Hình 3.2 Hàm f của DES (Trang 21)
Bảng chọn bit - HỆ MÃ HÓA CÔNG KHAI RSA QUÁ TRÌNH MÃ HÓA GIẢI MÃ VÀ CHỮ KÝ SỐ
Bảng ch ọn bit (Trang 23)
Hình 3.3. Khóa của DES - HỆ MÃ HÓA CÔNG KHAI RSA QUÁ TRÌNH MÃ HÓA GIẢI MÃ VÀ CHỮ KÝ SỐ
Hình 3.3. Khóa của DES (Trang 26)
Hình 2.1 Nội dung của file thocusung.txt - HỆ MÃ HÓA CÔNG KHAI RSA QUÁ TRÌNH MÃ HÓA GIẢI MÃ VÀ CHỮ KÝ SỐ
Hình 2.1 Nội dung của file thocusung.txt (Trang 47)
Hình 2.3 Giao diện nhập khóa của quá trình mã hóa và ký. - HỆ MÃ HÓA CÔNG KHAI RSA QUÁ TRÌNH MÃ HÓA GIẢI MÃ VÀ CHỮ KÝ SỐ
Hình 2.3 Giao diện nhập khóa của quá trình mã hóa và ký (Trang 49)
Hình 2.4 Giao diện của quá trình kiểm tra chữ ký và giải mã - HỆ MÃ HÓA CÔNG KHAI RSA QUÁ TRÌNH MÃ HÓA GIẢI MÃ VÀ CHỮ KÝ SỐ
Hình 2.4 Giao diện của quá trình kiểm tra chữ ký và giải mã (Trang 50)
Hình 2.5 Giao diện nhập khóa cho quá trình kiểm tra chữ ký và giải mã - HỆ MÃ HÓA CÔNG KHAI RSA QUÁ TRÌNH MÃ HÓA GIẢI MÃ VÀ CHỮ KÝ SỐ
Hình 2.5 Giao diện nhập khóa cho quá trình kiểm tra chữ ký và giải mã (Trang 51)
Hình 2.6 Nội dung  của file giaima.txt - HỆ MÃ HÓA CÔNG KHAI RSA QUÁ TRÌNH MÃ HÓA GIẢI MÃ VÀ CHỮ KÝ SỐ
Hình 2.6 Nội dung của file giaima.txt (Trang 52)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w