Implementation Of Mono Alphabetic Cipher Encryption-Decryption

Mono Alphabetic Cipher Encryption-Decryption

Introduction

It is Better than Caesar Cipher. If, instead the “cipher” line can be any permutation of the key 26 alphabetic characters, then there are 26! Or greater than 4 * 1026 possible keys. This is 10 orders of magnitude greater than the key space for DES and would seem to as a Mono-alphabetic substitution cipher, because a single cipher alphabet is used per message.

There is however, another line of attack. If one analytically knows the nature of the plain text, then the analyst can exploit the regularities of the language.

Limitations

  • Monoalphabetic ciphers are easy to break because they reflect the frequency data of the original alphabet.
  • A countermeasure is to provide multiple substitutes, known as homophones, for a single letter

C Progrm to Encryp the imputed text using Mono Alphabetic Cipher.

#include <stdio.h>
#include <string.h>
int main()
{
    char pt[52] = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K',
                   'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
                   'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g',
                   'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r',
                   's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};

    char ct[52] = {'Z', 'Y', 'X', 'W', 'V', 'U', 'T', 'S', 'R', 'Q', 'P', 'O',
                   'N', 'M', 'L', 'K', 'J', 'I', 'H', 'G', 'F', 'E', 'D', 'C',
                   'B', 'A', 'z', 'y', 'x', 'w', 'v', 'u', 't', 's', 'r', 'q',
                   'p', 'o', 'n', 'm', 'l', 'k', 'j', 'i', 'h', 'g', 'f', 'e',
                   'd', 'c', 'b', 'a'};

    char p[20] = {'\0'}, c[20] = {'\0'}, r[20] = {'\0'};
    int i, j;
    printf("\n Enter the plain text:");
    scanf("%s",p);
    for (i = 0; i < strlen(p); i++)
    {
        for (j = 0; j < 52; j++)
        {
            if (pt[j] == p[i])
            {
                c[i] = ct[j];
            }
        }
    }
    printf("\n Cipher text is: %s", c);
    for (i = 0; i < strlen(c); i++)
    {
        for (j = 0; j < 52; j++)
        {
            if (ct[j] == c[i])
            {
                r[i] = pt[j];
            }
        }
    }
    printf("\n \nPlain text is: %s", r);
}

Implementation Of Mono Alphabetic Cipher Encryption-Decryption


Comments

Popular posts from this blog

C Program for SCAN Disk Scheduling Algorithm | C Programming

C program to Find Cartesian Product of Two Sets | C programming

C Program To Check The String Is Valid Identifier Or Not | C Programming