Mavzu: Pleyfeyr bigramma shifri, hill kriptotizimi


Hill kriptotizimi misollar


Download 226.33 Kb.
bet5/6
Sana07.04.2023
Hajmi226.33 Kb.
#1338991
1   2   3   4   5   6
Bog'liq
muhriddin

2.2 Hill kriptotizimi misollar
Hill kriptotizimi, matnning har bir harfini sonlar soniyasi ko'rinishida ifodalaydi va matn har bir blokini katta bir matriksda ifodalaydi. Hill kriptotizimi ko'pincha 2x2 va 3x3 matrikslarni qo'llaydi.Quyidagi misollar Hill kriptotizimi usulida matnlarni shifrlash uchun 3x3 matriksni ko'rsatadi:
Kalit matriks: 2 1 3
1 3 1
1 2 1
Matn: "hello world"
Shifrlangan matn: "SLYODZGUJMK"
Kalit matriks: 6 24 1
13 16 10
20 17 15
Matn: "goodbye"
Shifrlangan matn: "HDSXONIJ"
Kalit matriks: 17 17 5
21 18 21
2 2 19
Matn: "abcdefghijklmnopqrstuvwxyz"
Shifrlangan matn: "EQKLTSWLZRHGCOVJYXPFDAMNBU"



    1. Hill kriptotizimini c++ da dastur kodi

#include
#include
using namespace std;
string encrypt(string message, int key[3][3]) {
int n = message.length();
int col, row, sum;
// Add padding if necessary
if (n % 3 != 0) {
for (int i = 0; i < 3 - n % 3; i++) {
message += 'X';
}
n = message.length();
}
// Encrypt the message
string result = "";
for (int i = 0; i < n; i += 3) {
for (int j = 0; j < 3; j++) {
sum = 0;
for (int k = 0; k < 3; k++) {
sum += key[j][k] * (message[i + k] - 'a');
}
col = sum % 26;
result += col + 'A';
}
}
return result;
}
int main() {
// Define the key matrix
int key[3][3] = {{17, 17, 5}, {21, 18, 21}, {2, 2, 19}};
// Define the message to be encrypted
string message = "abcdefghijklmnopqrstuvwxyz";
// Encrypt the message

Download 226.33 Kb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling