1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Mật mã hill trong bài toán mã hóa

21 49 0

Đ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

Tiêu đề Mật mã Hill Trong Bài Toán Mã Hóa
Người hướng dẫn Thầy Nguyễn Hữu Hiệp, Giáo viên hướng dẫn, Cự Bụi Thọ Khuyền
Trường học Đại học Bách khoa Thành phố Hồ Chí Minh
Chuyên ngành Mật mã học và Mã hóa
Thể loại Báo cáo bài tập
Năm xuất bản 2019
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 21
Dung lượng 0,96 MB

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

Nội dung

-Đßnh h°ßng cÿa thuật toán là lấy m tổ hợp tuyến tính trên vành Z27 cÿa m ký tự chữ cái trong thông điệp gác bản rõ, theo đó biến đổi thành m ký tự chữ cái trong thông điệp đã đ°ợc mã hó

Trang 1

0 | L 1 3 _ N 1 2

Đ¾I HàC QUàC GIA THÀNH PHà Hâ CHÍ MINH

TR¯àNG Đ¾I HàC BÁCH KHOA

Môn: Đ¾I SÞ TUYẾN TÍNH

ĐÞ TÀI: M¾T MÃ HILL TRONG BÀI

TOÁN MÃ HÓA

GVHD: Th ¿y Nguyßn Hữu Hiáp

Cô Bùi Th ß Khuyên

L àP: L13 NHÓM: 12

Trang 2

1 | L 1 3 _ N 1 2

PH ¾N MỞ Đ¾U 2

N ÞI DUNG CHÍNH 3

I/M ÞT SÞ VÂN ĐÞ C¾N LÀM RÕ LIÊN QUAN ĐẾN MÃ HILL 3

1.M ßt sß khái niám liên quan 3

2.Ma tr ¿n khÁ nghßch trên vành Z27 3

3.Các bưác để mã hóa và giÁi mã thông tin 3

4 Các ví d ā: 4

II/M ¾T MÃ HILL TRONG PH¾N MÞM MATLAB 11

1.Sơ lưÿc vß ph¿n mßm MATLAB 11

2 Chương trình m¿t mã Hill trên MATLAB 12

2.1 Cách ho ¿t đßng cÿa chương trình code 12

2.2 Chương trình code MATLAB 12

2.3 Ch ¿y ví dā trên ph¿n mßm MATLAB 15

2.4 Āng dāng cÿa m¿t mã trong cußc sßng 18

III/ K ẾT LU¾N: 19

IV/ TÀI LI àU THAM KHÀO: 19

B ÀNG ĐÁNH GIÁ HOÀN THÀNH CÔNG VIàC 20

Trang 3

2 | L 1 3 _ N 1 2

Mã hoá Hill ( đ°ợc phát minh bởi Lester S Hill năm 1929) là mật mã cổ điển cho phép

mã hoá hai, hay ba, hoặc nhiều h¡n các ký tự (theo lý thuyết) t¿i cùng thái điểm Mã hoá Hill sử dụng hai lý thuyết toán hác cực kì quan tráng trong ngành mật mã là Đ¿i Sá Tuyến Tính và Sá Hác Mô-Đun

Trong bài báo cáo này nhóm em sẽ trình bày t¿o ra bản mã và giải bản mã bằng phần

mềm MATLAB

Trang 4

3 | L 1 3 _ N 1 2

I/M ÞT SÞ VÂN ĐÞ C¾N LÀM RÕ LIÊN QUAN ĐẾN MÃ HILL

1.M ßt sß khái niám liên quan

-Đßnh h°ßng cÿa thuật toán là lấy m tổ hợp tuyến tính (trên vành Z27) cÿa m ký tự chữ cái trong thông điệp gác (bản rõ), theo đó biến đổi thành m ký tự chữ cái trong thông điệp

đã đ°ợc mã hóa (bản mã)

-Quá trình chuyển đổi từ bản rõ sang bản mã qua khóa gái là mã hóa

-Quá trình chuyển đổi ng°ợc l¿i gái là giải mã

-Khóa sẽ đ°ợc cho bởi một ma trận vuông cấp n khả nghßch

-Sá nguyên tá cùng nhau: Hai sá nguyên tá a và b đ°ợc gái là hai sá nguyên cùng nhau nếu °ßc chung lßn nhất cÿa chúng bằng 1(UCLN (a, b) = 1)

-Điều kiện cần và đÿ để ma trận vuông A khả nghßch là det(A) khác 0 Khi đó ma trận nghßch đảo cÿa A là:

