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

Tiểu luận Mật mã và An toàn thông tin Hệ mã hóa khóa đối xứng

13 1,7K 13

Đ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 13
Dung lượng 570,6 KB

Nội dung

Tiểu luận Mật mã và An toàn thông tin Hệ mã hóa khóa đối xứng Ngày nay, công nghệ thông tin ngày càng phát triển, mạng lưới Internet ngày càng mở rộng. Sự trao đổi thông tin qua mạng ngày càng phổ biến. Yêu cầu bảo đảm an toàn thông tin trở thành nhu cầu chung của mọi hoạt động truyền thông trong kinh tế, xã hội và giao lưu giữa người và người.

Trang 1

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Tiểu luận Môn: Mật mã và An toàn thông tin

Đề tài: Hệ mã hóa khóa đối xứng

Giáo viên hướng dẫn: PGS.TS Trịnh Nhật Tiến Học viên thực hiện: Nguyễn Thị Tươi

HÀ NỘI - 2014

Trang 2

Mục lục

Mở đầu 1

Chương 1 Hệ mã hóa 2

1.1 Định nghĩa hệ mã hóa 2

1.2 Hệ mã hóa khóa đối xứng 2

1.2.1 Khái niệm 2

1.2.2 Ưu và nhược điểm của hệ mã hóa khóa đối xứng 3

1.2.2.1 Ưu điểm: 3

1.2.2.2 Hạn chế: 3

1.2.3 Môi trường sử dụng 4

Chương 2 Một số hệ mã hóa khóa đối xứng cổ điển 5

2.1 Hệ mã hóa: Dịch chuyển 5

2.1.1 Sơ đồ 5

2.1.2 Độ an toàn 5

2.2 Hệ mã hóa: Thay thế (Hoán vị toàn cục) 6

2.2.1 Sơ đồ 6

2.2.2 Độ an toàn 6

2.3 Hệ mã hóa: AFFINE 7

2.3.1 Sơ đồ 7

2.3.2 Độ an toàn 7

2.4 Hệ mã hóa : VIGENERE 8

2.4.1 Sơ đồ 8

2.4.2 Độ an toàn 8

2.5 Hệ mã hóa: Hoán vị cục bộ 9

2.5.1 Sơ đồ 9

2.5.2 Độ an toàn 9

2.6 Hệ mã hóa: HILL 10

2.6.1 Sơ đồ 10

2.6.2 Độ an toàn 10

Chương 3 Chương trình thực nghiệm 11

3.1 Giới thiệu chương trình 11

3.2 Cài đặt và hướng dẫn chạy chương trình 11

Trang 3

1

Mở đầu

Ngày nay, công nghệ thông tin ngày càng phát triển, mạng lưới Internet ngày càng mở rộng Sự trao đổi thông tin qua mạng ngày càng phổ biến Yêu cầu bảo đảm an toàn thông tin trở thành nhu cầu chung của mọi hoạt động truyền thông trong kinh tế, xã hội và giao lưu giữa người và người Để có thể bảo vệ các thông tin trên đường truyền, các nhà khoa học đã đưa ra các hệ mã hóa giúp mã hóa và giải mã sử dụng khóa mà chỉ người có quyền mới biết, đảm bảo “che giấu” được thông tin với người không có quyền

Hiện nay có rất nhiều hệ mã hóa Các hệ mã hóa được phân loại theo nhiều cách khác nhau Dựa theo tính chất của khóa, các hệ mã hóa chia làm hai loại: hệ mã hóa khóa đối xứng (hệ mã hóa khóa riêng) và hệ mã hóa khóa bất đối xứng (hệ mã hóa khóa công khai) Dựa theo đặc trưng bản rõ, các hệ mã hóa chia thành hai loại: mã hóa khối

