초암호화
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
초암호화는 데이터를 보호하기 위해 여러 계층의 암호화를 사용하는 기술이다. 각 계층은 독립적인 키, 초기화 벡터를 사용하여 암호화되며, 첫 번째 계층의 취약점이 전체 시스템의 보안에 영향을 미칠 수 있다.
"규칙 2"는 데이터 보안을 위해 완전히 독립적인 두 개의 암호화 계층을 명시하는 원칙으로, NSA의 CSfC 프로그램에서 사용된다. 이 원칙은 서로 다른 공급업체의 암호 모듈을 사용하거나, 동일한 공급업체의 모듈을 사용하더라도 구현의 독립성을 보장함으로써 보안을 강화한다.
GoldBug 메신저의 에코 프로토콜은 하이브리드 시스템을 사용하여 3단계의 암호화를 수행하는 예시이다. 초암호화는 성능 저하, 복잡성 증가, 과도한 보안이라는 비판을 받기도 한다.
더 읽어볼만한 페이지
| 초암호화 |
|---|
2. 독립적인 키
동일한 키를 사용하는 두 암호를 선택하면, 두 번째 암호가 첫 번째 암호의 효과를 부분적으로 또는 완전히 상쇄할 수 있다. 특히 복호화 과정이 암호화 과정과 같은 상호 암호의 경우, 두 번째 암호는 첫 번째 암호를 완전히 무효화한다. 공격자가 첫 번째 암호화 계층에 대한 암호 분석으로 키를 알아내면, 동일한 키가 모든 계층에 사용된다는 전제 하에 나머지 계층도 모두 해독할 수 있게 된다.
이러한 위험을 막기 위해 각 계층마다 독립적인 키(예: 독립적인 RNG를 통해 생성된 키)를 사용할 수 있다. 이상적으로는 각 키가 독립적인 생성, 공유, 관리 절차를 거쳐야 한다.
2. 1. 키 관리의 중요성
임의의 두 암호를 선택했을 때, 두 암호에 동일한 키가 사용된다면 두 번째 암호가 첫 번째 암호를 부분적으로 또는 완전히 되돌릴 수 있다. 이는 복호화 과정이 암호화 과정과 정확히 동일한 암호(상호 암호)의 경우에 해당하며, 두 번째 암호는 첫 번째 암호를 완전히 되돌릴 것이다. 공격자가 첫 번째 암호화 계층에 대한 암호 분석을 통해 키를 복구하면, 동일한 키가 모든 계층에 사용된다는 가정 하에 공격자는 나머지 모든 계층을 복호화할 수 있다.이러한 위험을 방지하기 위해, 각 계층에 대해 통계적 독립적인 키(예: 독립적인 RNG)를 사용할 수 있다.
이상적으로 각 키는 별도의 생성, 공유 및 관리 프로세스를 가져야 한다.
3. 독립적인 초기화 벡터
암호화 및 복호화 과정에서 초기화 벡터(IV) 또는 암호화 논스를 공유해야 하는 경우, 일반적으로 수신자를 포함한 모든 사람에게 공개적으로 공유되거나 알려진다. 동일한 키와 IV를 사용할 때 평문과 암호문이 같은 데이터를 생성하지 않도록 하는 것이 바람직한 보안 정책이다. 따라서 각 암호화 계층마다 별도의 IV를 사용하는 것이 권장된다. (하지만 현재까지는 구체적인 증거는 없다.)
4. 첫 번째 계층의 중요성
일회용 패드를 제외하고는 어떤 암호도 이론적으로 해독 불가능하다고 증명되지 않았다.
첫 번째 암호에 의해 생성된 암호문에서 일부 반복되는 속성이 발견될 수 있다. 이러한 암호문은 두 번째 암호에 사용되는 평문이기 때문에, 두 번째 암호는 알려진 평문의 속성에 기반한 공격에 취약해질 수 있다.
예를 들어, 첫 번째 계층이 모든 암호문의 시작(또는 끝)에 항상 동일한 문자열 S(매직 넘버)를 추가하는 프로그램 P라고 가정해 보자. 파일에서 발견되면, 문자열 S를 통해 운영 체제가 파일을 해독하기 위해 프로그램 P를 실행해야 한다는 것을 알 수 있다. 이 문자열은 두 번째 계층을 추가하기 전에 제거해야 한다.
이러한 종류의 공격을 방지하기 위해 브루스 슈나이어는 다음과 같은 방법을 제시했다.[1] (하위 섹션에서 자세한 내용을 다룬다.)
이 공격은 안전한 블록 암호에 대해 강력한 가정을 하는 이유와 부분적으로라도 깨진 암호를 절대 사용해서는 안 되는 이유를 보여준다.
4. 1. 브루스 슈나이어의 방법
브루스 슈나이어가 제안한 초암호화 방법은 다음과 같다.[1]1. 평문과 동일한 크기의 임의의 패드 R을 생성한다.
2. 첫 번째 암호와 키를 사용하여 R을 암호화한다.
3. 평문을 패드와 XOR 연산한 다음, 두 번째 암호와 다른 키를 사용하여 그 결과를 암호화한다.
4. 최종 암호문을 구축하기 위해 두 암호문을 연결한다.
이 방법을 사용하면 암호 분석가는 정보를 얻기 위해 두 암호를 모두 해독해야 한다. 하지만 암호문의 길이가 원래 평문보다 두 배 길어진다는 단점이 있다.
약한 첫 번째 암호는 두 번째 암호가 선택 평문 공격뿐만 아니라 알려진 평문 공격에도 취약하게 만들 수 있다. 그러나 블록 암호는 안전하다고 간주되기 위해 선택 평문 공격에 취약하지 않아야 한다. 따라서 위에 설명된 두 번째 암호도 해당 정의에 따라 안전하지 않으므로, 결국 두 암호를 모두 해독해야 한다.
5. The Rule of Two
'''규칙 2'''는 국가안보국(NSA)의 기밀 프로그램용 상용 솔루션(CSfC)에서 나온 데이터 보안 원칙이다.[2] 이 규칙은 데이터를 보호하기 위해 완전히 독립적인 두 개의 암호화 계층을 명시한다.
구성 요소 계층 간의 공급업체 및/또는 모델 다양성의 중요성은 제조업체 또는 모델이 취약점을 공유할 가능성을 제거하는 데 있다. 이러한 방식으로 하나의 구성 요소가 손상되더라도 정보가 저장 또는 전송될 때 전체 암호화 계층이 정보를 보호한다. CSfC 프로그램은 다양성을 달성하는 솔루션을 두 가지 방법으로 제공한다. "첫 번째는 서로 다른 제조업체에서 생산한 구성 요소를 사용하여 각 계층을 구현하는 것이다. 두 번째는 동일한 제조업체의 구성 요소를 사용하는 것으로, 해당 제조업체가 NSA에 두 구성 요소의 구현이 서로 독립적이라는 충분한 증거를 제공한 경우이다."[3]
이 원칙은 NSA의 안전한 휴대폰인 피쉬볼(Fishbowl)에서 사용된다.[5] 이 휴대폰은 음성 통신을 보호하기 위해 두 계층의 암호화 프로토콜, IPsec 및 보안 실시간 전송 프로토콜(SRTP)을 사용한다. 삼성 갤럭시 S9 택티컬 에디션 역시 승인된 CSfC 구성 요소이다.
5. 1. CSfC 프로그램
국가안보국(NSA)의 기밀 프로그램용 상용 솔루션(CSfC)은 데이터 보안을 위해 완전히 독립적인 두 개의 암호화 계층을 사용하는 '규칙 2'를 따른다.[2] 예를 들어, 데이터는 최저 수준에서 하드웨어 암호화, 애플리케이션 계층에서 소프트웨어 암호화로 보호될 수 있다. 이는 서로 다른 공급업체의 연방 정보 처리 표준(FIPS) 검증 소프트웨어 암호 모듈을 사용하여 데이터를 암호화/복호화하는 것을 의미할 수 있다.구성 요소 계층 간 공급업체 및/또는 모델 다양성은 제조업체 또는 모델이 취약점을 공유할 가능성을 제거하여, 하나의 구성 요소가 손상되어도 전체 암호화 계층이 정보를 보호한다. CSfC 프로그램은 두 가지 방법으로 다양성을 달성한다. "첫 번째는 서로 다른 제조업체에서 생산한 구성 요소를 사용하여 각 계층을 구현하는 것이다. 두 번째는 동일한 제조업체의 구성 요소를 사용하는 것으로, 해당 제조업체가 NSA에 두 구성 요소의 구현이 서로 독립적이라는 충분한 증거를 제공한 경우이다."[3]
이 원칙은 NSA의 안전한 휴대폰인 피쉬볼(Fishbowl)에서 사용된다.[5] 이 휴대폰은 음성 통신을 보호하기 위해 두 계층의 암호화 프로토콜, IPsec 및 보안 실시간 전송 프로토콜(SRTP)을 사용한다. 삼성 갤럭시 S9 택티컬 에디션 역시 승인된 CSfC 구성 요소이다.
5. 2. 한국의 적용
국가안보국(NSA)의 기밀 프로그램용 상용 솔루션(CSfC)에서 나온 데이터 보안 원칙인 '규칙 2'는 데이터를 보호하기 위해 완전히 독립적인 두 개의 암호화 계층을 명시한다.[2] 예를 들어, 최저 수준에서 하드웨어 암호화, 애플리케이션 계층에서 소프트웨어 암호화로 데이터를 보호할 수 있다. 이는 서로 다른 공급업체의 연방 정보 처리 표준(FIPS) 검증 소프트웨어 암호 모듈 두 개를 사용하여 데이터를 암호화/복호화하는 것을 의미할 수 있다.구성 요소 계층 간 공급업체 및/또는 모델 다양성은 제조업체 또는 모델이 취약점을 공유할 가능성을 제거하는 데 중요하다. 이 방식에서는 구성 요소 하나가 손상되더라도 정보가 저장 또는 전송될 때 전체 암호화 계층이 정보를 보호한다. CSfC 프로그램은 다양성을 달성하는 솔루션을 두 가지 방법으로 제공한다. "첫 번째는 서로 다른 제조업체에서 생산한 구성 요소를 사용하여 각 계층을 구현하는 것이다. 두 번째는 동일한 제조업체의 구성 요소를 사용하는 것으로, 해당 제조업체가 NSA에 두 구성 요소의 구현이 서로 독립적이라는 충분한 증거를 제공한 경우이다."[3]
이 원칙은 NSA의 안전한 휴대폰인 피쉬볼(Fishbowl)에서 사용된다.[5] 이 휴대폰은 음성 통신을 보호하기 위해 IPsec 및 보안 실시간 전송 프로토콜(SRTP)의 두 계층 암호화 프로토콜을 사용한다. 삼성 갤럭시 S9 택티컬 에디션 역시 승인된 CSfC 구성 요소이다.
6. 예시
골드버그 메신저(GoldBug Messenger)는 메시지를 안전하게 보호하기 위해 여러 단계의 암호화를 사용한다. 첫 번째 단계에서는 Encrypt-then-MAC 방식을 따라 메시지를 암호화하고, 그 암호문의 해시값을 계산하여 하나의 캡슐로 묶는다. 수신자는 메시지 해독 전에 변조 여부를 확인할 수 있다. 대칭 키는 RSA 알고리즘과 같은 비대칭 키를 사용하여 암호화된다.[4][5]
선택적으로, 첫 번째 단계에서 만들어진 캡슐은 32자 길이의 비밀번호를 사용하여 AES-256으로 추가 암호화할 수 있다. 마지막으로, 이 캡슐은 SSL/TLS 연결을 통해 안전하게 전송된다.
6. 1. GoldBug 메신저의 다중 암호화
GoldBug 메신저는 메시지의 기밀성과 무결성을 보장하기 위해 여러 단계의 암호화를 사용한다. 이러한 다중 암호화 방식은 다음과 같이 구성된다.[4]'''첫 번째 암호화 계층:'''
메시지는 먼저 암호화된 후, 그 암호문에 대한 해시값이 계산된다. 이 해시값과 암호문은 하나의 캡슐로 묶인다. 이 때, Encrypt-then-MAC 방식이 사용된다. 즉, 수신자는 암호문을 해독하기 전에 해시값을 통해 변조 여부를 확인할 수 있다. 그리고 대칭키는 RSA 알고리즘과 같은 비대칭키를 사용하여 암호화된다.[5]
'''두 번째 암호화 계층:'''
선택적으로, 첫 번째 계층에서 생성된 캡슐은 32자 길이의 공유된 비밀번호를 사용하여 AES-256으로 추가 암호화될 수 있다.
'''세 번째 암호화 계층:'''
마지막으로, 이 캡슐은 SSL/TLS 보안 연결을 통해 전송된다.
7. 비판적 관점
초암호화에 대한 비판적 관점은 다음과 같다.
일회용 패드를 제외하고는 어떤 암호도 이론적으로 해독 불가능하다고 증명되지 않았다.[1]
첫 번째 암호에 의해 생성된 암호문에서 일부 반복되는 속성이 발견될 수 있으며, 이는 두 번째 암호에 사용되는 평문이 되기 때문에 알려진 평문의 속성에 기반한 공격에 취약해질 수 있다.
브루스 슈나이어는 이러한 공격을 방지하기 위한 방법을 제시했지만,[1] 이 방법은 암호문의 길이가 원래 평문보다 두 배 길어진다는 단점이 있다.
또한, 약한 첫 번째 암호는 두 번째 암호를 알려진 평문 공격뿐만 아니라 선택 평문 공격에도 취약하게 만들 수 있다. 블록 암호는 안전하다고 간주되기 위해 선택 평문 공격에 취약하지 않아야 하므로, 두 번째 암호 역시 안전하지 않다. 이는 안전한 블록 암호에 대해 강력한 가정을 하는 이유와 부분적으로라도 깨진 암호를 절대 사용해서는 안 되는 이유를 보여준다.
7. 1. 성능 저하
일회용 패드를 제외하고는 어떤 암호도 이론적으로 해독 불가능하다고 증명되지 않았다.[1]게다가, 첫 번째 암호에 의해 생성된 암호문에서 일부 반복되는 속성이 발견될 수 있다. 이러한 암호문은 두 번째 암호에 사용되는 평문이기 때문에, 두 번째 암호는 알려진 평문의 속성에 기반한 공격에 취약해질 수 있다.
예를 들어 첫 번째 계층이 모든 암호문의 시작(또는 끝)에 항상 동일한 문자열 S(일반적으로 매직 넘버라고 함)를 추가하는 프로그램 P인 경우가 있다. 파일에서 문자열 S가 발견되면, 운영 체제는 파일을 해독하기 위해 프로그램 P를 실행해야 한다는 것을 알 수 있다. 따라서 두 번째 계층을 추가하기 전에 이 문자열은 제거해야 한다.
브루스 슈나이어는 이러한 종류의 공격을 방지하기 위해 다음과 같은 방법을 제시했다:[1]
- 평문과 동일한 크기의 임의의 패드 R을 생성한다.
- 첫 번째 암호와 키를 사용하여 R을 암호화한다.
- 평문을 패드와 XOR 연산한 다음, 두 번째 암호와 다른 키를 사용하여 그 결과를 암호화한다.
- 최종 암호문을 구축하기 위해 두 암호문을 연결한다.
암호 분석가는 정보를 얻기 위해 두 암호를 모두 해독해야 한다. 그러나 이 방법은 암호문의 길이가 원래 평문보다 두 배 길어진다는 단점이 있다.
또한 약한 첫 번째 암호는 두 번째 암호가 선택 평문 공격뿐만 아니라 알려진 평문 공격에도 취약하게 만들 수 있다. 블록 암호는 안전하다고 간주되기 위해 선택 평문 공격에 취약하지 않아야 한다. 따라서 위에 설명된 두 번째 암호도 해당 정의에 따라 안전하지 않다. 결과적으로 두 암호 모두 여전히 해독해야 한다. 이 공격은 안전한 블록 암호에 대해 강력한 가정을 하는 이유와 부분적으로라도 깨진 암호를 절대 사용해서는 안 되는 이유를 보여준다.
7. 2. 복잡성 증가
일회용 패드를 제외하고는 어떤 암호도 이론적으로 해독 불가능하다고 증명되지 않았다.[1]게다가, 첫 번째 암호에 의해 생성된 암호문에서 일부 반복되는 속성이 발견될 수 있다. 이러한 암호문은 두 번째 암호에 사용되는 평문이기 때문에, 두 번째 암호는 알려진 평문의 속성에 기반한 공격에 취약해질 수 있다.
예를 들어 첫 번째 계층이 모든 암호문의 시작(또는 끝)에 항상 동일한 문자열 S(일반적으로 매직 넘버라고 함)를 추가하는 프로그램 P인 경우가 있다. 파일에서 문자열 S가 발견되면, 운영 체제는 파일을 해독하기 위해 프로그램 P를 실행해야 한다는 것을 알 수 있다. 이 문자열은 두 번째 계층을 추가하기 전에 제거해야 한다.
브루스 슈나이어는 이러한 종류의 공격을 방지하기 위한 방법을 다음과 같이 제시했다:[1]
- 평문과 동일한 크기의 임의의 패드 R을 생성한다.
- 첫 번째 암호와 키를 사용하여 R을 암호화한다.
- 평문을 패드와 XOR 연산한 다음, 두 번째 암호와 다른(!) 키를 사용하여 그 결과를 암호화한다.
- 최종 암호문을 구축하기 위해 두 암호문을 연결한다.
암호 분석가는 정보를 얻기 위해 두 암호를 모두 해독해야 한다. 그러나 이는 암호문의 길이가 원래 평문보다 두 배 길어진다는 단점이 있다.
약한 첫 번째 암호는 두 번째 암호가 선택 평문 공격뿐만 아니라 알려진 평문 공격에도 취약하게 만들 수 있다. 블록 암호는 안전하다고 간주되기 위해 선택 평문 공격에 취약하지 않아야 한다. 따라서 위에 설명된 두 번째 암호도 해당 정의에 따라 안전하지 않다. 결과적으로, 두 암호 모두 여전히 해독해야 한다. 이 공격은 안전한 블록 암호에 대해 강력한 가정을 하는 이유와 부분적으로라도 깨진 암호를 절대 사용해서는 안 되는 이유를 보여준다.
7. 3. 과도한 보안(Security through obscurity)
일회용 패드를 제외하고는 어떤 암호도 이론적으로 해독 불가능하다고 증명되지 않았다.게다가, 일부 반복되는 속성은 첫 번째 암호에 의해 생성된 암호문에서 발견될 수 있다. 이러한 암호문은 두 번째 암호에 사용되는 평문이기 때문에, 두 번째 암호는 알려진 평문의 속성에 기반한 공격에 취약해질 수 있다.
이것은 첫 번째 계층이 모든 암호문의 시작(또는 끝)에 항상 동일한 문자열 S를 추가하는 프로그램 P인 경우이다(일반적으로 매직 넘버라고 함). 파일에서 발견되면, 문자열 S를 통해 운영 체제가 파일을 해독하기 위해 프로그램 P를 실행해야 한다는 것을 알 수 있다. 이 문자열은 두 번째 계층을 추가하기 전에 제거해야 한다.
이러한 종류의 공격을 방지하기 위해 브루스 슈나이어가 제공하는 방법을 사용할 수 있다:[1]
- 평문과 동일한 크기의 임의의 패드 R을 생성한다.
- 첫 번째 암호와 키를 사용하여 R을 암호화한다.
- 평문을 패드와 XOR 연산한 다음, 두 번째 암호와 다른(!) 키를 사용하여 그 결과를 암호화한다.
- 최종 암호문을 구축하기 위해 두 암호문을 연결한다.
암호 분석가는 정보를 얻기 위해 두 암호를 모두 해독해야 한다. 그러나 이는 암호문의 길이가 원래 평문보다 두 배 길어진다는 단점이 있다.
그러나 약한 첫 번째 암호는 두 번째 암호가 선택 평문 공격에 취약하게 만들 뿐만 아니라 알려진 평문 공격에도 취약하게 만들 수 있다. 그러나 블록 암호는 안전하다고 간주되기 위해 선택 평문 공격에 취약하지 않아야 한다. 따라서 위에 설명된 두 번째 암호도 해당 정의에 따라 안전하지 않다. 결과적으로, 두 암호 모두 여전히 해독해야 한다. 이 공격은 안전한 블록 암호에 대해 강력한 가정을 하는 이유와 부분적으로라도 깨진 암호를 절대 사용해서는 안 되는 이유를 보여준다.
참조
[1]
서적
Applied Cryptography, Second Edition: Protocols, Algorithms, and Source Code in C
https://books.google[...]
Wiley Computer Publishing
2015-03-30
[2]
웹사이트
Commercial Solutions for Classified Program
https://web.archive.[...]
US National Security Agency
2015-12-24
[3]
웹사이트
Mobile Access Capability Package
https://www.nsa.gov/[...]
US National Security Agency
2020-02-28
[4]
웹사이트
GoldBug - Secure E-Mail-Client & Instant Messenger
http://goldbug.sf.ne[...]
[5]
간행물
BIG SEVEN Study, open source crypto-messengers to be compared - or: Comprehensive Confidentiality Review & Audit of GoldBug, Encrypting E-Mail-Client & Secure Instant Messenger, Descriptions, tests and analysis reviews of 20 functions of the application GoldBug based on the essential fields and methods of evaluation of the 8 major international audit manuals for IT security investigations including 38 figures and 87 tables.
https://sf.net/proje[...]
2016-06
[6]
서적
코드브레이커
이지북
2018-10-08
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com