c언어로 만든 간단한 RSA
- 해킹 / 암호
- 2020. 12. 9.
250x250
C언어로 만든 간단한 RSA.
안녕하세요.
오늘은 공개키 암호 알고리즘 중 하나인 RSA 코드입니다.
그냥 공부하면서 대충 만든 겁니다.
- 특정 파일/디렉토리 명을 주면 모든 정보를 출력
- 권한을 700으로 변경하는 프로그램

코드
코드는 다음과 같습니다.
#include<stdio.h>
/*ras*/
long pow_(long i,long j,long k){
double l,temp,p=1;
for(temp=0;temp < j ; temp++){
p=(p*((double)i));
l=(long)(p/k); //소수점 삭제.
p=p-(l*k);
}
return (long)p;
}
int encryption(int input,int e, int n){
int i=pow_(input,e,n);
printf("입력받은 수의 rsa암호화 결과= %d\n",i);
return i;
}
int Decryption(int input,int d, int n){
int i=pow_(input,d,n);
printf("암호화된 수의 rsa복호화 결과= %d\n",i);
return i;
}
int main(){
int input;
scanf("%d",&input);
int p=17,q=11;
int e=7, d=23, N=p*q;
input=encryption(input,e,N);
Decryption(input,d,N);
return 0;
}
알고리즘.
두 소수 p와 q를 선택한다.
(위의 코드에서는 17과 11을 선택.)
φ(N)=(p-1)(q-1)=160
160보다 작으면서 φ(N)과 서로소인 수 e를 선택한다.
(위의 코드에서는 7.)
d<160이면서 demodφ(N)=1인 수 d를 결정한다.
(위의 코드에서는 d*7mod160=1이므로 23이 d가 된다.)
공개키={7,187}, 개인키={23,187}이 된다.
실행결과.
그래서 위의 코드를 실행해보면 이런 결과가 나온다.