và mã hóa dòng Ngoài ra, các hệ mã hóa còn được phân loại dựa theo ứng dụng mã hóa,… Mỗi hệ mã hóa phù hợp với các mục đích sử dụng riêng, có những ưu và nhược điểm khác nhau Hệ mã hóa khóa riêng thực hiện mã hóa và giải mã nhanh hơn hệ mã hóa công khai, nhưng độ an toàn không cao Hệ mã hóa này phù hợp với môi trương dễ trao chuyển bí mật Hệ mã hóa khóa công khai có ưu điểm chỉ cần viết thuật toán một lần, công khai cho nhiều lần dùng, nhiều người sử dụng,… nhưng thời gian thực hiện lâu hơn hệ mã hóa khóa riêng Trong phạm vi của tiểu luận, chúng tôi sẽ trình bày về hệ

mã hóa khóa riêng và một số loại hệ mã hóa khóa riêng cụ thể

Bài tiểu luận bao gồm các phần:

Chương 1: Những nét cơ bản về hệ mã hóa khóa riêng

Chương 2: Một số hệ mã hóa khóa riêng cụ thể

Chương 3: Cài đặt chương trình thử nghiệm một số hệ mã hóa khóa riêng

Trang 4

2

Chương 1 Hệ mã hóa

1.1 Định nghĩa 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ản mã có thể

K là tập hữu hạn các khoá có thể

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ã keK, có hàm lập mã eke E, eke: PC,

Với khóa giải mã kdK, có hàm giải mã dkd D, dkd: CP,

sao cho dkd (e ke ( x )) = x, x  P

Ở đây x được gọi là bản rõ, eke ( x ) được gọi là bản mã

1.2 Hệ mã hóa khóa đối xứng

1.2.1 Khái niệm

Mã hóa khóa đối xứng là Hệ mã hóa mà biết được khóa lập mã thì có thể “dễ”

tính được khóa giải mã và ngược lại Đặc biệt một số Hệ mã hóa có khoá lập mã và khoá giải mã trùng nhau (ke = kd), như Hệ mã hóa “dịch chuyển” hay DES

Hệ mã hóa khóa đối xứng còn gọi là Hệ mã hóa khoá bí mật, hay khóa riêng, vì phải giữ bí mật cả 2 khóa Trước khi dùng Hệ mã hóa khóa đối xứng, người gửi và người nhận phải thoả thuận thuật toán mã hóa và khoá chung (lập mã hay giải mã), khoá phải được giữ bí mật Độ an toàn của Hệ mã hóa loại này phụ thuộc vào khoá

oscar

Trang 5

3

Alice và Bob truyền tin cho nhau sử dụng hệ mã hóa khóa đối xứng Trước tiên,

họ chọn ngẫu nhiên khóa k  K Việc chọn khóa này được thực hiện bí mật, chỉ riêng Alice và Bob biết (Oscar hay bất cứ ai khác đều không biết) Giả sử Alicce gửi tin nhắn cho Bob trên môt kênh truyền không mật và ta xem tin nhắn này là một chuỗi x = x1, x2,

…xn với số nguyên n  1 nào đó Ở đây, mỗi một ký hiệu của bản rõ x  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ởi vậy, Alice

sẽ tính y = ek (xi) 1  i  n, thu được chuỗi bản mã: y = y1y2……yn sẽ được gửi trên kênh Khi Bob nhận được được bản mã y, Bob sẽ giải mã bằng hàm giải mã dk và thu được bản rõ x

1.2.2 Ưu và nhược điểm của hệ mã hóa khóa đối xứng

1.2.2.1 Ưu điểm:

Hệ mã hóa khóa đối xứng đơn giản hơn và quá trình mã hóa, giải mã nhanh hơn

Hệ mã hóa khóa công khai

1.2.2.2 Hạn chế:

1) Mã hóa khóa đối xứng chưa thật an toàn với lý do sau:

Người mã hoá và người giải mã phải có “chung” một khoá Khóa phải được giữ

bí mật tuyệt đối, vì biết khoá này “dễ” xác định được khoá kia và ngược lại

Kênh truyền

Nguồn khóa

Trang 6

4

2) Vấn đề thỏa thuận khoá và quản lý khóa chung là khó khăn và phức tạp Người gửi và người nhận phải luôn thống nhất với nhau về khoá Việc thay đổi khoá là rất khó

và dễ bị lộ Khóa chung phải được gửi cho nhau trên kênh an toàn

