Bài 10: Mật mã cổ điển – Mã hoá Caesar – Blog Nam Phạm
Mật mã Caesar (hay còn được gọi là Mật mã của Caesar, Mật mã chuyển vị, Mã của Caesar hay Chuyển vị Caesar) là một trong những kỹ thuật mã hóa đơn giản và phổ biến nhất. Đây là một dạng mật mã thay thế, trong đó mỗi ký tự trên văn bản thô sẽ được thay bằng một ký tự khác, có vị trí cách nó một khoảng xác định trong bảng chữ cái.
Cũng giống như toàn bộ những dạng mật mã sửa chữa thay thế một bảng vần âm khác, mật mã Caesar rất dễ bị phá giải và về cơ bản không cung ứng đủ năng lực bảo mật thông tin thông tin liên lạc trong đời sống tân tiến .
Mã hoá caesar bằng cách thay thế các ký tự
Ví dụ về mật mã Caesar
Mã hoá caesar bằng cách thay thế các ký tự trong bản rõ bằng ký tự đứng sau nó ${\displaystyle k}$ vị trí trong bảng chữ cái. Giả sử ${\displaystyle k=3}$, ta có bảng chuyển đổi như sau:
Bạn đang đọc: Bài 10: Mật mã cổ điển – Mã hoá Caesar – Blog Nam Phạm
Giả sử ta có bản rõ: TOIYEUVIETNAM
Như vậy, bản mã chiếu theo bảng chuyển đổi kia sẽ là: WRLBHXYLHWQDP
Để giải thuật, ta triển khai ngược lại bằng cách chuyển dời từng kí tự của bản mã lùi về $ { \ displaystyle k } $ vị trí .
Tổng quát về mã hoá Caesar
Về tổng quát, Hệ mã Caesar dùng bảng chữ cái tiếng Anh với 26 (${\displaystyle n=26}$) chữ cái, được đánh số:
Phương pháp mã hóa Ceasar được màn biểu diễn như sau :
Sơ đồ hệ mật mã : $ { \ displaystyle S = ( P., C, K, E, D ) } $ .
Trong đó $ { \ displaystyle P = C = K = Z_ { 26 } } $, với mỗi khóa USD { \ displaystyle k \ in K } $ hàm mã hóa một ký tự $ { \ displaystyle x_ { i } \ in P } $ và hàm giải thuật một ký tự $ { \ displaystyle y_ { i } \ in C } $ xác lập theo công thức :
Mã hóa : $ { \ displaystyle y_ { i } = e_ { K } ( x_ { i } ) = ( x_ { i } + k ) { \ pmod { n } } } $ ( n = 26 )
Giải mã : $ { \ displaystyle x_ { i } = d_ { K } ( y_ { i } ) = ( y_ { i } – k ) { \ pmod { n } } } $ ( n = 26 )Ví dụ và Cài đặt thuật toán mã hoá Caesar
Bài tập ví dụ
Câu 1 : Cho $ { \ displaystyle k = 17 } $, Bản rõ $ { \ displaystyle ATTACK } USD. Hãy thực thi mã hóa bằng Caesar theo $ { \ displaystyle Z_ { 26 } } $ .
Đầu tiên, ta màn biểu diễn bản rõ theo modulo 26 : $ { \ displaystyle X = ATTACK = ( 0, 19, 19, 0, 2, 10 ) } $
Dùng thuật toán mã hóa với $ { \ displaystyle k = 17 } $ ta có :
USD { \ displaystyle y_ { 1 } = e_ { K } ( x_ { 1 } ) = ( x_ { 1 } + k ) { \ pmod { n } } = ( 0 + 17 ) { \ pmod { 26 } } = 17 } $${\displaystyle y_{2}=e_{K}(x_{2})=(x_{2}+k){\pmod {n}} = (19+17) {\pmod {26}} = 10}$
Tương tự :
USD { \ displaystyle y_ { 3 } = ( x_ { 3 } + k ) { \ pmod { n } } = ( 19 + 17 ) { \ pmod { 26 } } = 10 } USD
USD { \ displaystyle y_ { 4 } = 17 } $, $ { \ displaystyle y_ { 5 } = 19 } $, $ { \ displaystyle y_ { 6 } = 1 } $
Bản mã : $ { \ displaystyle Y = ( 17, 10, 10, 17, 19, 1 ) = RKKRTB } $Câu 2 : Cho $ { \ displaystyle k = 12 } $, cho bản mã $ { \ displaystyle Y = ZAFTUZSUYBAEEUNXQ } $. Giải mã tài liệu và cho ra bản rõ theo mã dịch vòng Caesar
Biểu diễn bản mã theo $ { \ displaystyle Z_ { 26 } } $ :
USD { \ displaystyle Y = ZAFTUZSUYBAEEUNXQ = ( 25, 0, 5, 19, 20, 25, 18, 20, 24, 1, 0, 4, 4, 20, 13, 23, 16 ) } $
Dùng thuật toán giải thuật $ { \ displaystyle x_ { i } = d_ { K } ( y_ { i } ) = ( y_ { i } – k ) { \ pmod { n } } } $
USD { \ displaystyle x_ { 1 } = d_ { K } ( y_ { 1 } ) = ( y_ { 1 } – k ) { \ pmod { n } } = ( 25-12 ) { \ pmod { 26 } } = 13 \ to N } $
${\displaystyle x_{2}=(0-12) {\pmod {26}} = 14 \to O}$ ${\displaystyle x_{3}=(5-12) {\pmod {26}} = 19 \to T}$ ${\displaystyle x_{4}=7 \to H}$ ${\displaystyle x_{5}=8 \to I}$ ${\displaystyle x_{6}=13 \to N}$ ${\displaystyle x_{7}=6 \to G}$ ${\displaystyle x_{8}=8 \to I}$ ${\displaystyle x_{9}=12 \to M}$ ${\displaystyle x_{10}=15 \to P}$ ${\displaystyle x_{11}=14 \to O}$ ${\displaystyle x_{12}=18 \to S}$ ${\displaystyle x_{13}=18 \to S}$ ${\displaystyle x_{14}=8 \to I}$ ${\displaystyle x_{15}=1 \to B}$ ${\displaystyle x_{16}=11 \to L}$ ${\displaystyle x_{17}=4 \to E}$ Bản rõ : X = NOTHING IMPOSSIBLE
Cài đặt chương trình mã hoá Caesar
Chương trình trực tuyến : https://onlinegdb.com/1QfWGJOiS
// A C++ program to illustrate Caesar Cipher Technique #include
using namespace std; // This function receives text and shift and // returns the encrypted text string encrypt(string text, int s) { string result = ""; // traverse text for (int i=0;i Xem thêm cách thiết lập trên những ngôn từ khác : https://www.geeksforgeeks.org/caesar-cipher-in-cryptography/
Thám mã Caesar
Thám mã Caesar khá đơn giản. Xét 2 tình huống:
- Người thám mã biết (đoán) rằng đây là một dạng mã hoá thay thế cơ bản nhưng không biết cụ thể nó là Caesar.
- Người thám mã biets chính xác mật mã Caesar được sử dụng.
Dù trong tình hướng nào, việc thám mã với hệ mật này cũng khá đơn thuần .
Trong trường hợp tiên phong, mật mã hoàn toàn có thể phá giải bằng những chiêu thức tựa như như so với những dạng mật mã thay thế sửa chữa đơn thuần nói chung, ví dụ điển hình như nghiên cứu và phân tích tần suất hay nghiên cứu và phân tích những từ mẫu. [ 16 ] Khi nghiên cứu và phân tích, có năng lực người giải thuật sẽ nhanh gọn nhận thấy tính quy tắc trong giải pháp thay thế sửa chữa và suy ra rằng kỹ thuật mã hóa được dùng là mật mã Caesar .
Trong trường hợp thứ hai, việc làm giải thuật thậm chí còn còn nhẹ nhàng hơn. Vì số khóa mã có năng lực được sử dụng là số lượng giới hạn ( 25 khóa mã so với bảng vần âm tiếng Anh ), mỗi khóa mã hoàn toàn có thể được kiểm tra lần lượt bằng kiểu tiến công vét cạn. Một cách để thực thi là thử giải một đoạn trích nhỏ của bản mật mã với toàn bộ những khóa mã hoàn toàn có thể, và viết lên trên một bảng, đôi lúc gọi là “ giải thuật một phần bản thô ” .
Bài tập
- Giải mã bản mã sau, giả sử mã hóa Caesar được sử dụng để mã hóa với k=3: IRXUVFRUHDQGVHYHQBHDUVDJR
- Phá mã bản mã sau, giả sử mã hóa Caesar được sử dụng: CSYEVIXIVQMREXIH
- Hãy giải mã bản mã được mã hóa bằng hệ mã Caesar sau (sử dụng bảng mã tiếng Anh): WKXPEVXS
- Bản rõ “HELPME” được mã hóa thành bản mã “DAHLIA”. Hãy tìm K biết bản mã được hình thành theo Caesar thuộc Z26
- Viết chương trình mã hóa và giải mã một file văn bản ASCII trên máy tính bằng phương pháp mã hóa Caesar.
Source: https://thomaygiat.com
Category : Kỹ Thuật Số
Chuyển vùng quốc tế MobiFone và 4 điều cần biết – MobifoneGo
Muốn chuyển vùng quốc tế đối với thuê bao MobiFone thì có những cách nào? Đừng lo lắng, bài viết này của MobiFoneGo sẽ giúp…
Cách copy dữ liệu từ ổ cứng này sang ổ cứng khác
Bạn đang vướng mắc không biết làm thế nào để hoàn toàn có thể copy dữ liệu từ ổ cứng này sang ổ cứng khác…
Hướng dẫn xử lý dữ liệu từ máy chấm công bằng Excel
Hướng dẫn xử lý dữ liệu từ máy chấm công bằng Excel Xử lý dữ liệu từ máy chấm công là việc làm vô cùng…
Cách nhanh nhất để chuyển đổi từ Android sang iPhone 11 | https://thomaygiat.com
Bạn đã mua cho mình một chiếc iPhone 11 mới lạ vừa ra mắt, hoặc có thể bạn đã vung tiền và có một chiếc…
Giải pháp bảo mật thông tin trong các hệ cơ sở dữ liệu phổ biến hiện nay
Hiện nay, với sự phát triển mạnh mẽ của công nghệ 4.0 trong đó có internet và các thiết bị công nghệ số. Với các…
4 điều bạn cần lưu ý khi sao lưu dữ liệu trên máy tính
08/10/2020những chú ý khi tiến hành sao lưu dữ liệu trên máy tính trong bài viết dưới đây của máy tính An Phát để bạn…