From 2b46e3a93a1daabc460782578627a7bccb4a31d9 Mon Sep 17 00:00:00 2001 From: Utsav Patel <158522755+utsavpatel562@users.noreply.github.com> Date: Mon, 26 Feb 2024 15:17:32 -0500 Subject: [PATCH] Add files via upload --- enc and decry using caser ciper without key.c | 57 +++++++++ enc and decry using columnar transpostion.c | 106 ++++++++++++++++ enc and decry using hill cipher.c | 120 ++++++++++++++++++ enc and decry using vigener cipher.c | 90 +++++++++++++ 4 files changed, 373 insertions(+) create mode 100644 enc and decry using caser ciper without key.c create mode 100644 enc and decry using columnar transpostion.c create mode 100644 enc and decry using hill cipher.c create mode 100644 enc and decry using vigener cipher.c diff --git a/enc and decry using caser ciper without key.c b/enc and decry using caser ciper without key.c new file mode 100644 index 0000000..06167a6 --- /dev/null +++ b/enc and decry using caser ciper without key.c @@ -0,0 +1,57 @@ +// Progam for encryption and decryption using Caesar cipher technique without key // +#include +#include +#include +void main() +{ + char plain[50]; + char cipher[50]; + char c; + int key = 3,i,j; + clrscr(); + printf("Enter Plain Text ="); + gets(plain); + + // Encryption Logic + for(i=0; i='A' && plain[i]<='Z') + { + cipher[i]=((plain[i]-65+key) % 26)+65; + printf("%c",cipher[i]); + } + else if(plain[i]>='a' && plain[i]<='z') + { + cipher[i]=((plain[i]-97+key) % 26)+97; + printf("%c",cipher[i]); + } + else + { + cipher[i] = plain[i]; + printf("%c",plain[i]); + } + } + printf("\n\n"); + + // Decryption Logic + printf("Decryption is ="); + for(i=0;i='A' && cipher[i]<='Z') + { + plain[i]=((cipher[i]-65-key) % 26)+65; + printf("%c",plain[i]); + } + else if(plain[i]>='a' && plain[i]<='z') + { + plain[i]=((cipher[i]-97-key) % 26)+97; + printf("%c",plain[i]); + } + else + { + cipher[i] = plain[i]; + printf("%c",cipher[i]); + } + } +getch(); +} \ No newline at end of file diff --git a/enc and decry using columnar transpostion.c b/enc and decry using columnar transpostion.c new file mode 100644 index 0000000..76839e0 --- /dev/null +++ b/enc and decry using columnar transpostion.c @@ -0,0 +1,106 @@ +// Encryption and Decryption using columnar transposition // + +#include +#include +void main() +{ + char pt[60]; + char newpt[60] = {"\0"}; + char et[60] = {"\0"}; + char newet[60] = {"\0"}; + char dt[60] = {"\0"}; + char mat[12][5]; + int row, column = 5, len, i, j, newlen, k = 0, m; + clrscr(); + printf("\n\nEnter Plain Text:"); + gets(pt); + + len = strlen(pt); + for(i=0; i 0) + row = row + 1; + + // Create matrix from plaintext // + printf("\nColumner Matrix is:"); + for(i = 0; i < row; i++) + { + for(j = 0; j < column; j++) + { + if(k < newlen) + { + mat[i][j] = newpt[k]; + printf("%2c",newpt[k]); + k++; + }else{ + mat[i][j] = 32; + } + } + printf("\n"); +} +// Encryption Code // +k = 0; +for(m = 0; m < column; m += 2) +{ + for(i = 0; i < row; i++) + { + et[k] = mat[i][m]; + k++; + } +} +for(m = 1; m < column; m += 2) +{ + for(i = 0; i < row; i++) + { + et[k] = mat[i][m]; + k++; + } + 31 +} + +// Blank space Remove Code // +newlen = strlen(et); +for(i = 0; i < newlen; i++) +{ + if(et[i] != 32) + { + len = strlen(newet); + newet[len] = et[i]; + } +} +printf("\n\nEncrypted Text Is: %s", newet); + +// Decryption Code // +k = 0; +for(i = 0; i < row; i++) +{ + m = i; + for(j = 0; j < column; j++) + { + if(j%2 == 0) + { + dt[k] = et[m]; + m = m + (row * 3); + k++; + + } + else{ + dt[k] = et[m]; + m = m - (row * 2); + k++; + } + } +} +printf("\n\n Decrypted Text Is: %s", dt); +getch(); +} \ No newline at end of file diff --git a/enc and decry using hill cipher.c b/enc and decry using hill cipher.c new file mode 100644 index 0000000..920fd0f --- /dev/null +++ b/enc and decry using hill cipher.c @@ -0,0 +1,120 @@ +// Program for Encryption and Decryption using Hill Cipher technique // + +#include +#include +#include +void main() +{ + char ptext[20] = "\0", newptext[20] = "\0", etext[20] = "\0", newetext[20] = "\0", + dtext[20] = "\0", newdtext[20] = "\0", abcd[26] = "abcdefghijklmnopqrstuvwxyz"; + + int b[20], c[20], newmod[20], mod[20], mat[3][3], a[9]; + int A, i, j ,len ,len1 ,oldlen , sum = 0 , k = 0, x, y, div, DIV, m , n = 0; + clrscr(); + + // Enter Plain Text // + printf("Enter the plain text:"); + gets(ptext); + + // Remove Blank Space // + oldlen = strlen(ptext); + for(k = 0; k < oldlen; k++) + { + if(ptext[k] != 32) + { + len1 = strlen(newptext); + newptext[len1] = ptext[k]; + } + } + + // Add Two Fake or Dummy Character for Grouping of 3 Character // + oldlen = strlen(newptext); + newptext[oldlen] = 'x'; + newptext[oldlen + 1] = 'x'; + len = strlen(newptext); + + // Enter Values of Matrix // + printf("\n Enter values of 3 X 3 array:\n"); + for(i = 0; i < 3; i++) + { + for(j = 0; j < 3; j++) + { + scanf("%d",&mat[i][j]); + } + } + + // Encryption Start here // + for(m = 1; m <= len; m++) + { + if(m % 3 == 0) + { + for(i = n; i < n+3; i++) + { + for(j = 0; j < 26; j++) // It will get index of plaintext + { + if(newptext[i] == abcd[j]); + { + b[i % 3] = j; + break; + } + } + } + for(i = 0; i < 3; i++) + { + for(j = 0; j < 3; j++) + { + sum = sum + (b[j] * mat[i][j]); + } + mod[i] = sum % 26; + sum = 0; + } + // Creating Text From Modulied Matrix // + for(i = n; i < n +3; i++) + { + for(j = 0; j < 26; j++) + { + if(mod[i % 3] == j) + { + etext[i] = abcd[j]; + break; + } + } + } + n = n + 3; + } + } + // Remove Extra Character From End of etext // + for(i = 0; i < oldlen; i++){ + newetext[i] = etext[i]; + } + // Print Encrypted Text // + printf("\n Encrypted Text is :"); + puts(newetext); + + // Inverse of matrix for decryption // + A = (mat[0][0] * (mat[1][1] * mat[2][2] - mat[2][1] * mat[1][2])) - (mat[0][1] * (mat[1][0] + * mat[2][2] - mat[2][0] * mat[1][2])) + (mat[0][2] * (mat[1][0] * mat[2][1] - mat[2][0] * mat[1][1])); + + div = A/26; + if(div < 0) + { + DIV = div - 1; + } + else{ + DIV = div; + } + A = A-26 * DIV; + printf("\n Value of a is %d\n\n",A); + for(x = 1; x < 1000; x++) + { + if(y * 26 == A*x-1) + { + goto xy; + } + } + xy: + printf("\n x = %d y = %d \n\n",x,y); + a[0] = (mat[1][1] * mat[2][2] - mat[2][1] * mat[1][2]); + a[3] = -(mat[1][0] * mat[2][2] - mat[2][0] * mat[1][2]); + a[6] = (mat[1][0] * mat[2][1] - mat[2][0] * mat[1][1]); +} \ No newline at end of file diff --git a/enc and decry using vigener cipher.c b/enc and decry using vigener cipher.c new file mode 100644 index 0000000..00d2b9e --- /dev/null +++ b/enc and decry using vigener cipher.c @@ -0,0 +1,90 @@ +// Progam for Encryption and Decryption using Vigener Cipher technique // + +#include +#include +#include +void main() +{ + char str[100]; + char cstr[100]; + char code[5] = "SSPC",c; + char cap_code[5] = "SSPC"; + int indexcode = 0, ascii; + int i,j,number,a,b, len = 0; + clrscr(); + printf("\n\n\t\tEnter Plain Text = "); + gets(str); + i = strlen(str); + len = strlen(code) - 1; + for(j = 0; j < i; j++) + { + if(str[j] != '') + { + ascii = (int)str[j]; + if(ascii >= 65 && ascii <=90) + { + int index = indexcode % len; + cstr[j] = code[index]; + } + indexcode++; + } + else + cstr[j] = ''; + } + cstr[j] = '\0'; + printf("\n\n\t\tKey Code = "); + puts(cstr) + for(j = 0; j < i; j++) + { + ascii = (int)str[j]; + if(str[j] != '') + { + if(ascii >= 65 && ascii <= 90) + { + a = (int)str[j] % 65; + b = (int)cstr[j] % 65; + number = (a + b) % 26; + number = number + 97; + } + else if(ascii >= 97 && ascii <= 122) + { + a = (int)str[j] % 97; + b = (int)cstr[j] % 97; + number = (a + b) % 26; + number = number + 97; + } + str[j] = (char) number; + } + else str[j] = ''; + } + str[j] = '\0'; + printf("\n\n\t\tEncrypted Text = "); + puts(str); + for(j = 0; j++) + { + ascii = (int)str[j]; + if(str[j] != '') + { + if(ascii >= 65 && ascii <= 90) + { + a = (int)str[j] % 65; + b = (int)cstr[j] % 65; + number = (a + b) % 26; + number = number + 97; + } + else if(ascii >= 97 && ascii <= 122) + { + a = (int)str[j] % 97; + b = (int)cstr[j] % 97; + number = (a + b) % 26; + number = number + 97; + } + str[j] = (char) number; + } + else str[j] = ''; + } + str[j] = '\0'; + printf("\n\n\t\tPlain Text = "); + puts(str); + getch(); +} \ No newline at end of file