Mặt khác khi hai người (lập mã, giải mã) cùng biết “chung” một bí mật, thì càng khó giữ được bí mật

1.2.3 Môi trường sử dụng

Hệ mã hóa khóa đối xứng thường được sử dụng trong môi trường mà khoá 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

Trang 7

5

Chương 2 Một số hệ mã hóa khóa đối xứng cổ điển

2.1 Hệ mã hóa: Dịch chuyển

2.1.1 Sơ đồ

Đặt P = C = K = Z26 Bản mã y và bản rõ Z26

Với khóa k K, ta định nghĩa:

Hàm Mã hóa: y = ek ( x) = (x + k) mod 27

Hàm Giải mã: x = dk ( y) = (yk) mod 27

Ví dụ

* Bản rõ chữ: T O I N A Y T H A V I R U S

* Chọn khóa k = 3

* Bản rõ số: 19 14 8 26 13 0 24 26 19 7 0 26 21 8 17 20 18

* Với phép mã hóa y = ek ( x) = (x + k) mod 26 = (x + 3) mod 26, ta nhận được:

* Bản mã số: 22 17 11 3 16 3 1 3 22 10 3 3 24 11 20 23 21

* Bản mã chữ: W R L D Q D B D W K D D Y L U X V

 Với phép giải mã x = dk ( y) = (yk) mod 26 = (y3) mod 26, ta nhận lại

được bản rõ số, sau đó là bản rõ chữ

2.1.2 Độ an toàn

Độ an toàn của mã dịch chuyển: Rất thấp

Tập khóa K chỉ có 26 khóa, nên việc phá khóa (thám mã) có thể thực hiện dễ dàng bằng cách thử kiểm tra từng khóa: k = 1, 2, 3, , 26

Trang 8

6

2.2 Hệ mã hóa: Thay thế (Hoán vị toàn cục)

2.2.1 Sơ đồ

Đặt P = C = Z26 Bản mã y và bản rõ x Z26

Tập khóa K là tập mọi hoán vị trên Z26

Với khóa k =   K, tức là 1 hoán vị trên Z26, ta định nghĩa:

Mã hóa: y = e ( x ) = ( x)

Giải mã: x = d( y ) = -1 ( y )

Ví dụ

* Bản rõ chữ: T O I N A Y T H A V I R U S

* Chọn khóa k =  là hoán vị:

A B C D E F G H I J K L M N O P Q R S T U V X Y

Y X V U T S R Q P O N M L K J I H G F E D C B A Z

* Mã hóa theo công thức y = e ( x ) = ( x ):

* Bản mã chữ: E J P Z K Y V Z E Q Y Z C P G D F

* Giải mã theo công thức x = d( y ) = -1 ( y ), ta nhận lại được bản rõ chữ 2.2.2 Độ an toàn

Độ an toàn của mã thay thế: Thuộc loại cao

Tập khóa K có 26 ! khóa ( > 4 1026 ), nên việc phá khóa (thám mã) có thể

thực hiện bằng cách duyệt tuần tự 26 ! hoán vị của 26 chữ cái

Để kiểm tra tất cả 26 ! khóa, tốn rất nhiều thời gian !

Hiện nay với hệ mã này, người ta có phương pháp thám mã khác nhanh hơn

Trang 9

7

2.3 Hệ mã hóa: AFFINE

2.3.1 Sơ đồ

Đặt P = C = Z26 Bản mã y và bản rõ x Z26

Tập khóa K = {( a , b), với a , b Z26 , UCLN( a, 26) = 1}

Với khóa k = ( a , b) K, ta định nghĩa:

Phép Mã hóa y = ek ( x) = (a x + b) mod 26

Phép Giải mã x = dk ( y) = a -1 ( y - b) mod 26

Ví dụ

* Bản rõ chữ: CHIEUN A YOVUONHO A

* Chọn khóa k = (a , b) = ( 3, 6)

* Bản rõ số: x = 2 7 8 4 20 13 0 24 14 21 20 14 13 7 14 0

Mã hóa theo công thức y = ek ( x) = (a x + b) mod 26 = ( 3 x + 6) mod 26

