rsa프로그램 (c언어)
- 최초 등록일
- 2009.02.17
- 최종 저작일
- 2008.11
- 6페이지/ 한컴오피스
- 가격 1,500원
소개글
보안수업 프로젝트로 코딩한 RSA 암호화 알고리즘 입니다.
각 줄마다 주석을 달아놓았고 초보자가 이해하기 쉽도록 했고
학점은 물론 A+ 이구요. 후회안하실 겁니다.
실행파일은 소스붙여다가 디버깅 하시면 됩니다.
목차
간략설명
소스분석
실행화면
본문내용
<간략 설명>
RSA 공개키 알고리즘을 직접 코딩하였습니다.
평문 M을 입력받고, 두 소수 p , q 는 난수생성을 이용하였습니다.
공개키 e 와 N 개인키 d 를 연산한 뒤, 바이트 단위로 암호화를 수행하였습니다.
암호화된 암호문을 다시 복호화 시켜 평문과 동일한 복호문을 얻을 수 있었습니다.
<소스분석>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<string.h>
#define MAXSTRING 30 //평문의 최대길이
char m[MAXSTRING]; //평문 M을 저장할 배열
int check=1; //소수체크를 저장할 변수
int issosu(int); //소수를 판별하는 함수
int gete(int); //공개키 e 를 구하는 함수 (p-1)*(q-1) 과 서로소인 수이다.
int getd(int,int); //개인키 d 를 구하는 함수 < ed = 1 mod (p-1)(q-1) >
int encryption(int,int,int); //암호화를 하는 함수. M^e mod N
char decryption(int,int,int);//복호화를 하는 함수 C^d mod N
int main()
{
int i;
int data;
int p=0,q=0; //두개의 소수를 저장할 변수
int n=0; //공개키 n
int e; //공개키 e
int d; //개인키 d
int c[MAXSTRING]; //암호문 C 를 저장할 배열
char decM[MAXSTRING]; //복호화된 평문을 저장할 배열 decM
int lenth; //평문의 길이를 저장할 변수
srand(time(0)); //난수 생성을 위한시간초기화
printf("====== 2002319006 김강호 ======\n");
참고 자료
없음