quartus2를 이용한 암호화 시스템!
- 최초 등록일
- 2008.11.29
- 최종 저작일
- 2007.11
- 압축파일
- 가격 2,000원
소개글
저희 논리회로 프로젝트 였습니다^^;
RSA 키 알고리즘을 응용하여, 논리회로 수준에서 정보의 암호화와 복호화가 가능하도록 만드는 것이 목적이었구요... A+ 받았습니다.
최종 리포트와 quartus2 구현 소스(구동확인)가 있습니다.
다른 프로젝트를 하시는 분들도 한번 구경하세요^^
컴파일 실행환경
quartus2
본문내용
1. All_Secure
구성요소 : SU_Toggle
역할 : 6bit짜리 oper, rand, char 3개를 입력받아서 SU_Toggle을 이용 암호화된 값을 출력한다.
2. SU_Toggle
구성요소 : Secure, Unsecure, 2BusMUX
역할 : select를 입력 받아 암호화된 값을 결과로 내보낼지, 복호화된 값을 내보낼지 정해주는 회로.
3. Secure
구성요소 : Module_Remain_4, 1to4_asmd, 4BusMUX
역할: 우선 6bit짜리의 입력을 3개 받아, 그 중 2개를 1to4_asmd 회로를 이용 4개의 압호화된 값을 만들어 준다. 그 뒤 남은 1개는 4로 나눈 나머지를 이용하여 암호화된 4개의 값 중 하나를 정하는데 이용한다.
4. 1to4_asmd
구성요소 : 6Bit_Adder, 6Bit_Subber
역할 : 6bit짜리 난수와 문자를 입력 받아서, 그 둘을 순서대로 a와 b라고 하자. 암호화된 값을 결과로 내보내는데, 첫째 결과값은 a+b , 둘째 결과a-b. 또, 셋째 결과값은 2a+b, 넷째 결과값은 4a+b 가 된다.
5. UnSecure
구성요소 : Module_Remain_4, Un_1to4_asmd, 4BusMUX
역할 : secure회로와 같은 방식을 이용하여 복호화된 값을 결과로 내보낸다.
6. Un_1to4_asmd
구성요소 : 6Bit_Adder, 6Bit_Subber
역할 : 암호화된 값과, 난수를 받아 하난 그 둘 순서대로 c와 d라고 하자. 만약 암호화 할 때 a+b의 연산을 했으면, c-d로, 또a-b가 들어갔으면, c+d의 연산을 한다. 그리고 2a+b의 연산을 했으면, 2d-c식을, 4a+b을 했다면 4d-c식을 계산한다.
7. Key maker
구성요소 : lpm_inv103, MULTI, Increment, Pmaker, Privatekeymaker
역할 : 20bit짜리 입력을 받으면 일단 하나는 전부 inverting 시켜서 Pmaker에 들어가고, 하나는 그 상태를 유지하면서 Pmaker에 들어간다. 그럼 Pmaker회로의 결과로 8bit짜리 2개의 수가 나온다. 이를 p와 q라고 하면, pq와 (p+1)(q+1) 값을 public key로 사용하고, private key는 위의 pq와 (p+1)(q+1)을 input으로 갖는 Privatekeymaker회로에 넣어 private key를 생성하게 된다.
그 외.. 총 29개 회로가 있습니다.
참고 자료
-목 차-
1. 요약
2. 서론
3. 개발환경
4. 각 회로 설명
5. 전체 과정 설명
6. 결론 및 맺음말
7. 참고 자료