1. Trang chủ
  2. » Tất cả

Bai tập lớn Môn An toàn thông tin - Hưng - Kiều Anh

46 12 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

Định dạng
Số trang 46
Dung lượng 823,67 KB

Nội dung

HỌC VIỆN QUẢN LÝ GIÁO DỤC BÀI TẬP LỚN MÔN AN TỒN THƠNG TIN NGUN LÝ VÀ THỰC HÀNH Nhóm thực : Vũ Viết Nam Hưng : Phạm Thị Kiều Anh : Giảng viên : PGS.TS Nguyễn Tân Ân Hà Nội, Ngày 12 tháng năm 2018 1.0 Hệ mật mã cổ điển 1.1 Hệ mã Caesar Hệ mã Caesar xác định Z26 (do có 26 chữ bảng chữ tiếng Anh) xác định Zm với modulus m tùy ý.Dễ dàng thấy , mã dịch vòng tạo nên hệ mật xác định trên, tức Dk(Ek(x)) = x với "xỴZ26 Định nghĩa: Một hệ mật gồm (P,C,K,E,D) Giả sử P = C = K = Z26 với ≤ k ≤25, định nghĩa: Ek(x)=x+k mod 26 Và Dk(x)=y-k mod 26 (x,y ỴZ26) Nhận xét:Trong trường hợp k=3, hệ mật thường gọi mã Caesar Julius Caesar sử dụng Ta sử dụng mã dịch vịng (với modulo 26) để mã hóa văn tiếng Anh thông thường cách thiết lập tương ứng ký tự thặng dư theo modulo 26 sau: A«0, B«1,….,Z«25 A B C D E F G H I J K L 10 11 12 N O P Q R S T U V W X Y M Z 13 14 15 16 17 18 19 20 21 22 23 24 25 Ví dụ Giả sử khóa cho mã dịch vịng k=11 rõ là: wewillmeetatmidnight Trước tiên biến đổi rõ thành dãy số nguyên nhờ dùng phép tương ứng trên.Ta có: 22 19 22 12 8 11 11 13 12 19 19 Sau cộng 11 vào giá trị rút gọn tổng theo modulo 26 15 19 22 22 23 15 15 11 23 19 14 24 19 17 18 Cuối biến đổi dãy số nguyên thành ký tự thu mã sau HPHTWWXPPELEXTOYTRSE Để giả mã mã này, trước tiên, Bob biến đổi mã thành dãy số nguyên trừ giá trị cho 11 (rút gọn modulo 26) cuối biến đổi lại dãy thành ký tự 1.2.Hệ mã Affinne Định nghĩa: Mã tuyến tính Affinne (P,C,K,E,D) thỏa mãn: 1.Cho P=C=Z26 giả sử P={(a,b) ỴZ26 x Z26:UCLN(a,26)=1} 2.Với k=(a,b) ỴK, ta định nghĩa: Ek(x)=ax+bmod26 Và Dk(y)=a-1(y-b)mod26, x,Z26 Để việc giải mã thực được, u cầu cần thiết hàm Affine phải đơn ánh.Nói cách khác, với Z26, ta muốn có đồng thức sau: ax+bºy(mod26) phải có nghiệm x nhất.Đồng dư thức tương đương với axºy-b(mod 26) y thay đổi Z26 nên y-b thay đổi Z26.Bởi vậy, ta cần nghiên cứu phương trình đồng dư: axºy(mod 26) (Z26) ta biết phương trình có nghiệm y UCLN(a,26)=1 Chứng minh:Trước tiên ta giả sử rằng, UCLN(a,26)=d>1 Khi đó, đồng dư thức axº0(mod26) có hai nghiệm phân biệt Z26 x=0 x=26/d Trong trường hợp này, E(x)=ax+b(mod 26) không pahir hàm đơn ánh khơng thể hàm mã hóa hợp lệ Ví dụ UCLN(4,26)=2 nên 4x+7 khơng hàm mã hóa hợp lệ: x x+13 mã hóa thành giá trị xỴZ26 Ta giả thiết UCLN(a,26)=1.Giả sử với x1 x2 thỏa mãn: ax1 ºax2(mod 26) Khi a(x1 – x2) º (mod 26) 26| a(x1 – x2) Bây ta sử dụng tính chất phép chia sau: Nếu UCLN(a,b)=1 a | bc a |c Vì 26 | a(x1 – x2) UCLN(a,26)=1 nên ta có: 26 |(x1 –x2) Tức x1 ºx2 (mod 26) Tới ta chứng tỏ rằng, UCLN(a,26)=1 đồng dư thức dạng axºy (mod 26) có nhiều nghiệm Z26.Dó đó, ta cho x thay đổi Z26 ax mod 26 nhận 26 giá trị khác theo modulo 26 đồng dư thức axºy(mod 26) có nghiệm Ví dụ: Giả sử k=(7,3).Ta có 7-1 mod 26= 15.Hàm mã hóa là: Ek(x)=7x+3 Và hàm giải mã tương ứng Dk(x)=15(y-3) mod 26=15y-19 tất phép toán thực Z26 Ta kiểm tra liệu Dk(Ek(x))=x với xỴZ26 khơng? Dùng tính tốn Z26, ta có Dk(Ek(x))= Dk(7x+3) = 15(7x+3)-19 =x+45-19 =x Để minh họa, ta mã hóa rõ “hot” Trước tiên biến đổi chữ h,o,t thành thặng dư theo modulo 26 Ta số tương ứng là: 7, 14 19.Bây mã hóa: ´ +3 mod 26 = 52 mod 26 = ´ 14 + mod 26 = 101 mod 26 =23 ´ 19 +3 mod 26 = 136 mod 26 = Bây ký tự mã 0, 23 tương ứng với xâu ký tự AXG Giải mã: từ xâu ký tự mã chuyển thành số nguyên bảng chữ tiếng Anh (26 chữ cái), ta số tương ứng 0, 23, Dk(0)=15´ 0- 19 mod 26 =7 Dk(23)=15´ 23- 19 mod 26 =14 Dk(6)=15´ 6- 19 mod 26 =19 Bây ký tự rõ: h, o, t 1.3.Hệ mã Vigenère Trong hai hệ mã dịch chuyển mã tuyến tính(một khóa chọn ) ký tự ánh xạ vào ký tự Vì lý đó, hệ mật lại gọi hệ thay đơn biểu Bây tơi trình bày hệ mật khơng phải chữ đơn, hệ mã Vigenère tiếng Mật mã lấy tên Blaise de Vigenère sống vào kỷ XVI Sử dụng phép tương ứng AÛ 0, B Û 1, ….,ZÛ25 mơ tả trên, ta gắn cho khóa k với chuỗi ký tự có độ dài m gọi từ khóa.Mật mã V mã hóa đồng thời m ký tự: phần tử rõ tương đương với m ký tự Ví dụ Giả sử m=6 từ khóa CIPHER Từ khóa tương ứng với dãy số k=(2,8,15,4,17).Giả sử rõ xâu thiscryptosystemisnotsecure Định nghĩa: Cho m số dương cố định Cho P=C=K=(Z26)m Với khóa K=(k1, k2 ,…,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 phép tốn thực Z26 Ta biến đổi phần tử rõ thành thặng dư theo modulo 26, viết chúng thành nhóm cộng với từ khóa theo modulo sau 19 18 17 24 15 19 14 18 15 17 15 24 17 21 15 23 25 23 21 22 15 18 19 15 12 18 17 13 14 19 15 18 4 17 20 19 19 12 15 22 15 19 20 17 15 22 25 19 Bởi vậy, dãy ký tự tương ứng xâu mã là: VPXZGIAXIVWPUBTTMJPWIZITWZT Để giải mã ta dùng từ khóa thay cho cộng, ta trừ theo modulo 26 Ta thấy từ khóa với số độ dài m mật mã Vigenère 26m, vậy, chí với giá trị m nhỏ, phương pháp tìm kiếm vét cạn yêu cầu thời gian lớn Ví dụ, m=5 khơn gian khóa có kích thước lớn 1,1 ´ 107 Lượng khóa đủ lớn ngăn ngừa việc tìm khóa tay Trong hệ mật Vigenère có từ khóa độ dài m, ký tự ánh xạ vào m ký tự có (giả sử từ khóa chứa m ký tự phân biệt).Một hệ mật gọi hệ mật thay thê đa kiểu (poly alphabetic) Nói chung, việc thám mã hệ thay đa kiểu khó khăn so việc thám mã hệ đơn kiểu 1.4.Hệ mật Hill Trong phần mô tả hệ mật thay đa kiểu khác gọi mật mã Hill Mật mã Lester S.Hill đưa năm 1929 Giả sử m số nguyên, đặt P = C = (Z26)m Ý tưởng lấy tổ hợp tuyến tính m ký tự phần tử rõ để tạo m ký tự phần tử mã Định nghĩa: Mật mã Hill 5(P, C, K, E, D) Cho m số nguyên dương cố định Cho P = C = (Z26)m cho K={các ma trận khả nghịch cấp m ´ m Z26} Với khóa K ỴK ta xác định EK(x) = xK DK(y) = yK -1 tất phép toán thực Z26 Ví dụ Giả sử khóa Từ tính tốn ta có Giả sử cần mã hóa rõ “July” Ta có hai phần tử rõ để mã hóa:(9,20)(ứng với Ju) (11,24)(ứng với ly) Ta tính sau: Và Bởi mã july DELW Để giải mã Bob tính Và Như Bob nhận Cho tới lúc ta thực phép giải mã K có nghịch đảo Trên thực tế, để phép giải mã thực được, điều kiện cần K phải có nghịch đảo (Điều dễ dàng rút từ đại số tuyến tính sơ cấp) 1.5 Hệ mật Playfair Phép thay n-gram:thay thay kí tự, người ta thay cho cụm kí tự (gọi digram) cho cụm kí tự (gọi trigram) tổng quát cho cụm n kí tự (gọi n-gram) Nếu bảng chữ Σ gồm 26 kí tự tiếng Anh phép thay n-gram có khố hoán vị 26n n-gram khác Trong trường hợp digram hốn vị gồm 262 digram biểu diễn tốt dãy chiều 26 × 26 hàng biểu diễn kí hiệu đầu tiên, cột biểu diễn kí hiệu thứ hai, nội dung ô biểu diễn chuỗi thay Ví dụ bảng chiều sau biểu thị AA thay EG, AB thay RS, BA thay BO, BB thay SC,… A B A EG RS B BO SC … Đây sơ đồ dựa thay digram khố hình vng kích thước × chứa xếp 25 kí tự bảng chữ (khơng tính kí tự J xuất thay I) Giả sử có ma trận khoá sau B Y D G Z W S F U P L A R K X C O I V E Q N M H T Sự thay thực sau Chẳng hạn digram cần thay AV hình chữ nhật có A, V hai đỉnh chéo thay A đỉnh kề theo đường thẳng đứng O tương tự thay V đỉnh kề theo đường thẳng đứng K Tương tự digram cần thay VN chuỗi thay HO Nếu kí tự digram nằm hàng ngang chuỗi thay kí tự bên phải chúng Chẳng hạn digram WU chuỗi thay SP, digram FP chuỗi thay UW, digram XR chuỗi thay LK Tương tự kí tự digram nằm hàng dọc chuỗi thay kí tự bên chúng Chẳng hạn digram SO chuỗi thay AN, digram MR chuỗi thay DI, digram GH chuỗi thay UG Trong trường hợp digram cặp kí tự giống chẳng hạn OO kí tự kèm khoảng trắng chẳng hạn B có nhiều cách xử lý, cách đơn giản giữ nguyên không biến đổi digram 1.6: Viết chương trình mã giải mã tài liệu Code mã dịch vòng (shift cipher) với Z26 Demo mã hóa với ký tự bảng mã ASCII Tư tưởng thuật toán dịch dựa theo mã ASCII để tính tốn #include #include #include //Zm=26; char *Proccess(char *input, int k, int method){ char *temp = new char[1000]; strcpy(temp,input); for (int i=0; i64 && x96 && x90+sp) y-=26; else if (y

Ngày đăng: 14/05/2018, 23:15

TỪ KHÓA LIÊN QUAN

w