필자는 VHDL은 말할 것도없이이 특정 (그리고 현재 일자) 대칭 암호화 알고리즘을 매우 철저히 이해하고있는 1996 년 2 일 반 동안 디지털 암호화 표준 (DES)을 1996 년에 작성했습니다. 또한 VHDL 코드의 일부를 생성하는 C 프로그램을 거의 사용하지 않습니다 (테스트 벤치 용 테스트 벡터 인 S 박스). DES는 원래 하드웨어로 구현되어야했으며, RTL 레벨에서 한 IBM 특허에 설명되어 있었고 FIPS Pub 46에서는 중립적 인 방식으로 레퍼런스 구현이 문서화되어있었습니다.
참고로 사용할 수있는 구현은 직접 합성 대상이 아니며 RTL 수준의 I/O 버퍼가 제거되어야합니다. 또한 구성을 사용하여 R 및 L의 다른 네 개의 동일한 바이트 레지스터 쌍을 S 구성 요소로 지정합니다. 필자는 아직 구성을 지원하지 않은 VHDL 분석기/시뮬레이터와 함께 사용하기 전에 이들을 구별했습니다.
배포판의 가장 큰 부분은 DES 순열에 대한 PDF 문서로, 8 비트 인터페이스는 초기 순열, 역 순차 순열 및 확정 선택 1 (9 번째 와이어가 추가됨)에 대한 8 개의 전선입니다 . 또한 E의 순열은 매우 규칙적입니다. 불규칙한 순열은 Permuted Choice 2와 P 순열입니다. 물론 S 박스가 있습니다.
DES는 가장 간단한 구현에서 4,700 개의 NAND 게이트에 상응하여 구현 될 수 있으며, 예상 결과를 갖는 테스트 벡터가있다.
vhdl_des.tar.gz 및 des.test (테스트 벡터) Dropbox에.
교육 환경에서 임의의 키를 사용하지 못하도록 비활성화 된 자바 스크립트 DES 구현이 있습니다. 페이지를 캡처하면 실제로 실행 취소하여 비활성화하여 임의의 키를 사용할 수 있습니다. JavaScript DES Example을 참조하십시오. 여기 값은 각 라운드의 내부 값을 보여줍니다.
가 [쓰기 키 JS-DES.html의 사본은
JS-DES.html
http://dpades.googlecode.com/svn/trunk/simu_js/JS-DES.html에서 찾을 수 있습니다, 프로젝트 홈 페이지 (
http://code.google.com/p/dpades/은)는 GPLv2에 말한다.]
당신은 라운드 값을 찾기 위해 자바 스크립트 구현을 사용할 수 있습니다 구현 문제 해결.
충분히 정교하지 않으면 Triple DES를 사용해보십시오.
VHDL은이 구현에 필수입니까? 그렇지 않다면 Verilog를 VHDL보다 훨씬 빨리 선택할 수 있습니다 (순차적으로 병렬로 생각할 필요가 있습니다) - 하드웨어에서 신호가 나타나 자마자 발생합니다. 소프트웨어에서는 실행 순서를 제어 할 수 있습니다). 그 외에도 시간 제한이 있고 FPGA 구현에서 FPGA가 변환 및 C 코드를 직접 FPGA에로드 할 수 있는지 확인하는 경우 (대부분의 경우 수행) – wisemonkey
고맙다는 응답을 보내지 않고 VHDL이 될 것입니다. 워밍업으로 성공한 좋은 '기본'VHDL 프로그램을 작성했습니다. 상대적으로 괜찮아요, 당신이 보는 것은 당신이 얻는 것입니다. 예, #C를 실행하는 FPGA로 인스턴스화 된 소프트 코어 프로세서를 발견했습니다. 목표는 VHDL을 통해 FPGA 속도를 활용하는 것입니다. 많은 암호가 거기에 있으므로 여전히 비교적 좋은 암호를 선택하려고합니다. –
FPGA에서 마법의 속도가 증가 할 것이라는 점에주의하십시오 - 데이터를 가져오고 나가는 방법은 어떻습니까? 프로세서에서 데이터를 가져올 수 있습니다). 그렇게 할 수 없다면 문제를 계산 중심에서 I/O 바인딩 ([슈퍼 컴퓨터의 표준 정의] (https://groups.google.com/d/))으로 옮겼습니다. msg/comp.sys.super/QudD4KmUz-s/NemYWOvi5zcJ) :) –