IT 그리고 정보보안/Knowledge base

대칭키 암호 알고리즘 (Symmetric key Cipher)

plummmm 2021. 4. 16. 05:56
반응형

이번엔 대칭암호에 대해 알아보겠슴다.

Symmetric은 대칭의 대칭되는 뭐 그런 뜻이다.

대칭이라 하니 뭔가 같다? 라는 느낌이 든다. 맞음

 

대칭키 암호 알고리즘이란,

암호화할 때 키와 복호화할 때 키가 같은 암호 알고리즘이다.

암호화, 복호화 키가 다른 알고리즘은 공개키 암호 알고리즘이라고 하는데.. 그건 나중에 설명드림.

 

그냥 말로만 들어선 대칭키가 공개키보다 훨씬 위험한 것 같다. 위험하긴 하다. 

하지만 공개키보다 훨씬 속도가 빠르기 때문에 실제 통신에서도 대칭키 암호 알고리즘을 사용하고

통신 자체를 암호화 하는 형식으로 많이 사용된다.

 

대칭키에는 암호화를 하는 단위에 따라 두가지 암호 종류가 있다.

 

1. Block cipher (블록 암호)

말그대로 일정한 크기의 (n bit) 블록 단위로 쪼개어 암호화하는 방식이다.

암호문과 평문의 길이가 똑같다.

 

2. Stream cipher (스트림 암호)

연속적으로 계속해서 비트 스트림을 받아 암호화 하는 방식이다.

종종 수학적으로 분석하기 더 편할 때도 있음.

아래 각종 대칭키 암호 알고리즘들에 대해 알아보자.

 

DES (Data Encryption Standard)

대칭키 암호 알고리즘의 종류 중 하나로,  US NIST가 1976년도에 적용시킨 암호 방식이다. 

대칭 블록 암호 알고리즘으로 접때 배운 Feistel 알고리즘을 16라운드를 거친다.

 

블록 단위는 64비트. 56비트의 키를 이용해 다시 64비트의 암호문을 만들어 낸다.

8비트는 에러 검출용 비트.

 

 

IP는 Initial permutation 이라고 최초에 치환하는 과정이다.

key는 최초 56비트 키를 key generator에 넣어 48비트 서브키를 16개 만들어 낸다.

f() 라는 라운드 함수를 16번 도는 과정이다. 위에 만든 16개 서브키를 각 과정마다 f에 집어넣어 암호화함

 

굳이 식으로 따지면 이래나옴.

어차피 한물 간 암호화 방식이니 그렇게 깊게 설명하진 않겠다.

그리고 다중 DES를 사용하는데, DES가 키스페이스가 너무 작아서 브루트 포싱으로 뚫릴수 있기 때문에

여러겹으로 DES를 하는걸 말한다. 여기선 Triple DES를 말하겠음.

키를 여러개 쓰는 것이다.

 

IDEA (International Data Encryption Algorithm)

스위스에서 1990년 Xuejia LaiJames Messey가 만든 PES(Proposed Encryption Standard)를 개량하여, 

1991년에 제작된 블록 암호 알고리즘이다.

PGP(Pretty Good Privacy) 에서 쓰인 알고리즘임.

 

65비트의 블록, 128비트 키를 이용하여 8라운드로 구성되어 있다.

(128비트 키를 이용하여 52개의 16비트 서브키를 만들어낸다.)

복호화도 같은 알고리즘이다. 단, 서브키를 만드는 키 제너레이터가 다름.

 

그 외 기타 대칭형 블록 암호 종류

1. Blowfish 

브루스 슈나이어 (Bruce Schneier) 라는 사람이 1993년 설계한 대칭형 블록 암호 알고리즘으로,

DES의 대안으로 나왔었다. 

 

출처: http://ko.wikipedia.org/wiki/블로피시

최대 448비트를 가지는 가변적인 키 길이를 갖추고 있고,

블록 사이즈는 32비트 또는 64비트.

매우 간단하고, 속도가 빠르고, 조밀한 알고리즘이다.

 

2. RC2

로널드 리베스트?(Ron Rivest) 라는 사람이 1987에 고안한 알고리즘이다.

16비트 마이크로 프로세서에서 최적화 되도록 설계되었다.

다양한 키 길이(8~1024)를 선택할 수 있다.

 

3. RC5

로널드 리베스트?(Ron Rivest) 라는 사람이 1994년에 고안한 알고리즘이다. 빠르고 간단한 수행이 특징이다.

수행이 간단하니 메모리를 많이 잡아먹지도 않는다.

RC5는 키 길이(0~2040)와 라운드 수(0~255)를 지맘대로 정할 수 있다.

반응형