블록암호 [ 운영모드 ]무작정 해킹 공부/Cryptography2022. 8. 21. 00:41
Table of Contents
패딩
- 평문에 데이터를 붙여서 평문의 크기가 블록 크기의 배수가 되도록 만드는 과정.
- 비트 패딩 : 마지막 블록에서 평문이 채우지 못하는 비트 중 최상위 비트를 1로 설정하고, 나머지는 모두 0으로 채우는 패딩 기법입니다.
- 바이트 패딩 : 바이트 단위로 패딩을 수행하는 패딩 기법.
- 바이트 패딩(PKCS#7) : PKCS는 공개키 암호의 표준 문서로서, 그 중 7번쨰 문서인 PKCS#7은 AES와 같은 블록 암호의 패딩 기법을 제시하고 있다. 이 PKCS#7에 소개된 패딩 기법은 PKCS#7으로 마지막 블록에 4바이트를 패딩한 것이다.
[ 운영모드 ]
> ECB 모드
- 가장 간단한 운영모드로, 블록들은 모두 같은 키로 암호화 된다.
- ECB 모드에서는 각 블록이 독립적으로 암호화되므로 여러 블록을 병렬적으로 암호화할 수 있다는 장점이 있다. 그러나 ECB는 다른 운영모드에 비해 암호학적 안전성이 부족하다는 단점이 있다.
> ECB 모드의 취약점
- ECB 모드의 특징을 이용하면 공격자는 암호문에서 평문의 정보를 습득하거나, 리플레이 공격을 수행하는 것이 가능해진다.
- 약한 혼돈 성질 : 이미지의 한 픽셀을 한 블록으로 하여 ECB 암호화하면 같은 픽셀들은 모두 같은 픽셀로 암호화되므로, 원본 이미지의 패턴이 암호화된 이미지에도 그대로 나타납니다. 이는 암호문으로부터 평문의 정보를 유추하기 어려워야 한다는 혼돈 성질이 약함을 의미합니다.
- 재전송 공격 : 어떤 데이터를 재전송하여 시스템이 의도치 않은 행동을 하게 하는 것을 재전송 공격(Replay Attack)이라고 합니다. ECB 모드는 다음과 같은 방식으로 재전송 공격을 당할 수 있습니다.
> CBC 모드
- 어떤 블록을 암호화하기 전에, 이 블록을 직전 블록의 암호문과 XOR 합니다.
- 평문의 첫 번째 블록은 이전 블록이 존재하지 않으므로, 초기 벡터(IV)라고 불리는 임의의 데이터와 XOR 한다. 이 모드를 사용하면 각 블록이 서로의 암호화에 영향을 주므로 같은 블록도 전체 평문 및 IV에 따라 암호화 결과가 달라진다.
- CBC 모드는 여러 블록을 병렬적으로 암호화할 수 없지만 복호화의 경우, 모든 암호문 블록을 알고 있으므로 병렬 처리가 가능하다.
- CBC 모드는 재전송 공격에 강인하며, 높은 혼돈성을 가지고 있어 블록 암호의 운영 모드로 널리 사용되고 있다.
- CBC Bit-Flipping Attack : 공격자가 초기 벡터를 원하는 값으로 조작하여 복호화된 평문의 첫 번째 블록을 조작하는 공격.
CTR 모드
- 블록 암호에 nonce와 평문 블록의 인덱스(counter)를 결합한 값을 입력한다.
- 암호문은 블록 암호의 출력과 평문 블록을 XOR 하여 생성한다.
- CTR 모드는 블록을 순서대로 암복호화하지 않아도 되므로 병렬로 암복호화할 수 있으며, 구현이 간단하다는 장점이 있다.
'무작정 해킹 공부 > Cryptography' 카테고리의 다른 글
해시함수 & MAC (2) | 2022.10.12 |
---|---|
DES 알고리즘 (0) | 2022.08.21 |
AES (0) | 2022.08.21 |
@startonebyone :: 계속 로딩중
로딩중.....(버퍼링)
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!