티스토리 뷰

대칭키라 함은 암,복호화에 쓰는 키가 동일하다는 것이다.


비대칭키는 그러면 무엇이겠는가?

암호화를 하는데(encrypt) 키와 복호화 하는데(decrypt) 쓰는 키가 다르다는 것이다. 대표적으로 RSA가 있다.

비대칭키에 대한 설명은 다음에 하고 오늘은 대칭키 암호화에 대해 말하고자 한다.


대칭키 암호화는 키의 길이에 따라 종류가 나뉘며 대체로 128비트, 256비트를 사용하며, AES같은경우는 192비트의 키도 사용한다.

우리나라에서 많이 사용하는 대칭키 암호화 알고리즘을 나열해보자면 seed, aes, aria 정도가 되겠다.


패딩

암호화 알고리즘을 사용하여 평문을 암호화 할때는, 평문을 블럭단위로 나누어 각 블록을 해당 알고리즘으로 암호화 하는 방식이다.

이러한 방식을 블록 암호화라 한다.

평문을 블록단위로 나누다 보면 블록단위의 배수면 문제가 없는데, 블록단위의 배수가 아니면 마지막 블록이 블록단위보다 부족한 경우가 발생한다.

이러한 경우 사용하는게 바로 패딩(padding)이다.


예를들어 33바이트의 평문을 aes 128 로 암호화 해보자


aes128 은 블록단위가 16바이트인데, 16바이트씩 자르다 보면

블록 2개( 32바이트) 에 1바이트 가 남는다. 

여기 1바이트를 16바이트로 만들어 암호화를 해야하므로 15바이트를 덧붙여 암호화를 진행한다.


따라서 33바이트 평문을 aes 128로 암호화 하면 암호화 길이는 48바이트가 된다.


블록모드

블록 암호화의 모드의 종류로는 ECB, CBC CFB, OFB... 등등 몇개가 있는데, 여기서 다룰 내용은 주로 많이 사용하는 블록 암호 모드는 ECB 와 CBC만 다루겠다.

ECB (Electric CodeBook Mode)

- 평문블록을 블록단위로 잘라 그대로 암호화 알고리즘을 적용하여 암호화 블록을 만듬

- 평문블록과 암호화 블록은 대응이됨


CBC (Cipher BlockChaining Mode)

- 암호화 블록이 체인처럼 연결되어 있다.

- 이전 단계의 결과로 출력된 암호화 블록에 평문 블록을 XOR한뒤 암호화 알고리즘을 적용

- 맨처음 평문블록은 이전단계의 암호화 블록이 없으므로 Initial Vector라는 값과 XOR를 하여 암호화 블록을 만듬


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함