VIC 암호
VIC cipher이 글은 검증을 위해 인용구가 추가로 필요하다.– · · 책· · (2010년 6월)(이를 |
VIC 암호는 소련의 스파이 레이노 헤예넨이 사용한 연필과 종이 암호로, "VICOR"라고 부호화되었다.
만약 이 암호에 현대적인 기술적 이름이 부여된다면, 그것은 "변형 이중 전위(double transition)에 의해 변형된 단일 알파자 치환"[1]으로 알려져 있을 것이다.그러나 일반 분류로는 암호인 니힐리스트 계열의 일부다.
그것은 처음 발견되었을 때 본 것 중 가장 복잡한 수동 작동 암호였다.1953년 미국 국가안보국(NSA)이 실시한 초기 분석에서는 손 암호로 절대적으로 결론내리지 않았지만, 속이 빈 5ℓ짜리 동전에 배치된 것은 연필과 종이를 이용해 해독할 수 있음을 암시했다.VIC 암호는 그것의 구조에 대한 더 많은 정보를 이용할 수 있을 때까지 손상되지 않은 채로 남아 있었다.
확실히 현대의 컴퓨터가 작동하는 스트림 암호나 블록 암호처럼 복잡하거나 안전하지는 않지만, 실제로 그것에 의해 보호되는 메시지들은 적어도 1953년의 발견으로부터 1957년 헤예엔의 망명까지 NSA에 의한 암호해석 시도에 저항했다.
혁명의 도약
VIC 암호는 니힐리스트 암호 계열의 진화 정점으로 간주할 수 있다.
VIC 암호는 mod 10 체인 덧셈, 지연된 피보나치 발생기(가성적 자릿수의 시퀀스를 생성하는 데 사용되는 재귀식), 스트래들링 체커보드, 그리고 붕괴된 이중 전치 등 몇 가지 중요한 통합 구성요소를 가지고 있다.
VIC가 발견되기 전까지는 일반적으로 이중 전치만으로, 실제적인 문제로서, 요원이 필드 암호로 사용할 수 있는 가장 복잡한 암호라고 생각되었다.
역사
제2차 세계 대전 동안, 몇몇 소련의 스파이 고리는 기본적인 니힐리스트 암호에 대해 근본적으로 진화적으로 개선된 두 개의 암호를 사용하여 모스크바 센터에 통신했다.일본에서 리차드 소지의 네트워크에서는 맥스 클라우센이, 스위스의 루시 스파이 링에서는 알렉산더 푸트가 매우 강한 버전을 사용하였다.[2]약간 약한 버전은 Rote Kapelle 네트워크에 의해 사용되었다.[3]
두 버전 모두에서, 평문 텍스트는 처음에 폴리비우스 사각형이 아닌 스트래들링 체커보드를 사용하여 숫자로 변환되었다.이는 평문을 약간 압축하여 단성거리를 높이고 또한 무선사업자가 더 빨리 송신을 완료하고 더 빨리 종료할 수 있다는 장점이 있다.더 빨리 종료하면 적 무선 방향 발견자에 의해 운영자가 발견될 위험을 줄일 수 있다.단일성 거리를 늘리면 통계 공격에 대한 강도가 높아진다.
클라센과 풋은 둘 다 영어로 평문을 썼고, 가장 자주 쓰는 영어 8자(체커판의 맨 윗줄을 채우기 위해)를 '잘못할 죄'(두 번째 'r'을 떨어뜨리는 것)이라는 연상구문을 통해 외웠다.표준 잉글리쉬 스트래들링 체커보드는 28개의 문자 슬롯을 가지고 있으며, 이 암호에서 추가 두 개는 "풀 스톱"과 "넘버 시프트"가 되었다.숫자는 숫자 이동에 의해 전송되었고, 실제 일반 텍스트 숫자가 반복된 쌍으로 전송되었고, 그 다음에 또 다른 이동이 뒤따랐다.그 후, 기본적인 니힐리스트와 유사하게 디지털 첨가물이 첨가되었는데, 이를 "폐쇄"라고 불렀다.그러나 매번 다른 첨가물이 사용되었기 때문에, 마지막으로 어떤 첨가물이 사용되었는지 표시하기 위해 숨겨진 "표시자 그룹"을 삽입해야 했다.
기본 니힐리스트와 달리 무반송(숫자 첨가 모듈로 10)으로 첨가해 정보 유출량이 많지 않은 보다 균일한 출력을 연출했다.더 중요한 것은 이 첨가물이 키워드를 통해서가 아니라 산업 통계 연감에서 무작위로 선을 선택하여 생성되었다는 점이다.그러한 책들은 에이전트를 검색할 경우(특히 에이전트들의 커버스토리가 사업가로서) 의심을 불러일으키지 않을 만큼 둔하고, 매우 안전한 첨가물을 제공할 정도로 엔트로피 밀도가 높다고 판단되었다.물론 그러한 책의 수치는 실제로 균일하게 분포되어 있지는 않지만("0"과 "1"의 초과가 있고 (벤포드의 법칙 참조), 순차적인 숫자는 어느 정도 비슷할 것 같다), 그럼에도 불구하고 그들은 암호나 이와 같은 것들보다 엔트로피 밀도가 훨씬 높다. 어쨌든 실제로 그들은 결코 성공적으로 울지 못한 것 같다.피타닐리스의
약한 버전은 소설이나 유사한 책의 본문에서 첨가물을 생성했다(적어도 한 명의 로테 카펠레 회원이 실제로 <착한 병사 슈바이크>를 사용하였다), 이 텍스트는 줄무늬 체커보드와 유사한 기법을 사용하여 디지털 첨가물로 변환되었다.
이러한 노선을 따라 궁극적인 발전은 1950년대에 레이노 헤예넨이 사용한 VIC 암호였다.이때쯤에는 대부분의 소련 요원들이 대신 일회용 패드를 사용하고 있었다.그러나 일회용 패드의 이론적 완벽함에도 불구하고, 실제로 그들은 부러진 반면, VIC는 그렇지 않았다.그러나 일회용 암호는 로지스틱 문제로 인해 암호 페이지를 다시 사용할 때만 해독될 수 있었고, 따라서 더 이상 진정으로 일회용 암호는 아니었다.[4]
역학 개요
암호화의 비밀 키는 다음과 같다.
- 짧은 구(예: 노래의 첫 줄)
- 날짜(6자리 형식)
- 개인 번호(에이전트에 고유, 1자리 또는 2자리 번호)
암호화는 또한 각 메시지에 고유한 5자리 키 그룹을 알지 못하는 적수의 도움을 받았다.키그룹은 엄밀히 말하면 '비밀'은 아니었지만(암호문에는 분명히 삽입되어 있었기 때문에), 상대에게는 알 수 없는 암호문 내의 위치에 있었다.
암호는 대체로 다음과 같이 작동했다.
- 위의 암호(문자, 날짜, 키 그룹 및 개인 번호)를 사용하여 50자리 수의 유사 임의 번호 블록 생성
- 다음 항목에 대한 메시지 키를 만들려면 이 블록을 사용하십시오.
- 스트래들링 체커보드
- 두 개의 기둥 전치
- 스트래들링 체커보드를 통해 일반 텍스트 메시지 암호화
- 두 개의 기둥을 통해 결과물(중간) 암호문에 두 개의 전치 적용
- '표준' 기둥 배치
- 대각선 기둥 대칭
- 암호 텍스트에 키 그룹 삽입 - 개인 번호로 결정
상세역학
참고: 이 절에서는 [라인-X] 또는 이와 유사한 항목을 참조하여 계산을 추적한다.CIA 아카이브 설명에 명시된 표기법과 일치하기 위해서다.[5]
유사란돔블록 유도
- [라인-A]:임의 5자리 키 그룹 생성
- [라인-B]:비밀 날짜의 처음 5자리 기록
- [라인-C]:모듈식 산술로 [Line-A]에서 [Line-B]를 빼십시오(근접 열에서 수십 개를 '빌리는' 것이 아니라 자릿수).
- [라인-D] : 비밀 구절에서 처음 20자를 써라.
- [Line-E.1&2]: Sequence (아래 참조) 첫 번째와 두 번째 10자 (각각 [Line-E.1] 및 [Line-E.2]를 구하려면)
- [라인-F.1]: [라인-C]에서 5자리 숫자를 작성한 후, 적용된 체인 추가(아래 참조)를 적용하여 5자리 수를 더 만드십시오.
- [라인-F.2]:숫자 시퀀스 '1234567890'은 [Line-H] 생성 시 인코딩을 위한 어드바이저로서 ([Line-E.2] 아래에) 작성된다.
- [라인-G]:[Line-E.1]에서 [Line-F.1]까지 추가 - mod-10 산술에 의한 자릿수 단위, 즉 다음 열까지 10에 걸쳐 '운반'하지 않음
- [라인-H]:[Line-E.2] 아래의 [Line-G]에 있는 숫자를 키로 인코딩(아래 참조)
- [라인-I]:[Line-I]를 사용하지 않으며, 혼동을 피하기 위해 ('I'가 '1' 또는 'J'로 잘못 읽힐 수 있으므로)
- [라인-J]:[라인-H]의 순서
- [라인-K,L,M,N,P]:[Line-H]의 체인 추가에 의해 만들어진 다섯 개의 10자리 선이다.마지막 2개의 비등호 숫자를 에이전트 개인번호에 추가하여 2개의 트랜스포메이션의 키 길이를 결정한다.(K-to-P 라인은 다음 단계의 암호화에 사용되는 키 구동 사이비 무작위 블록의 유효)
- [라인-O]:[Line-O]를 사용하지 않으며, 혼동을 피하기 위해 ('O'가 0 또는 'Q'로 잘못 판독될 수 있으므로)
메시지 키 파생
- [라인-Q]:[Line-J]를 통해 전치할 때 [Line-K,L,M,N,P]에서 추출한 첫 번째 'a' 자리.(여기서 'a'는 [라인-P]의 마지막 비등호 자릿수를 개인 번호에 추가함으로써 발생하는 첫 번째 값이다.)이것들은 칼럼니스트 전환점을 키우기 위해 사용된다.
- [라인-R]:[Line-J]를 통해 전치할 때 [Line-K, L, M, N,P]에서 다음 'b'자릿수('a'자릿수를 추출한 후)(여기서 'b'는 [라인-P]의 마지막 비등호 자릿수를 개인 번호에 추가함으로써 발생하는 두 번째 값이다.)이것들은 대각선 전위치의 키를 잡는 데 사용된다.
- [라인-S]:[Line-P]의 시퀀싱, 이것은 Straddling Checkerboard의 키로 사용된다.
키 생성 예
개인 번호: 6 날짜: 1959년 9월 13일 // 달 착륙 - 1959년 9월 13일('139195' - 6자리수로 절단) 구절: '크리스마스 전날 밤 두 번' // '성으로부터의 방문.Nicholas' - poem Keygroup: 72401 // randomly generated [Line-A]: 72401 // Keygroup [Line-B]: 13919 // Date - truncated to 5 digits [Line-C]: 69592 // subtract [Line-B] from [Line-A] [Line-D]: TWASTHENIG HTBEFORECH // Phrase - truncated to 20 characters [Line-E]: 8017942653 6013589427 // via Sequencing [Line-F]: 6959254417 1234567890 // from [Line-C] and chain addition, then '1234567890' [Line-G]: 4966196060 // add [Line-E.1] to [Line-F.1] [Line-H]: 3288628787 // encode [Line-G] with [Line-E.2],[Line-F.2] helps [Line-J]: 3178429506 // The Sequencing of [Line-H] [Line-K]: 5064805552 // BLOCK: Chain addition of [Line-H] for 50 digits [Line-L]: 5602850077 [Line-M]: 1620350748 [Line-N]: 7823857125 [Line-P]: 5051328370 Last two non-equal digits are '7' and '0', added to Personal Number (6) means순열 키의 길이가 13과 6자리인지 확인하십시오.[라인-Q]: 0668005552551 // 블록 [라인-R]에서 첫 13자리: 758838 // 블록 [라인-S]에서 다음 6자리: 5961328470 // [라인-P] 순서 메시지 암호화
스트래들링 체커보드
일단 키가 생성되면, 메시지를 실제로 암호화 하는 첫 번째 단계는 메시지를 일련의 숫자로 변환하는 것이고, 이것은 Straddling Checkerboard를 통해 이루어진다.체커보드의 키(헤더 행)는 [Line-S]를 기준으로 한다.그리고 나서 두 번째 줄에 사용된 일련의 사전 합의된 공통 문자.아래의 예는 영어 니모닉 'AT ONE SIR'를 사용하지만, 하야넨이 사용한 키릴 니모닉은 러시아어로 강설의 단어인 'snegopad'이다.
나머지 셀은 채워지고 나머지 알파벳/기호는 순서대로 채워진다.
| 5 | 9 | 6 | 1 | 3 | 2 | 8 | 4 | 7 | 0 | |
|---|---|---|---|---|---|---|---|---|---|---|
| A | T | O | N | E | S | I | R | |||
| 6 | B | C | D | F | G | H | J | K | L | M |
| 8 | P | Q | U | V | W | X | Y | Z | . | / |
인코딩 예제는 다음과 같다.
메시지: '새벽에 공격하라.새벽녘에 나는 0500을 의미한다.0915는 지난 번과 같지 않다.' 59956 96459 66583 38765 83376 02538 00005 55000 00080 87319 80000 15558 0678 42881 8667 66975 0287-
전치: 주각형 전치
메시지는 위의 [Line-Q]에 의해 키로 표시된 표준 칼럼니스트 전환 위치를 통해 전치된다. (참고: 메시지 인코딩 길이가 이 단계에서 5의 배수가 아닌 경우 추가 숫자가 추가됨)
그런 다음 위의 [라인-R]에 의해 키로 표시된 대각선 전위치를 통해 메시지가 전치된다.
키그룹 삽입
(암호화되지 않은) 키 그룹은 끝에서부터 암호문 'P' 그룹에 삽입된다. 여기서 'P'는 날짜의 사용되지 않은 6자리 숫자다.
모듈식 덧셈/수축
모듈식 덧셈 또는 뺄셈은 '거짓 덧셈/감산'이라고도 하며, 이 맥락에서(그리고 많은 펜과 종이 암호)는 '차용'이나 '차용' 없이 자릿수별 덧셈과 뺄셈이다.예를 들면 다음과 같다.
- 1234 + 6789 = 7913
- 1234 - 6789 = 5555
시퀀싱
이 맥락에서 시퀀싱은 1-10의 입력 요소(여기서 '0'은 10을 나타냄)를 정렬하는 것이다.이는 문자(문자순을 사용하는 경우) 또는 숫자(숫자 값 사용 시)에서 발생한다.값이 같을 경우 가장 왼쪽 값이 먼저 시퀀싱된다.예를 들면 다음과 같다.
- 문자: '옥토퍼스'라는 단어는 '2163475'로 서열화되어 있다(예: C=1, 첫 번째 'O'=2, 두 번째 'O'=3, ...).
- 숫자:숫자 '90210'은 '34215' - (숫자 순서로)로 배열된다.0은 주문 측면에서 '10'으로 평가됨)
체인 덧셈
체인 추가는 선형 피드백 시프트 레지스터와 유사하며, 여기서 숫자의 스트림이 시드 번호의 출력으로 생성되고 입력으로 다시 공급된다.VIC 암호 체인 추가 내에서는 (1) 원래 (시드) 번호를 가져가고, (2) 처음 두 자리 숫자를 잘못 추가하며, (3) 이 새 번호를 체인의 끝에 넣는 방식으로 동작한다.이것은 계속되지만, 추가되는 숫자는 1씩 증가한다.예를 들어, 시드가 '90210'인 경우 처음 5회 반복은 다음과 같다.
90210 /// 초기 시드 값 90210 9 // 9 = 9+0 (첫 번째 두 자리) 90210 92 // 2 = 0+2 (다음 두 자리...) 90210 923 // 3 = 2+1 90210 9231 // 1 = 1 = 90210 92319 // 9 = 0+9; 처음 생성된 '9'이 어떻게 다시 공급되고 있는지 주의하십시오.
숫자 인코딩
인코딩 단계는 숫자(즉, 암호에서 [Line-G])의 각 숫자를 1-10 순서에서 위치를 나타내는 키 시퀀스(즉, [Line-E.2])의 숫자로 대체한다.[Line] 아래에 시리즈 '1234567890'([Line-F.2]로 표시됨)을 적음으로써 알 수 있어야 한다.E.2] 0-9의 각 값에는 위에 다른 값이 있다.키 시퀀스에서 인코딩할 숫자의 모든 숫자를 위의 숫자로 바꾸기만 하면 된다.
| 키 | (E.2 라인) | 6 | 0 | 1 | 3 | 5 | 8 | 9 | 4 | 2 | 7 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 보좌관 | (F.2 라인) | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 |
For example the number '90210' would have encodings as follows; .
그래서 생산량은 '27067'이 될 것이다.
암호 해독
VIC 암호의 암호를 해독하는 방법은 다음과 같다.
- 키 그룹 추출 - 에이전트의 개인 번호를 알고 있는 경우 암호 텍스트에서 키 그룹의 5자리 숫자를 제거하십시오.
- 메시지 키 생성 - 다양한 비밀(문자, 날짜, 개인 번호, 키 그룹)에 대한 지식을 사용하여 암호화 프로세스와 동일한 방식으로 키를 생성
- 암호문 암호 해독 - 메시지 키에 대한 지식을 전달에 사용하고 체커보드의 암호를 해독함
암호해석
암호는 실제 세계에서 실제로 사용되는 가장 강력한 펜과 종이 암호 중 하나이며, 당시 NSA에 의해 (기반 알고리즘을 결정하는 측면에서) 깨지지 않았다.[1]그러나, 현대 컴퓨팅의 출현과 알고리즘의 공개로 이것은 강력한 암호로 간주되지 않을 것이다.비밀키의 엔트로피의 대다수가 10자리수[라인-H]로 수렴되는 것을 알 수 있다.이 10자리 숫자는 대략 34비트 엔트로피인데, 이 날짜의 마지막 자리(키 그룹이 어디에 있는지 식별하기 위해 필요함)와 결합하면 약 38비트의 엔트로피를 만들 수 있다. 38비트는 현대 컴퓨팅에서 하루도 안되어 브루트 포스의 공격을 받게 된다.
참고 항목
참조
- ^ a b 데이비드 칸."모스크바에서 온 넘버원" 1993.
- ^ Kahn, David (1996). The Codebreakers. Scribner. p. 650.
- ^ Kahn, David (1996). The Codebreakers. Scribner. p. 652.
- ^ "Archived copy" (PDF). www.nsa.gov. Archived from the original (PDF) on 4 March 2016. Retrieved 12 January 2022.
{{cite web}}: CS1 maint: 타이틀로 보관된 사본(링크) - ^ "Number One From Moscow — Central Intelligence Agency". www.cia.gov. Retrieved 2020-01-12.
외부 링크
- FBI는 할로우 니켈 케이스에 VIC 암호화된 메시지를 담고 있는 할로우 니켈의 이미지를 첨부했다.
- "할로우 니켈 속의 암호"
- VIC 암호
- Straddling Checkerboard Cipher Machine 및 Cryptology에서 다양한 버전의 Checkerboard
- SECOM, 확장 체커보드를 사용하는 VIC 변종
- Greg Goebel 2009의 "The Rise Of Field Ciphers: Straddling Checkerboard Ciphers"