Temel Şifreleme Algoritmaları (Sezar Algortiması ve RSA Algoritması)




C Programlama Sezar Algoritması ve RSA Algoritması



/* sezar sifreleme algoritmasi */

#include <stdio.h>
#include <string.h>
#include <conio.h>

int main () {
    
    char mesaj[50];
    int anahtar,i;
    printf("..::: sezar sifreleme algoritmasi ::...\n\n");
    printf("Mesaj : ");
    scanf("%s",&mesaj);
    strupr(mesaj);
    printf("\n\n anahtari giriniz : ");
    scanf("%d",&anahtar);
    for(i=0;i<strlen(mesaj);i++)
    mesaj[i]=(char) (((int)mesaj[i]-65+anahtar)%26+65);
    printf("\n\n sifreleme sonucu : %s",mesaj);     
    
    getch();
    return 0;
    
}

/* RSA Algoritması */

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<math.h>

int phi,C,M,n,e,d,FLAG;

int check() {
    int i;
    for(i=3;e%i==0&&phi%i==0;i+2)
    {
      FLAG = 1;
      return 0;
    }
    FLAG = 0;
    }
     
    void encrypt()
    {
      int i;
     C=1;
     for(i=0;i<e;i++) {
     C*=M;
     }
     C=C%n;
     printf("\\n\tEncrypted keyword: %d",C);
    }
    void decrypt()
    {
     int i;
     M=1;
    for(i=0;i<d;i++)
    M = M*C%n;
    M=M%n;
    printf("\n\tDecrypted keyword: %d",M);
    }
    
int main() {

int p,q,s;
system("CLS");
printf("birinci asal sayiyi giriniz : ");
scanf("%d",&p);
printf("\n\nikinci asal sayiyi giriniz : ");
scanf("%d",&q);
n = p*q;
phi = (p-1)*(q-1);

printf("\n\tF(n)\t = %d",phi);

do{
printf("\n\n1 den buyuk %d den kucuk %d ile aralarinda asal bir E sayisi girin\t:",phi,phi);
scanf("%d",&e);
check();
}while(FLAG==1);
     
d  = 1;
do{
     s = (d*e)%phi;
     d++;
    }while(s!=1);
    d = d-1;
    printf("\n\tPublic key is \t: {%d, %d}",e,n);
    printf("\n\tPrivate key is\t: {%d,%d}" ,d,n);
    printf("\n\nEnter the Plain Text\t:");
    scanf("%d",&M);
    encrypt();
    printf("\n\nEnter the Cipher text\t: ");
    scanf("%d",&C);
    decrypt();
    getch();
    }



Yorum Gönder

0 Yorumlar