PDA

View Full Version : الگوریتم رمزنگاری Vernam



saeedIRHA
دوشنبه 20 اسفند 1386, 15:56 عصر
از دوستان کسی از الگوریتم رمزنگاری Vernam یا One-Time Pad
و نحویه پیاده سازیش اطلاعی داره ؟؟؟

با تشکر

illegalyasync
دوشنبه 20 اسفند 1386, 20:48 عصر
http://en.wikipedia.org/wiki/One-time_pad

;)

saeedIRHA
دوشنبه 20 اسفند 1386, 22:31 عصر
ممنون این لینک رو خونده بودم!!
همون طور که گفتم میخواستم ببینم چجوری پیاده سازی میشه که
حل شد.
این مثال رو هم میزارم برای کسهایی که بعداً شاید احتیاج داشته باشن:
Written in C


/*

* This Application is for Solving 3rd part of assignment -- Crack Cipher using Vernam Encryption
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>

int main(int argc,char *argv[])
{
FILE *cipherFile,*padFile;
char buf;
int byte1,byte2;

if(argc != 3){
fprintf(stderr,"Usage: %s <Cipher File> <Pad File>\n",argv[0]);
return 1;
}
if((cipherFile=fopen(argv[1],"r")) ==NULL){
fprintf(stderr,"[!]Cannot Open Cipher File.\n");
return 1;
}
printf("[+]Reading Cipher File: %s\n",argv[1]);
if((padFile = fopen(argv[2],"r")) == NULL){
fprintf(stderr,"[!]Cannot Open Pad File.\n");
return 0;
}
printf("[+]Reading Pad File: %s\n",argv[2]);
printf("[+]Decrypted Message is: \"");
while (byte1 != EOF)
{
byte1 = fgetc(cipherFile);
byte2 = fgetc(padFile);
//buf = byte1 ^ byte2;
if(byte1 == EOF) break;
// printf("Byte in hex: 0x%x\n",byte1);
buf = byte1 ^ byte2;
printf("%c",buf);

}
printf("\"\n[-]Program Terminating...\n");
fclose(cipherFile);
fclose(padFile);
return 0;
}


فایل Pad و Encrypt شد رو هم Attach کردم

Devilprogramer
چهارشنبه 04 اردیبهشت 1387, 10:59 صبح
//buf = byte1 ^ byte2;

تو one time pad تموم زندگیش همین یه خطه .. چرا کامنتش کرده پس?!!

Nimi_hop
جمعه 10 آبان 1387, 15:38 عصر
من فایل کتابخانه unistd.hرا ندارم اگه کسی داره لینک اونو بزاره برا دانلود مرسی

saeedIRHA
شنبه 11 آبان 1387, 07:13 صبح
اگر در windows کار ميکنه اون خط رو پاک هم کنی برنامه compile ميشه
اصلاً احتياج به اون library نيست برای اين برنامه.