Gái A là tập các ma trận chìa khóa vuông cấp n khả nghßch trên Z27 khi đßnh thāc cÿa

ma trận A sẽ là sá nguyên tá cùng nhau vßi 27 hay nói cách khác là det(A)b 0 và

UCLN [det(A),27] = 1

3.Các bưác để mã hóa và giÁi mã thông tin

*Để mã hóa thông tin:

Đầu tiên, ta chán một ma trận chìa khóa A (là một ma trận vuông n×n khả nghßch mà ng°ái gửi và ng°ái nhận đều biết tr°ßc L°u ý, đßnh thāc cÿa ma trận này phải là sá nguyên tá cùng nhau vßi sá 27

Tiếp theo, chuyển đo¿n tin nhắn cần gửi thành dãy sá theo bảng quy °ßc nh° sau:

Trang 5

ma trận C

Thay thế mỗi sá trong ma trận C vừa tìm đ°ợc bởi các kí tự trong bảng quy °ßc trên, ta đ°ợc thông điệp đã mã hóa

*Gi Ái mã thông tin:

Đầu tiên ng°ái nhận dùng bảng quy °ßc tìm l¿i ma trận mã hóa

Tiếp theo, thực hiện phép toán: ĉ = ý−1× ÿ

Cuái cùng, thay thế các sá h¿ng nằm ngoài gißi h¿n [0,26] bởi các đãng d° cÿa nó theo moodun 27, ta thu đ°ợc ma trận M Sử dụng bảng quy °ßc cho ma trận M, ta tìm l¿i đ°ợc thông tin ban đầu

4 Các ví d ā:

Để dễ hiểu h¡n, ta xem các ví dụ d°ßi đây:

• *Ví dā 1: Mã hóa chữ JUST_FOR_FUN trình tự các b°ßc thực hiện nh° sau:

-Tách chữ JUST_FOR_FUN thành các cum có n kí tự ở đây ta chán n=3 vì vậy có thể tách ra thành 4 cụm JUS, T_F, OR_, FUN

- Chuyển chữ JUST_FOR_FUN về d¿ng ma trận các kí tự cần đ°ợc mã hóa

Trang 6

- Chán ma trận chìa khóa A cần đáp āng đÿ các điều kiện:

▪ Phải là ma trận vuông cấp n để có thể nhân vßi ma trận M ở đây ta có n=3

▪ DET(A)b 0, UCLN[DET(A),27] =1

Ta chán ma trận chìa khóa ở đây là ma trận A= ( 12 25 37

−1 −3 −5)đã đáp āng đÿ các điều kiện trên

- Nhân ma trận chìa khóa vßi Ma trận tin nhắn: B=A.M=

- Ta gửi cho ng°ái nhận bản mã AOUKADXLLIZW và ma trận chìa khóa

• Để giải mã ng°ái nhận thực hiện các b°ßc sau

- Dùng bản quy °ßc tìm l¿i ma trận þ1

- Nhân ma trận ý−1 vßi ma trận B1 : ý−1 þ1=C =

( 1048 −27 −3647 96 3348

Trang 7

6 | L 1 3 _ N 1 2

- Thay thế các sá ngoài gißi h¿n [0,26] bằng các đãng d° cÿa nó theo modun

27 ta thu đ°ợc ma trận M và hoàn tất việc giải mã

*Ví dā 2 : Mã hóa bản rõ SAVE_ME_ bằng mật mã hill sử dụng khóa (1 32 5), sau đó giải mã

Chuyển chữ SAVE_ME_ về d¿ng ma trận các kí tự cần đ°ợc mã hóa

(ď Ē − āý ā ĉ −)Theo bảng quy °ßc ta chuyển ma trận tin nhắn trên về d¿ng ma trận M=

(19 22 0 51 5 13 0)

Nhân ma trận chìa khóa vßi Ma trận tin nhắn: B=A.M= (22 37 39 543 69 65 10)

Thay thế các sá ngoài gißi h¿n [0,26] trong ma trận B bằng các đãng d° cÿa nó theo modun 27 ta thu đ°ợc ma trận B1= (22 10 12 516 15 11 10)

Ta chuyển ma trận þ1 về d¿ng chữ ta thu đ°ợc ma trận các kí tự trong bản mã

(Ē Ć Ĉ āČ ċ ć Ć )

Ta thu đ°ợc mật mã VPJOLKEJ

- Để giải mã, dùng bản quy °ßc tìm l¿i ma trận þ1

- Nhân ma trận ý−1 vßi ma trận B1 : ý−1 þ1=C = (−62 −5 −27 528 5 13 0)

- Thay thế các sá ngoài gißi h¿n [0,26] bằng các đãng d° cÿa nó theo modun

27 ta thu đ°ợc ma trận M và hoàn tất việc giải mã

*Ví dā 3 : Mã hóa bản rõ WE_NEED_SOME_FOOD_ bằng hệ mã hill sử dụng khóa K là

BA_ABA_AA Sau đó giải mã thu đ°ợc

• Mã hóa dòng WE_NEED_SOME_FOOD_

- Khóa K đ°ợc viết d°ßi d¿ng ma trận vuông cấp 3 là :

Trang 8

- Dùng bảng quy °ßc để chuyển đo¿n thông tin

- Ta có thể dùng máy tính bß túi để thực hiện phép nhân bằng cách chia ma

trận ĉ thành những ma trận con có sá cột nhß h¡n hoặc bằng 3, rãi thực

hiện phép nhân ma trận ý cho các ma trận con này

Trang 9

= (−22 −22 0 −14 −4823 14 4 15 27 −1231

- Thay thế các sá ngoài gißi h¿n [0,26] bằng các đãng d° cÿa nó theo modun

27 ta thu đ°ợc ma trận M Sử dụng bảng quy °ßc cho ma trận M, ta tìm l¿i

đ°ợc thông tin ban đầu : WE_NEED_SOME_FOOD_

*Ví dā 4: Mã hóa bản rõ YOU ARE LOVELY bằng mật mã hill sử dụng khóa

÷÷

÷

÷

÷ø

1

513

3

312

2

121

R

O

L L

0

0

022

5

21

2515

18

15

1212

1

25

Downloaded by vu ga (vuchinhhp2@gmail.com)

Trang 10

111 128 62 141

74 91 43 101

37 76 29 82

Thay thế các sá ngoài gißi h¿n [0,26] trong ma trận B bằng các đãng d° cÿa nó theo

32086

20101620

102221

Ta chuyển ma trận þ1 về d¿ng chữ ta thu đ°ợc ma trận các kí tự trong bản mã

÷÷

÷

÷

÷ø

R

J

C T

H

F

T J

P

T

J V

5481

2722

2233

349147

254366

20493

154218

- Thay thế các sá ngoài gißi h¿n [0,26] bằng các đãng d° cÿa nó theo modun

27 ta thu đ°ợc ma trận M và hoàn tất việc giải mã

Ví d ā 5 : Mã hóa bản rõ WE_WANNA_SLEEP_ bằng hệ mã hill sử dụng khóa K là ABCB_DDA_

- Khóa K đ°ợc viết d°ßi d¿ng ma trận vuông cấp 3 là :

Trang 11

10 | L 1 3 _ N 1 2

Bản rõ WE_WANNA_SLEEP_ đ°ợc chia thành các cụm 3 kí tự : WE_, WAN,

NA_, SLE, EP_

ē ā

23 5

6 19

ą 0

0 6

_ Ă

16 1

Č ý

9 16

ą Č

10 10

Ć Ć

*Ví d ā 6: Mã hóa chữ KY_THUAT_HOA trình tự các b°ßc thực hiện nh° sau:

-Tách chữ KY_THUAT_HOA thành các cum có n kí tự ở đây ta chán n=3 vì vậy có thể tách ra thành 4 cụm KY_, THU, AT_, HOA

0 ] = [

712

22] = [

ăĈ

Ē]

Cụ thể �㕐1=�㕘11.�㕝1 + �㕘12.�㕝2 + �㕘13.�㕝3 mod 27 = (1.11+2.25+3.0) mod 27 = 7=G

Downloaded by vu ga (vuchinhhp2@gmail.com)

Trang 12

21] = [

1811

13] = [

Ďć

0] = [

1421

20] = [

Ċđ

1] = [

1417

23] = [

Ċč

ē] Kết quả mã hóa GLVRKMNUTNQW

1.Sơ lưÿc vß ph¿n mßm MATLAB

• Matlab (viết tắt cÿa matrix laborary) là một ngôn ngữ

lập trình bậc cao bán thế hệ, môi tr°áng để tính toán

sá hác, trực quan và lập trình

• Nó cho phép thao tác vßi ma trận, vẽ biểu đã vßi

hàm và sá liệu, hiện thực thuật toán, t¿o ra giao diện ng°ái dùng, bao gãm C, C++, Java và Fortran; phân tích dữ liệu, phát triển thuật toán, t¿o các kiểu mẫu và āng dụng

• Nó là công cụ hỗ trợ đắc lực cho b¿n trong việc tính toán, vẽ các hình, vẽ biểu đã thông dụng cả thực thi các ph°¡ng pháp tính toán

• Trên nền tảng và các thuật toán có trong MATLAB, ta āng dụng vào việc t¿o một ch°¡ng trình mã hóa mật mã Hills (Phiên bản Matlab đ°ợc sử dụng: R2021b)

Downloaded by vu ga (vuchinhhp2@gmail.com)

Trang 13

12 | L 1 3 _ N 1 2

2 Chương trình m¿t mã Hill trên MATLAB

2.1 Cách ho ¿t đßng cÿa chương trình code

2.2 Chương trình code MATLAB

2.2.1 M ßt sß lánh đưÿc dùng trong BÀN CODE

Double Chuyển đổi chuỗi sang sá thập phân vßi độ chính xác kép (ASCII) Reshape Sửa l¿i cấu trúc cÿa một ma trận (sửa l¿i sá hàng, sá cột )

Strrep Tìm kiếm và thay thế chuỗi String

Mod Thay thế phần d° theo modul X

Char Chuyển đổi sá thập phân (ASCII) về l¿i d¿ng chuỗi ký tự

Inv Tính ma trận nghßch đảo cÿa ma trận X

for thực hiện lặp l¿i một hay nhiều câu lệnh vßi sá lần đßnh tr°ßc

Downloaded by vu ga (vuchinhhp2@gmail.com)

Trang 15

14 | L 1 3 _ N 1 2

Downloaded by vu ga (vuchinhhp2@gmail.com)

Trang 16

15 | L 1 3 _ N 1 2

2.3 Ch ¿y ví dā trên ph¿n mßm MATLAB

VD: Mã hóa thông điệp <JUST_FOR_FUN=

VD: Mã hóa thông điệp <SAVE_ME_=

VD1: Mã hóa thông điệp: <JAVACHIP=

Downloaded by vu ga (vuchinhhp2@gmail.com)

Trang 17

16 | L 1 3 _ N 1 2

VD2: Mã hóa thông điệp <MATCHA=

VD3: Mã hóa thông điệp <WE_NEED_SOME_FOOD_=

Downloaded by vu ga (vuchinhhp2@gmail.com)

Trang 18

17 | L 1 3 _ N 1 2

VD4: Mã hóa thông điệp < KY_THUAT_HOA=

Downloaded by vu ga (vuchinhhp2@gmail.com)

Trang 19

18 | L 1 3 _ N 1 2

2.4 Āng dāng cÿa m¿t mã trong cußc sßng

Āng dụng cÿa Mật mã Hill trong ph°¡ng tiện hình

văn bản rất đ°ợc khuyến khích vì tác độ mã hóa và

giải mã nhanh Ph°¡ng pháp này rất tát trong việc

bảo mật dữ liệu đ°ợc truyền trên một m¿ng mở

*Trong quân sự:

- Hỗ trợ việc giao tiếp liên l¿c giữa các đ¡n vß

- Tiện cho việc giữ bí mật chiến l°ợc

*Trong trao đổi th° tín:

- Tránh để bß lộ những thông tin tuyệt mật

- Là công cụ ngôn ngữ hữu dụng

*Trong bảo mật an ninh:

- Tránh để những thông tin tuyệt mật r¡i vào tay kẻ có m°u đã xấu

- Nâng cao hiệu suất bảo mật

*Trong bảo mật cá nhân:

- Tránh những tài liệu mật thông tin cá nhân bß

lộ ra ngoài

- Tránh các tình tr¿ng m¿o danh lừa g¿t ng°ái

khác

*Trong việc bảo mật tin nhắn văn bản:

- Bảo mật máy tính nhằm mục đích giúp ng°ái

dùng

- Ngăn chặn gian lận hoặc phát hiện gian lận

trong một hệ tháng dựa trên thông tin

Downloaded by vu ga (vuchinhhp2@gmail.com)

Trang 20

-Mật mã Hill có nhiều āng dụng trong đái sáng và trong mã hóa thông tin

-Dựa vào phần mềm MATLAB có thể viết ch°¡ng trình mã hóa và giải mã thông điệp

1/ Giáo trình Đ¿i sá tuyến tính – Đặng Văn Vinh, NXBĐHQGTPHCM,

5/ Tham khảo các thuật toán t¿i: https://www.mathworks.com

6/ Tham khảo bài giảng trên Youtube cÿa cô Bùi Thß Thùy

Downloaded by vu ga (vuchinhhp2@gmail.com)

Ngày đăng: 22/06/2023, 20:47

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN