Nó được sử dụng để mã hóa thông điệp bằng cách thay thế các cặp ký tự trong văn bản gốc bằng các cặp ký tự trong một bảng 5x5 được tạo ra từ một khóa.. Nhược Điểm: Mặc dù mật mã Playfa
VEGENERE
Giới thiệu về thuật toán
Mã Vigenere được coi là phương pháp mã hóa đơn giản nhất, trong đó quá trình mã hóa thực chất là việc áp dụng đồng thời nhiều mã Caesar trên bản rõ bằng cách sử dụng nhiều khóa khác nhau.
Chọn một từ khóa có ý nghĩa, thường là một từ hoặc cụm từ, và lặp lại nó nhiều lần để đảm bảo độ dài tối thiểu bằng hoặc lớn hơn văn bản cần mã hóa.
1.2 Mã hóa và giải mã
Gán một số cho mỗi ký tự trong từ khóa, thường là theo thứ tự trong bảng chữ cái (ví dụ, A=0, B=1, , Z%).
Để mã hóa văn bản, hãy lặp lại từ khóa cho đến khi có chiều dài bằng hoặc lớn hơn văn bản cần mã hóa Đối với mỗi ký tự trong văn bản, thực hiện một phép dịch chuyển dựa trên số tương ứng trong từ khóa.
Mã hóa : Bm=y={(x1 + k1)modN, (x2 + k2)modN ,(xn + kn)modN} Giải mã: Br=x={(y1 - k1)modN, (y2 - k2)modN, ,(yn - kn)modN} 1.3 Ưu điểm và nhược điểm
- Sử dụng từ khóa dài, làm tăng độ khó của việc giải mã.
- Mã hóa khá hiệu quả đối với văn bản dài và thay đổi đều đặn.
Các cuộc tấn công có thể xảy ra thông qua việc phân tích tần suất xuất hiện của các ký tự, đặc biệt khi khóa mã hóa quá ngắn hoặc bị tái sử dụng nhiều lần.
- Không cung cấp độ bảo mật mạnh đối với các phương pháp phân tích hiện đại.
Mật mã Vigenère, mặc dù từng phổ biến trong quá khứ, hiện nay không còn được xem là an toàn cho các ứng dụng mã hóa hiện đại.
Lưu đồ thuật toán
Ví dụ minh họa
Ví dụ: Xét không gian mã hoá là bảng chữ cái tiếng anh, có n&
Giả sử khoá K=”CIPHER”= 2 8 15 7 4 17 có độ dài m=6
Yêu cầu : mã hóa và giải mã bản rõ trên
PLAYFAIR
Giới thiệu về mật mã PlayFair
Mật mã Playfair là một phương pháp mã hóa trong mật mã học, sử dụng để mã hóa thông điệp bằng cách thay thế các cặp ký tự trong văn bản gốc Phương pháp này dựa trên một bảng 5x5 được tạo ra từ một khóa, giúp tăng cường tính bảo mật của thông điệp.
Bảng Playfair là một ma trận 5x5 được hình thành từ một khóa duy nhất, trong đó các chữ cái được sắp xếp không trùng lặp Các ô trong bảng được lấp đầy bằng các ký tự này, và những ô trống còn lại sẽ được bổ sung bằng các chữ cái còn lại trong bảng chữ cái, với chữ “J” được thay thế bằng “I”.
Ví dụ về bảng playfair: key =MINH
1.2 Xác định cặp kí tự
Văn bản cần mã hóa được chia thành các cặp ký tự Nếu có hai ký tự giống nhau trong cùng một cặp, thêm một ký tự "X" vào giữa chúng Nếu độ dài của văn bản là số lẻ, hãy thêm một ký tự "X" vào cuối văn bản.
Trong trường hợp 1, khi một cặp ký tự nằm trên cùng một hàng, mỗi ký tự sẽ được thay thế bằng ký tự bên phải của nó Nếu ký tự nằm ở cột cuối cùng, nó sẽ quay về ô đầu tiên của cột đó.
Trong trường hợp 2 (Cùng cột), nếu cặp ký tự nằm trên cùng một cột, bạn sẽ thay thế mỗi ký tự bằng ký tự nằm ngay bên dưới nó Nếu ký tự nằm ở hàng cuối cùng, hãy quay về ô đầu tiên của cột đó để thực hiện thay thế.
- Trường hợp 3 (Khác hàng và cột) : Tạo thành hình chữ nhật với hai kí tự và thay thế mỗi kí tự bằng góc đối diện của hình chữu nhật.
Trong trường hợp 1 (Cùng Hàng), nếu một cặp ký tự nằm trên cùng một hàng, mỗi ký tự sẽ được thay thế bằng ký tự bên trái của nó Nếu ký tự nằm ở cột cuối cùng, nó sẽ quay về ô đầu tiên của cột đó.
Trong trường hợp 2 (Cùng cột), nếu hai ký tự nằm trên cùng một cột, ta thay thế mỗi ký tự bằng ký tự ngay phía trên nó Nếu ký tự ở hàng cuối cùng, chúng ta sẽ quay về ô đầu tiên của cột đó để thực hiện thay thế.
- Trường hợp 3 (Khác hàng và cột) : Tạo thành hình chữ nhật với hai kí tự và thay thế mỗi kí tự bằng góc đối diện của hình chữu nhật.
1.5 Ưu điểm và nhược điểm.
Mật mã Playfair được đánh giá là một trong những phương pháp mã hóa mạnh mẽ trong thời kỳ nó được sử dụng, đặc biệt khi so sánh với các phương pháp mã hóa đơn giản khác.
Mật mã Playfair, mặc dù an toàn hơn so với mật mã Caesar và một số phương pháp khác, hiện nay không được sử dụng rộng rãi do không đủ mạnh mẽ trước các kỹ thuật mã hóa hiện đại.
Mật mã Playfair, từng được sử dụng phổ biến trong quân sự và giao tiếp bí mật, hiện nay đã được thay thế bởi các thuật toán mã hóa hiện đại và mạnh mẽ hơn.
Cho chuỗi “THUONG MAI DIEN TU” , sử dụng hệ mã playfair để mã hóa và giải mã chuỗi đã với với key =”MINH”.
Bước đầu tiên là loại bỏ ký tự "J" và thêm key = "MINH" vào ma trận Sau đó, lần lượt thêm các chữ cái trong bảng chữ cái vào ma trận, nhưng loại bỏ những chữ cái trùng với key Kết quả cuối cùng sẽ là một ma trận mới.
Bước 2: Tách các chữ cái trong bản rõ thành các cặp, chèn thêm "X" vào chữ cái trùng lặp trong mỗi cặp Nếu tổng số chữ cái là lẻ, hãy thêm "X" vào cuối chuỗi.
Ta được : TH UO NG MA ID IE NT UX
Bước 3 Áp dụng nguyên tắc 1,2,3 được nêu ở phần I để thực hiên mã hóa và giải mã.
TH Mã hóa Giải mã
(TH2) TH YE YE TH
(TH3) UO TP TP UO
(TH3) NG ML ML NG
(TH1) MA IM IM MA
(TH3) ID NC NC ID
(TH3) IE HC HC IE
(TH3) NT HS HS NT
(TH2) UX SZ SZ UX
CAESER
Giới thiệu về mật mã Caeser
Mật mã Caesar, hay còn gọi là mật mã dịch chuyển, là một trong những phương pháp mã hóa đơn giản và phổ biến nhất trong mật mã học Đây là hệ mã hóa thay thế đơn âm, hoạt động trên bảng chữ cái tiếng Anh với 26 ký tự Mật mã này thay thế mỗi ký tự trong văn bản bằng một ký tự khác, cách nó một đoạn cố định trong bảng chữ cái, tạo thành bản mã Phương pháp mã hóa Caesar thực hiện việc dịch chuyển các ký tự trong văn bản gốc theo một số bước nhất định.
Chọn một số nguyên dương k, được gọi là khóa, thể hiện số bước mỗi ký tự sẽ được dịch chuyển.
Công thức mã hóa : y= (x + k) mod N; y: kí tự nhận được sau mã hóa (bản mã) x: kí tự trong bản rõ k : khóa n : 26
Công thức giải mã : x= (y - k) mod N; y: kí tự nhận được sau mã hóa (bản mã) x: kí tự trong bản rõ k : khóa n : 26
1.4 Ưu điểm và nhược điểm Ưu điểm:
Đơn giản và dễ thực hiện.
Hiệu quả cho việc truyền tải thông điệp ngắn.
Dễ bị tấn công bằng phương pháp thử và sai (brute force) do số khả năng giả định của khóa không lớn (26 với bảng chữ cái tiếng Anh).
Không an toàn nếu attacker có khả năng xem được nhiều bản mã khác nhau được tạo ra từ cùng một khóa.
Mật mã Caesar là một phương pháp mã hóa đơn giản, nhưng đã được thay thế bởi các thuật toán mã hóa hiện đại phức tạp hơn.
2 Lưu đồ thuật toán a) Mã hóa b) Giải mã
Xét ví dụ sau: Cho bản rõ : TOIYEUVIETNAM Khóa k = 4
RAIL FANCE
Giới thiệu về thuật toán Rail Fance
Mã hóa Rail Fence là một kỹ thuật dễ dàng để mã hóa thông điệp bằng cách sắp xếp các ký tự theo hình dạng chữ Z hoặc đường ray Để thực hiện mã hóa Rail Fence, bạn cần tổ chức các ký tự của thông điệp theo hàng ngang trong một cấu trúc tương ứng.
Viết các chữ của bản tin theo đường chéo trên một số dòng, sau đó đọc theo hàng để nhận được bản mã Số dòng chính là khóa của mã.
1.2Giải mã Để giải mã, bạn chỉ cần biết số hàng và thực hiện lại quá trình viết theo hàng và đọc theo cột sẽ thu được bản rõ.
1.3Ưu điểm và nhược điểm Ưu điểm:
Phương pháp mã hóa Rail Fence rất dễ hiểu và triển khai, không yêu cầu người dùng có kiến thức sâu về toán học hay lập trình phức tạp.
Tốc độ mã hóa nhanh: Quá trình mã hóa Rail Fence thường rất nhanh chóng, đặc biệt là đối với thông điệp ngắn.
Phương pháp mã hóa Rail Fence không đảm bảo an toàn, đặc biệt trước các cuộc tấn công phân tích tần suất Với số lượng hàng thấp, phương pháp này dễ dàng bị giải mã thông qua các phương pháp thử nghiệm.
Phương pháp này thiếu tính linh hoạt, vì không cho phép thay đổi cấu trúc mã hóa sau khi đã chọn số hàng Số hàng phải được xác định trước và không thể điều chỉnh trong quá trình mã hóa.
Việc xử lý dữ liệu lớn không phù hợp với hệ thống này, vì các thông điệp có kích thước lớn và số lượng hàng nhiều có thể khiến quá trình mã hóa trở nên phức tạp và kém hiệu quả.
Dễ phát hiện: Khi người giải mã biết số hàng, quá trình giải mã trở nên rất dễ dàng.
Không bảo vệ được khóa: Rail Fence không sử dụng khóa, điều này làm giảm khả năng bảo mật và làm cho nó dễ bị tấn công hơn.
Phương pháp mã hóa Rail Fence là một kỹ thuật đơn giản và thú vị, nhưng không được khuyến khích cho các ứng dụng bảo mật nghiêm túc vì những nhược điểm rõ ràng Để đảm bảo an toàn thông tin, bạn nên tìm kiếm các thuật toán mã hóa mạnh mẽ hơn và phổ biến hơn trong thực tế.
Cho bản rõ P= “KHOA CONG NGHE THONG TIN”
Hãy thực hiện mã hóa và giải mã bằng mật mã Rail Fance. a) Mã hóa
Số K bằng số hàng, số kí tự trong chuối bằng số cột, ta được bảng như hình minh họa dưới đây.
C T Đọc theo hàng ta được bản mã là :
KNG HGGNT ONHOI AOEHN CT b) Giải mã
C T xác định khóa K và đếm tổng số chữ cái trong bản rõ Sau đó, đánh dấu vị trí các chữ cái theo đường chéo và điền các chữ cái trong bản mã theo hàng ngang của các vị trí đã đánh dấu, từ đó thu được bản rõ Khi đọc theo cột, ta sẽ nhận được bản rõ.
KHOA CONG NGHE THONG TIN
HỆ MÃ HÀNG
Giới thiệu về hệ mã hàng hóa
Mã hóa hàng hóa là phương pháp mã hóa đơn giản, trong đó bản rõ được sắp xếp thành các dòng trên một số cột cố định Thứ tự các cột sẽ được thay đổi dựa trên một dãy số khóa đã xác định trước Bản mã được tạo ra bằng cách đọc lại các cột theo thứ tự mới này.
- Xác định số cột trong để mã hóa thông điệp
Để mã hóa thông điệp, chúng ta sẽ nhập từng ký tự vào bảng theo thứ tự từ trái sang phải Khi một hàng đầy, chúng ta sẽ chuyển xuống hàng tiếp theo cho đến khi toàn bộ thông điệp được hoàn tất trong bảng.
- Chọn khóa K với khóa K sẽ là thứ tự đảo của vị trí các cột Vd K={3,1,2}
- Sau khi có khóa K đảo lộn vị trí các cột theo vị trí của khóa K
- Lấy thông điệp mã hóa lấy từ trái sang phải sau khi lấy hết hàng này thì đến hàng khác.
- Xác định số cột trong bảng mã hóa để biết cần phải giải mã bao nhiêu cột.
Thông điệp được mã hóa vào bảng giải mã theo quy trình tương tự như quá trình mã hóa, bắt đầu từ trái sang phải Khi hoàn thành một hàng, quá trình sẽ tiếp tục xuống hàng tiếp theo.
- Chọn khóa giải mã K' với K' là khóa ngược với khóa K đã sử dụng trong quá trình mã hóa Ví dụ, nếu K={3,1,2} thì K' sẽ là {1,2,3}.
- Đảo lộn vị trí các cột của bảng giải mã theo thứ tự của khóa giải mã K'.
Để giải mã thông điệp, người nhận cần lấy thông điệp từ trái sang phải, sau khi hoàn tất một hàng thì chuyển sang hàng tiếp theo Đầu tiên, họ phải tính toán độ dài của các cột bằng cách chia độ dài thông điệp cho độ dài của khóa Sau đó, thông điệp sẽ được viết lại theo cột và cuối cùng, các cột sẽ được sắp xếp lại dựa trên khóa đã được tái tạo.
1.3 Ưu điểm và nhược điểm
Mã hóa cột là một quy trình đơn giản có thể thực hiện thủ công, cho phép mã hóa mọi ký tự, bao gồm cả khoảng trắng và dấu câu.
Để tăng cường độ an toàn, việc loại bỏ dấu cách và dấu chấm câu là cần thiết Thông điệp không phải lúc nào cũng lấp đầy lưới chuyển vị hoàn toàn Phần còn lại của lưới chuyển vị có thể được điền bằng ký tự đệm (mã hóa cột thông thường) hoặc để trống (mã hóa cột không đều).
Mã hóa cột là một phương pháp đơn giản nhưng hiệu quả để bảo vệ thông điệp Phương pháp này có thể thực hiện thủ công hoặc tự động, và độ an toàn của nó phụ thuộc vào việc giữ bí mật khóa và cách điền thông điệp vào lưới chuyển vị.
Cho bản rõ và khóa K sau, hãy thực hiện mã hóa và giải mã bằng hệ mã hàng P=KHOA CONG NGHE THONG TIN
Vậy bản mã thu được sẽ đọc lần lượt từ 1-6:
AGN ONO KNTI OET CHG HGHN
+) Lấy độ dài của chuỗi / K lấy phần dư.
+) ví dụ KHOA CONG NGHE THONG TIN có độ dài là 20, K=6 20/6 =3 dư 2.
Vậy 2 số đầu sẽ có 4 hàng, 2 hàng đầu là 2 hàng có số đầu tiên của khóa( tức là cột 3 và 6 sẽ có 4 hàng )
I N Đổi stt theo khóa K ban đầu:
Sau đó ghép lại theo stt từ 3-6-2-1-5-4và đọc theo hàng ngang, thu được bản rõ KHOA CONG NGHE THONG TIN.
MÃ HÓA RSA
Giới thiệu về mã hóa RSA
RSA (Rivest–Shamir–Adleman) là một hệ thống mã hóa công khai, nổi bật là một trong những phương pháp bảo mật lâu đời và phổ biến nhất để truyền tải dữ liệu an toàn Được phát triển bởi ba nhà khoa học Ron Rivest, Adi Shamir và Leonard Adleman, thuật toán RSA đã được công bố lần đầu vào năm 1977.
Trong hệ thống mật mã công khai, khóa mã hóa được công khai và khác biệt với khóa giải mã, khóa này được giữ bí mật Người dùng RSA tạo và công bố khóa công khai dựa trên hai số nguyên tố lớn và một giá trị phụ, trong khi các số nguyên tố này được giữ bí mật Bất kỳ ai cũng có thể mã hóa tin nhắn bằng khóa công khai, nhưng chỉ người nắm giữ các số nguyên tố mới có khả năng giải mã.
– Chọn p và q là 2 số nguyên tố
Tính n = p.q (n dùng trong public key và private key)
– Cách tìm một số giả nguyên tố bằng phi hàm Carmichael: Ф (n) = (p − 1).( q
− 1) Giữ bí mật cho giá trị này.
- Chọn một số tự nhiên trong (0