Conventional Block Cipher (전통적인 블록 암호)
거대한 단순 치환 또는 거대한 전단사 함수를 모방하는 블록 암호의 적절한 하위 집합입니다.
거대한 단순 치환 또는 거대한 전단사 함수를 모방하는 블록 암호의 적절한 하위 집합입니다.
기존 블록 암호의 장점
- 보안성: 복잡한 치환을 모방하여 강력한 암호화를 제공하므로 권한 없는 당사자가 정보를 해독하기 어렵습니다.
- 단순성: 보다 복잡한 암호화 방식에 비해 구현이 쉬워 더 빠른 배포와 더 적은 오류를 보장합니다.
- 성능: 일반적으로 간단한 설계로 인해 실행 속도가 더 빨라 효율적인 암호화 및 해독 프로세스를 제공합니다.
기존 블록 암호의 단점
- 유연성 부족: 고급 알고리즘에 비해 새로운 암호화 문제에 대한 적응성이 떨어지므로 시간이 지남에 따라 업데이트 또는 교체가 필요할 수 있습니다.
- 열악한 확장성: 매우 큰 데이터 세트 또는 높은 처리량 환경에서 제대로 작동하지 않아 일부 응용 프로그램에서의 사용이 제한될 수 있습니다.
- 단순한 설계: 단순성이 장점이 될 수 있지만 제대로 구현되거나 정기적으로 업데이트되지 않으면 취약점으로 이어질 수도 있습니다.
다양한 영역에서 기존 블록 암호 사용
전자 상거래 거래:
온라인 거래 중 결제 정보 및 개인 데이터를 암호화하는 안전한 방법입니다. 그러나 거래량이 증가함에 따라 확장성 문제가 발생할 수 있습니다.
[…]
메시지를 암호화하는 데 사용되는 비밀 코드북을 상상해 보십시오. 이 코드북에는 가능한 모든 입력 블록을 고유한 출력 블록에 매핑하는 거대한 테이블이 포함되어 있으며, 이는 기본적으로 거대한 치환 암호 역할을 합니다.
핵심 사항
- 제한적인 실용성: 테이블의 엄청난 크기(64비트 블록의 경우 264개의 항목이 필요함!)로 인해 직접 저장하고 액세스하는 것은 불가능합니다.
- 직접 구현이 아닌 에뮬레이션: 기존 블록 암호는 실제로 이러한 거대한 테이블을 구축하지 않습니다. 대신 더 작은 키와 여러 라운드의 더 간단한 작업(예: XOR, 비트 시프트, 테이블 조회)을 영리하게 사용하여 거대하고 복잡한 치환의 동작을 모방합니다.
- 전단사 함수에 집중: 이 프로세스는 해독을 위해 가역적이어야 합니다. 따라서 입력 및 출력 블록 간의 관계는 전단사 함수입니다. 즉, 각 입력에는 하나의 고유한 출력이 있고 그 반대도 마찬가지입니다.
제한된 단계 집합으로 복잡한 댄스 루틴을 만드는 것과 같다고 생각하십시오. 이러한 단계를 영리하게 결합하고 반복함으로써 훨씬 더 복잡하고 다양한 성능을 낸다는 인상을 줄 수 있습니다.
친구에게 비밀 메시지를 보내고 싶다고 상상해 보세요. 알파벳의 각 글자가 다른 글자로 대체되는 비밀 코드를 사용할 수 있습니다. 예를 들어 “A”는 “Z”가 되고 “B”는 “Y”가 되는 식입니다. 이것이 단순 치환 암호입니다.
기존 블록 암호는 이와 유사하지만 개별 글자를 바꾸는 대신 특정 키에 따라 고정 크기의 비트 블록(예: 64비트 또는 128비트)을 다른 비트 블록으로 바꿉니다.
작동 방식
가능한 모든 평문 비트 블록이 고유한 암호문 비트 블록과 쌍을 이루는 거대한 사전을 생각해 보십시오. 이 사전은 암호의 비밀 키를 나타냅니다. 메시지를 암호화하기 위해 암호는 메시지를 블록으로 나누고 사전에서 각 블록을 찾아 해당 암호문 블록을 찾습니다.
예시:
- 데이터 암호화 표준(DES): 56비트 키를 사용하여 64비트 블록을 암호화하는 구형이지만 잘 알려진 블록 암호입니다.
- 고급 암호화 표준(AES): 널리 사용되는 안전한 블록 암호로 128, 192 또는 256비트의 키 크기를 지원하고 128비트 블록을 암호화합니다.
핵심 사항:
- 기존 블록 암호는 평문과 암호문 블록 간에 일대일 매핑을 만들어 올바른 키로 해독이 가능하도록 하는 것을 목표로 합니다.
- 블록 크기와 키 크기가 클수록 공격자가 암호를 해독하기가 더 어려워집니다.