* Bản mã số: y = 12 1 4 18 14 19 6 0 22 17 14 22 19 1 22 6

* Bản mã chữ: MBESOT G AWROWTBW G

Giải mã theo công thức x = dk ( y) = a -1 (y – b) mod 26

= 3 -1 (y – 6) mod 26 = 9 * (y – 6) mod 26

2.3.2 Độ an toàn

Độ an toàn của Hệ mã hóa Affine: Rất thấp

+ Điều kiện UCLN(a, 26) = 1 để bảo đảm a có phần tử nghịch đảo a –1 mod 26, tức là

thuật toán giải mã dK luôn thực hiện được

+ Số lượng a Z26 nguyên tố với 26 là (26) = 12 , đó là

1, 3, 5, 7 ,9, 11, 15, 17, 19, 21, 23, 25 Các số nghịch đảo theo (mod 26) tương ứng: 1, 9, 21, 15, 3, 19, 7, 23, 11, 5, 17, 25 + Số lượng b Z26 là 26

+ Số các khoá (a , b) có thể là 12 * 26 = 312 Rất ít !

Như vậy việc dò tìm khóa mật khá dễ dàng

Trang 10

8

2.4 Hệ mã hóa : VIGENERE

2.4.1 Sơ đồ

Đặt P = C = K = (Z26) m , m là số nguyên dương, các phép toán thực hiện trong Z26

Bản mã Y và bản rõ X (Z26) m Khoá k = (k 1, k 2, …., k m) gồm m phần tử

Mã hóa Y =(y 1 , y 2 , …, y m)= ek ( x 1 , x 2 , …, x m)=( x 1 + k 1 , x 2 + k 2 , …, x m + k m) mod m

Giải mã X =(x 1 , x 2 , …, x m)= dk ( y 1 , y 2 , …, y m)=( y 1 - k 1 , y 2 - k 2 , …, y m – k m) mod 26

Ví dụ

* Bản rõ chữ: THISISACRYPTOSYSTEM

Chọn khoá: k = “KWORD” = {10 , 22 , 14 , 17 , 3} với độ dài m=5

* Bản rõ số: SX = 19 7 8 18 8 18 0 2 17 24 15 19 14 18 24 18 19 4 12

* Mã hóa:

Chia bản rõ SX thành các đoạn, mỗi đoạn gồm m =5 số

Với mỗi đoạn, áp dụng công thức mã hóa, ta nhận được bản mã số

19

10

7

22

8

14

18

17

8

3

18

10

0

22

2

14

17

17

24

3

15

10

19

22

14

14

18

17

24

3

18

10

19

22

4

14

12

17

* Bản mã số: SY = 3 3 22 9 11 2 22 16 8 1 25 15 2 9 1 2 15 18 3

* Bản mã chữ: DDWJL CWQIB ZPCJB CPSD

2.4.2 Độ an toàn

Độ an toàn của mã VIGENERE: Tương đối cao

Nếu khoá gồm m ký tự khác nhau, mỗi ký tự có thể được ánh xạ vào 1 trong m

ký tự có thể, do đó hệ mật này được gọi là hệ thay thế đa biểu

Như vậy số khoá (độ dài m ) có thể có trong mật Vigenere là 26 m

Nếu dùng phương pháp “tấn công vét cạn”, thám mã phải kiểm tra 26 m khóa

Trang 11

9

Hiện nay với hệ mã này, người ta có phương pháp thám mã khác nhanh hơn

2.5 Hệ mã hóa: Hoán vị cục bộ

2.5.1 Sơ đồ

Đặt P = C = Z26 m , m là số nguyên dương Bản mã Y và bản rõ X (Z26) m Tập khóa K là tập tất cả các hoán vị của {1, 2, …., m}

Với mỗi khoá k =  K , k = (k 1, k 2, …., k m) gồm m phần tử, ta định nghĩa:

* Mã hóa Y = (y 1 , y 2 , …, y m) = ek ( x 1 , x 2 , …, x m) = ( x k(1) , x k(2) , … , x k(m))

