초록
본 논문에서는 대한민국 표준 128비트 블록 암호알고리즘인 SEED를 하나의 FPGA에 사상될 수 있도록 설계한다. 이를 위해 VHDL을 이용하여 설계하고 회로는 라운드키 생성부, F함수부, G함수부, 라운드 처리부, 제어부, I/O부로 구성한다. 본 논문에서 SEED는 FPGA를 대상으로 설계하나 ASIC이나 코어(core)를 사용하는 설계 등에 응용될 수 있도록 구현대상을 정하지 않고(technology independent) 범용적으로 설계한다. SEED구조상 많은 하드웨어 자원을 필요로 하는 점 때문에 구현 시 자원제한에 의한 문제점을 최소화하기 위해 F함수부와 라운드 키 생성부에서 사용되는 G 함수를 각각 1개씩 구현하고 이를 순차적으로 사용함으로써 게이트 수를 최소화하여 부가적인 하드웨어 없이 모든 SEED알고리즘이 하나의 FPGA 내에 구현되도록 한다. SEED는 Altera FLEX10K100에서 구현할 경우 FPGA 사용률이 약 80%이고 최대 28Mhz clock에서 동작하여 14.9Mbps로 암호화를 수행할 수 있다. 설계된 SEED는 공정기술과 무관하고 공정기술의 변경에 따른 부가 하드웨어가 전혀 필요 없이 하나의 FPGA로 설계되었다. 따라서 SEED의 구현이나 이를 사용하는 시스템 제작 등에 쉽게 응용할 수 있으리라 사료된다.
In this paper SEED, the Korea Standard 128-bit block cipher algorithm is implemented with VHDL and mapped into one FPGA. SEED consists of round key generation block, F function block, G function block, round processing block, control block and I/O block. The designed SEED is realized in an FPGA but we design it technology-independently so that ASIC or core-based implementation is possible. SEED requires many hardware resources which may be impossible to realize in one FPGA. So it is necessary to minimize hardware resources. In this paper only one G function is implemented and is used for both the F function block and the round key block. That is, by using one G function sequentially, we can realize all the SEED components in one FPGA. The used cell rate after synthesis is 80% in Altem FLEXI0KlOO. The resulted design has 28Mhz clock speed and 14.9Mbps performance. The SEED hardware is technology-independent and no other external component is needed. Thus, it can be applied to other SEED implementations and cipher systems which use SEED.