IsraelTorres icon

ct3-crypto-keys.c

IsraelTorres | PRO | 08/17/11 03:35:25 PM UTC | 0 ⭐ | 525 👁️ | Never ⏰ | []
C |

2.11 KB

|

None

|

0 👍

/

0 👎

/*
 ct3-crypto-keys.c
 Israel Torres [email protected]
 Sun Aug 14 15:37:12 PDT 2011
 "Cryptotutorials #3 Cryptography fundamentals - Crypto with Keys"
 demo to:
 associate letters to numbers, generate key and encrypt/decrypt w/key
 compile with: 
 gcc ct3-crypto-keys.c -o ct3-crypto-keys && ./ct3-crypto-keys
 created and tested on gcc version 4.2.1 / Mac OS X 10.7 11A511
 */
 
#include <time.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
#define ALPHABET 26 // the size of the alphabet used
#define ALPHAUPP 65 // using ASCII 65-90 for alphabet
#define KEYBUFFR 50 // the size of the keystream
 
int main (int argc, char * argv[])
{
    srand((unsigned)time(NULL)); // seed the 'randomizer' 
        
    // test string
    char teststring[]="THESECRETMESSAGE"; int counter=0;
    printf("teststring: [%s]\n",teststring);
    for (;counter < strlen(teststring); counter++){
        printf("%d\t",teststring[counter]-ALPHAUPP);
        printf("%c\n",teststring[counter]);
    }
    
    // genereate pseudo-random keystream
    printf("generating keystream: [");
    int random=0; counter=0; int keystream[KEYBUFFR]={0};
    for (;counter < strlen(teststring); counter++){
        keystream[counter]=rand()%9; // keystream to contain values 0 - 9
        printf("%d",keystream[counter]);
    }
    printf("]\n");
    
    // encrypt test string
    printf("encrypting...\n"); 
    char encrypted[KEYBUFFR]="\0"; counter=0;
    for (;counter < strlen(teststring); counter++){
        printf("%d\t",teststring[counter]-ALPHAUPP+keystream[counter]);
        encrypted[counter]=teststring[counter]+keystream[counter];
        printf("%c\n",encrypted[counter]);
    }
    printf("encrypted string: [%s]\n",encrypted);
    
    // decrypt encrypted test string
    printf("decrypting...\n");   
    char decrypted[KEYBUFFR]="\0"; counter=0;  
    for (;counter < strlen(encrypted); counter++){
        printf("%d\t",encrypted[counter]-ALPHAUPP-keystream[counter]);
        decrypted[counter]=encrypted[counter]-keystream[counter];
        printf("%c\n",decrypted[counter]);
    }
    printf("decrypted string: [%s]\n",decrypted);
 
    return 0;
}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