* Giải mã X = (x 1 , x 2 , …, x m) = dk ( y 1 , y 2 , …, y m) = ( y k(1) -1 , y k(2) -1 , … , y k(m) -1) Trong đó k -1 = -1 là hoán vị ngược của 

Ví dụ

* Bản rõ chữ C X = SHESEL ISSEAS HELLSB YTHESE ASHO

Đặt P = C = Z26 m , trong đó m = 6

Chọn khoá k là một hoán vị  của (1, 2, 3, 4, 5, 6):

Hoán vị ngược là -1 là :

* Mã hóa: Tách bản rõ thành từng nhóm 6 kí tự:

SHESEL | ISSEAS | HELLSB | YTHESE | ASHO RE

Với mỗi nhóm 6 ký tự, sắp xếp lại các chữ theo hoán vị , ta nhận được:

EESLSH | SALSES | LSHBLE | HSYEET | HRAEOS

* Bản mã chữ: C Y = EESLSHSALSES LSHBLEHSYEETHRAE

* Dùng hoán vị ngược -1, ta sẽ thu được bản rõ C X

2.5.2 Độ an toàn

Nếu dùng phương pháp “tấn công vét cạn”, thám mã phải kiểm tra số khóa có thể là:

1 ! + 2! + 3 ! + … + m ! trong đó m 26

Hiện nay với hệ mã này, người ta có phương pháp thám mã khác nhanh hơn

Trang 12

10

2.6 Hệ mã hóa: HILL

2.6.1 Sơ đồ

Lester S Hill đưa ra năm 1929

Đặt P = C = Z26 m , m là số nguyên dương Bản mã Y và bản rõ X (Z26) m Tập khóa K = {KZ 26 m*m / (det ( K ), 26) = 1} ( K phải có K -1 )

Mỗi khóa K là một “Chùm chìa khóa” (một Ma trận “Các chìa khóa” )

Với mỗi K  K , định nghĩa:

* Hàm lập mã: Y = (y 1 , y 2 , …, y m) = ek (x1 , x 2 , …, x m) = (x1 , x 2 , …, x m) * K

* Hàm giải mã: X = (x 1 , x 2 , …, x m) = dk (y1 , y 2 , …, y m) = (y1 , y 2 , …, y m) * K -1

Ví dụ

* Bản rõ chữ: TUDO

7 18

Chọn m = 2, khóa K = 



7 3

8 11

, bảo đảm UCLN (det ( K ), 26) = 1, tính K -1 =

23 11

* Bản rõ số: 19 20 | 3 14

x 1 x 2 | x 1 x 2

Với mỗi bộ rõ số (x 1 , x 2), theo hàm lập mã ( y 1 , y 2) = ( x 1 , x 2) * K, ta tính được:

y 1 = 11 * x 1 + 3 * x 2 , y 2 = 8 * x 1 + 7 * x 2

* Bản mã số: 9 6 | 23 18

* Bản mã chữ: FGXS

2.6.2 Độ an toàn

Nếu dùng phương pháp “tấn công vét cạn”, thám mã phải kiểm tra số khóa có thể với m lần lượt là 2, 3, 4, … trong đó m lớn nhất là bằng độ dài bản rõ

Trang 13

11

Chương 3 Chương trình thực nghiệm

Để mô phỏng quá trình mã hóa, giải mã của một số hệ mã hóa khóa công khai như dịch chuyển, hoán vị, affine và vigenere, chương trình demo được xây dựng với ngôn ngữ C++ với giao diện QT trên môi trường Window

3.1 Giới thiệu chương trình

Chương trình mô phỏng quá trình mã hóa và giải mã các file text của 4 hệ mã

hóa: Dịch chuyển, Thay thế, Affine và Vigenere qua giao diện với 4 tab, mỗi tab

là mô phỏng một hệ mã hóa

3.2 Cài đặt và hướng dẫn chạy chương trình

Hướng dẫn cài đặt và sử dụng chương trình được mô tả trong file Hướng dẫn cài đặt và chạy chương trình.pdf

Ngày đăng: 20/10/2014, 00:13

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w