DAMPER's blog

A Tutorial on the Implementation of Block Ciphers - 1.1 Target Implementation Environments 본문

암호

A Tutorial on the Implementation of Block Ciphers - 1.1 Target Implementation Environments

DAMPER 2022. 1. 9. 06:04
728x90

이 글은 'A Tutorial on the Implementation of Block Ciphers : Software ans Hardware Appplications, Howard M. Heys' 를 읽고 정리한 글입니다.

 

Chapter 1. Introduction to Block Ciphers

1.1 Target Implementation Environments

블록암호는 보안 어플리케이션들에서 많이 사용된다. 대칭키 암호화 방식으로, 블록암호 알고리즘은 평문 블록(대개 64-bit 또는 128-bit)을 암호화하여 같은 사이즈의 암호화 블록을 생성한다. 이 암호화 방식은 다양한 환경에서 사용되며, AES 암호는 오늘날 가장 많이 적용된 암호이다.

 

블록암호의 구현은 크게 소프트웨어 구현, 하드웨어 구현으로 나눌 수 있다.

소프트웨어 구현 : 범용 프로세서에서 사용할 수 있도록 만듦.

하드웨어 구현 : 논리 게이트와 레지스터 레벨에서의 디자인에 초점을 둠.

 

물론 이 두가지 범주에서 많은 하위 범주로 나눌 수 있다.

software -> instruction set, word size, memory availability, etc

hardware -> CMOS application-specific integrated circuits(ASICs) and field-programmable gate arrays(FPGAs).

 

구현 선택사항은 암호 사용의 목적과 환경에 따라 영향을 받는다. -> 속도, 리소스 제약 조건(칩, 시스템 메모리, 기기 전력, 에너지 한계 등)이 고려사항이 됨.

 

블록암호는 구현 환경의 다양성에 대한 예시로 다음 3가지가 있다.

1. word size가 64비트인 범용 컴퓨터

2. IoT, microcontroller, 전용 암호화 칩 -> 경량 암호

3. 고속 서비스를 요구하는 게이트웨이

 

이처럼 암호 구현 시 여러가지의 구현 고려사항이 있다. 하지만 다양한 환경에서 암호를 적용하는 것이 바람직함.

ex. IoT에서 암호화된 데이터가 범용 컴퓨터의 응용프로그램에 전송되어 쓰일 수도 있음.

AES의 경우 고속 소프트웨어에서 소형 하드웨어 아키텍처까지 모든 방식으로 사용됨. AES의 호환성은 암호화 속도 향상을 높여주는 특수 명령어가 있는 프로세서와 AES에 대해 적합한 전문 하드웨어 구조의 개발로 이어짐.

 

우리는 특정 상황에서만 사용되는 암호는 다루지 않고 다양한 플랫폼에서 범용적으로 다루는 암호의 구현을 다룬다. 블록암호의 일반적으로 적용할 수 있는 접근방식을 설명한다.

728x90