1 |
1
블록 암호 운용 방식에 따르는 마이크로프로세서; 및상기 마이크로프로세서와 연결되어 통신하는 GEZEL 하드웨어 코-프로세서(H/W co-processor);를 포함하며,상기 GEZEL 하드웨어 코-프로세서는,GEZEL IP(intellectual property) 블록; 및데이터패스(datapath)를 이용한 유한상태기계(Finite state machine with datapath, FSMD) 방식으로 동작시키는 하나 이상의 하드웨어 IP;를 포함하고, 상기 마이크로프로세서는 하드웨어와 소프트웨어의 통합 설계 시 각 대칭키 암호의 알고리즘 중 키 스케줄 부분을 소프트웨어에서 구현하여 미리 각 라운드키 값을 계산하고, 상기 계산된 라운드키를 하드웨어로 보내어 상기 하드웨어에서 키 스케줄 연산 처리 과정을 생략시킴으로써 속도를 증대시키며,상기 마이크로프로세서가 한 사이클에 두 명령을 상기 하드웨어로 전송하면, 상기 하드웨어는 상기 두 명령을 순차적 또는 병렬적으로 수행하되, 상기 마이크로프로세서는 상기 하드웨어로부터 첫 명령전송에 대응하는 하나의 완료명령을 받은 후 다음 사이클에 두 명령을 다시 상기 하드웨어로 보내는 통신을 통해, 첫 연산 사이클 이후 소프트웨어 연산 시 하드웨어의 동작 대기 시간을 줄이고, 소프트웨어와 하드웨어가 암호화 연산 수행 중에도 메시지를 송수신하는 인터페이스를 구현하는 것을 특징으로 하는 하드웨어와 소프트웨어 통합 설계가 가능한 경량암호 장치
|
2 |
2
제 1항에 있어서,상기 마이크로프로세서는,전자 코드북(ECB), 암호 블록 체인(CBC), 카운터(CTR), 암호 피드백(CFB), 및 출력 피드백(OFB) 중 어느 하나의 방식을 선택하여 블록 암호를 운용하는 것을 특징으로 하는 하드웨어와 소프트웨어 통합 설계가 가능한 경량암호 장치
|
3 |
3
제 1항에 있어서,상기 하나 이상의 하드웨어 IP는,경량암호 HIGHT 기법의 하드웨어 IP, 경량암호 PRESENT 기법의 하드웨어 IP, 및 경량암호 PRINTcipher 기법의 하드웨어 IP를 포함하는 것을 특징으로 하는 하드웨어와 소프트웨어 통합 설계가 가능한 경량암호 장치
|
4 |
4
제 3항에 있어서,상기 경량암호 HIGHT 기법의 하드웨어 IP는,상기 경량암호 HIGHT 기법의 각 데이터패스를 유한상태기계로 정의하여 제어하는 HIGHT 제어기;상기 경량암호 HIGHT 기법의 암호 알고리즘을 수행하는 HIGHT_round_dp 데이터패스;키 스케줄(key schedule)을 수행하는 KEY expand 데이터패스;룩-업 테이블(look-up table) 형태로 내부 함수의 출력 값을 갖는 F0 및 F1 데이터패스; 및라운드의 서브키(subkey) 조합에 사용되는 델타(delta)값을 저장하는 delta 데이터패스;를 포함하는 것을 특징으로 하는 하드웨어와 소프트웨어 통합 설계가 가능한 경량암호 장치
|
5 |
5
제 4항에 있어서,상기 HIGHT 제어기는,서브키를 16개 사용하는 4라운드 수행 후 키스케줄을 수행하되,4라운드 수행시 레지스터의 위치를 변경하는 리타이밍(retiming)을 적용하여 크리티컬 패스(critical path)의 지연(delay)을 감소시키는 것을 특징으로 하는 하드웨어와 소프트웨어 통합 설계가 가능한 경량암호 장치
|
6 |
6
제 3항에 있어서,상기 경량암호 PRESENT 기법의 하드웨어 IP는,상기 경량암호 PRESENT 기법의 각 데이터패스를 유한상태기계로 정의하여 제어하는 PRESENT 제어기;상기 경량암호 PRESENT 기법의 암호 알고리즘을 수행하는 PRESENT_round_dp 데이터패스;룩-업 테이블(look-up table) 형태로 입출력을 처리하는 복수 개의 S-box 데이터패스; 및키 스케줄 시 사용하는 Key-box 데이터패스;를 포함하는 것을 특징으로 하는 하드웨어와 소프트웨어 통합 설계가 가능한 경량암호 장치
|
7 |
7
제 6항에 있어서,상기 PRESENT 제어기는,입력과 출력이 필요한 S-box를 상기 룩-업 테이블을 이용하여 하나의 데이터패스로 처리하되 S-box Layer의 입력값들을 레지스터로 선언함으로써 상기 PRESENT_round_dp 데이터패스와 상기 S-box 데이터패스 간에 발생할 수 있는 지연을 감소시켰으며,하나의 사이클마다 S-box Layer, Permutation Layer, 및 다음 라운드의 AddRoundKey를 수행하는 것을 특징으로 하는 하드웨어와 소프트웨어 통합 설계가 가능한 경량암호 장치
|
8 |
8
제 3항에 있어서,상기 경량암호 PRINTcipher 기법의 하드웨어 IP는,상기 경량암호 PRINTcipher 기법의 각 데이터패스를 유한상태기계로 정의하여 제어하는 PRINTcipher 제어기;상기 경량암호 PRINTcipher 기법의 암호 알고리즘을 수행하는 PRINTcipher_round_dp 데이터패스; 및Permutation과 S-box Substitution을 수행하는 복수 개의 SP-box 데이터패스;를 포함하는 것을 특징으로 하는 하드웨어와 소프트웨어 통합 설계가 가능한 경량암호 장치
|
9 |
9
제 8항에 있어서,상기 PRINTcipher 제어기는,PRINTcipher 기법에 따른 Permutation과 S-box Substitution의 전처리 부분을 미리 하나의 테이블로 설정하여 연산량을 감소시키며,반복 수행되는 라운드 연산의 루프(loop) 로직을 재구성하여 하나의 루프마다 데이터의 읽기 및 쓰기 횟수를 증가시켜 수행 사이클(cycle)을 감소시키는 언폴딩(unfolding)을 적용하는 것을 특징으로 하는 하드웨어와 소프트웨어 통합 설계가 가능한 경량암호 장치
|
10 |
10
제 1항에 있어서,상기 마이크로프로세서는,상기 GEZEL 하드웨어 코-프로세서 입출력 장치와 통신 시, 메모리 맵 입출력(memory mapped I/O)방식 또는 포트 맵 입출력(port mapped I/O)방식을 이용하여 연결되는 것을 특징으로 하는 하드웨어와 소프트웨어 통합 설계가 가능한 경량암호 장치
|
11 |
11
제 1항에 있어서,상기 마이크로프로세서는,상기 GEZEL 하드웨어 코-프로세서와 통신 시, 암호화와 메시지 송수신이 동시에 병렬로 수행하는 핸드쉐이크 (handshake) 프로토콜을 이용하여 메시지를 송수신하는 것을 특징으로 하는 하드웨어와 소프트웨어 통합 설계가 가능한 경량암호 장치
|
12 |
12
제 11항에 있어서,상기 마이크로프로세서는 상기 핸드쉐이크 프로토콜을 이용한 통신을 위해,상기 마이크로프로세서가 상기 GEZEL 하드웨어 코-프로세서로 제1명령과 제2명령을 전송하고, 상기 GEZEL 하드웨어 코-프로세서는 상기 제1명령과 상기 제2명령을 수신하여 동작을 순차적 또는 한번에 병렬적으로 수행하고,상기 GEZEL 하드웨어 코-프로세서가 수신한 상기 제1명령과 상기 제2명령 중 먼저 완료된 동작의 제1완료 시그널을 상기 마이크로프로세서로 전송하며,상기 제1완료 시그널을 수신한 상기 마이크로프로세서가 제3명령과 제4명령을 생성하여 버퍼에 저장하고,상기 GEZEL 하드웨어 코-프로세서가 수신한 상기 제1명령과 상기 제2명령 중 나중에 완료된 동작의 제2완료 시그널을 상기 마이크로프로세서로 전송하며,상기 제2완료 시그널을 수신한 상기 마이크로프로세서가 상기 버퍼에 저장된 상기 제3명령과 상기 제4명령을 상기 GEZEL 하드웨어 코-프로세서로 전송하는 과정을 반복 수행하는 것을 특징으로 하는 하드웨어와 소프트웨어 통합 설계가 가능한 경량암호 장치
|