코드(암호촬영)
Code (cryptography)암호학에서 코드는 의미 수준에서 작동하는 메시지를 암호화하는 데 사용되는 방법입니다. 즉, 단어 또는 구문이 다른 것으로 변환됩니다.코드는 "변경"을 "CVGDK" 또는 "칵테일 라운지"로 변환할 수 있습니다.미국 국가안보국은 코드를 "보통 텍스트 요소가 주로 단어, 구 또는 문장으로 구성되고 코드 등가물(코드 그룹이라고 함)은 일반적으로 글자 또는 숫자(또는 둘 다)[1]: Vol I, p. 12 로 구성되며 길이가 동일한 다른 의미 없는 조합으로 구성된 대체 암호 시스템"으로 정의했다.구 또는 단어를 암호화 및 해독하려면 코드북이 필요합니다.
반면 암호는 개별 문자, 작은 문자 그룹, 또는 현대의 암호에서는 개별 비트 수준에서 메시지를 암호화합니다.메시지는 처음에 코드에 의해 변환되고 다음으로 [2]암호에 의해 변환됩니다.이러한 다중 암호화(superenencryption)는 암호 해독을 더욱 어렵게 만드는 것을 목적으로 합니다.
코드와 암호의 또 다른 비교는 코드는 일반적으로 수학을 사용하지 않고 문자 또는 문자 그룹을 직접 나타낸다는 것입니다.이와 같이 1001 = A, 1002 = B, 1003 = C, ...의 3가지 값을 나타내도록 설정됩니다.그 결과 생성되는 메시지는 ABC와 통신하기 위해 1001 1002 1003이 됩니다.그러나 암호는 문자나 문자 그룹을 나타내기 위해 수학 공식을 사용합니다.예를 들어, A = 1, B = 2, C = 3, .... 따라서 메시지 ABC는 각 문자의 값에 13을 곱하여 생성됩니다.메시지 ABC는 13 26 39 입니다.
코드에는 암호 해독에 대한 민감성과 복잡한 코드북 관리의 어려움 등 다양한 단점이 있습니다. 따라서 암호는 현재 현대 암호학에서 지배적인 기술입니다.
이와는 대조적으로 코드는 대표적이기 때문에 개별 코드북 요소의 수학적 분석에 영향을 받지 않습니다.이 예에서는 각 번호를 13으로 나누어 알파벳 순으로 순위를 매김으로써 메시지 132639를 해독할 수 있다.단, 코드북 암호해석의 초점은 주파수 분석을 사용하여 평문 메시지 내의 동일한 문자 주파수와 일치하는 개별 코드 요소의 비교 빈도이다.위의 예에서는 코드 그룹 1001, 1002, 1003이 여러 번 발생하고 그 빈도가 플레인텍스트 메시지에서 ABC가 발생하는 횟수와 일치할 수 있습니다.
(과거 또는 비기술적 컨텍스트에서는 코드와 암호는 모든 형태의 암호화를 나타내기 위해 많이 사용되었습니다).
1부 코드와 2부 코드
코드는 대응하는 평문과 함께 나열된 코드 그룹의 사전인 "코드북"(물리적 또는 개념적)에 의해 정의됩니다.코드에는 원래 코드 그룹 또는 인코더의 편의를 위해 코드 그룹이 '일반 텍스트 순서'로 할당되어 있었습니다.예를 들어 숫자 코드 그룹을 사용하는 코드에서 "a"로 시작하는 일반 텍스트 단어는 낮은 값 그룹을 가지며 "z"로 시작하는 단어는 높은 값 그룹을 가집니다.동일한 코드북을 사용하여 일반 텍스트 메시지를 코드화된 메시지 또는 코드 텍스트로 "encode"하고 코드 텍스트를 다시 일반 텍스트 메시지로 "decode"할 수 있습니다.
코드브레이커의 생활을 더욱 어렵게 하기 위해 코드그룹과 일치하는 평문의 순서 사이에 예측 가능한 관계가 없는 코드를 설계했다.실제로, 이것은 두 개의 코드북이 필요함을 의미했습니다. 하나는 인코딩을 위한 코드 그룹을 찾는 것이고 다른 하나는 디코딩을 위한 일반 텍스트를 찾기 위한 코드 그룹을 찾는 것입니다.이러한 "2부" 코드는 개발에 더 많은 노력이 필요했고 배포(교체 시 안전하게 폐기)하는 데 두 배의 노력이 필요했지만, 이를 깨기는 더 어려웠다.1917년 1월 짐만 텔레그램은 10,000개 이상의 문구와 개별 [3]단어를 포함하는 독일 외교 "0075" 2부 암호 체계를 사용했다.
일회성 코드
원타임 코드는 간단한 메시지(종종 계획의 실행 또는 중단 또는 성공 또는 실패를 확인하기 위한 신호)를 전달하기 위해 한 번만 사용하도록 미리 정해진 단어, 구 또는 기호입니다.일회성 코드는 종종 순수한 대화에 포함되도록 설계됩니다.이미 의심을 불러일으킨 사람의 통신을 감시하는 숙련된 분석가가 "버사 고모가 진통을 시작했다"는 말을 불길한 의미로 인식할 수 있을지 모르지만, 그들이 제대로 행해진다면, 그들은 거의 탐지할 수 없다.1개의 타임코드의 대표적인 예는 다음과 같습니다.
- 성경에서, 요나단은 다윗과 미리 암호를 짜놓는데, 다윗은 요나단의 아버지인 사울 왕으로부터 은신하게 된다.활쏘기 연습 중에 요나단이 화살을 회수하는 하인에게 화살은 이쪽 편에 있다고 말하면, 다윗은 법원으로 돌아가는 것이 안전하며, 만약 명령이 "화살은 당신 너머에 있다"라면, [4]다윗은 도망쳐야 한다.
- 헨리 워즈워스 롱펠로의 시로 유명해진 폴 리비어의 라이드에 나오는 "1개는 육지로, 2개는 해로로"
- '니이타카 등반' - 일본 항공기에 진주만 공격 개시 신호
- 제2차 세계대전 중, 영국 방송사의 해외 서비스는 자주 정규 방송 스케줄의 일부로 "개인 메시지"를 포함시켰다.아나운서에 의해 읽혀지는 무의미해 보이는 메시지 스트림은 실제로 적군의 배후에서 활동하는 특수작전집행부(SOE) 요원들을 위한 하나의 타임 코드였다.예를 들면, 「공주가 빨간 신발을 신고 있다」나 「미미의 고양이가 테이블 아래에서 자고 있다」등이 있습니다.각 코드 메시지는 두 번 읽혔다.프랑스 레지스탕스는 D-day 전날 밤부터 철도와 다른 수송로를 파괴하라는 지시를 받았다.
- "스페인 전역은 맑다, 하늘은 맑다"는 1936년 7월 17일 스페인에서 민족주의 군사 반란을 일으키기 위한 신호였다.
메시지가 미리 예약되지 않고 수신자만 알고 있는 공유된 정보에 의존할 수 있습니다.예를 들어 해리 트루먼 미국 대통령에게 보낸 전보가 있고, 그 후 포츠담 회의에서 조셉 스탈린 소련 총리와 만나 첫 원자폭탄 실험에 성공했음을 알리는 전보가 있다.
- "오늘 아침에 수술했어요.진단은 아직 완료되지 않았지만 결과는 만족스러운 것으로 보이며 이미 예상을 웃돌고 있습니다.관심이 매우 넓기 때문에 현지 보도 자료가 필요합니다.그로브스 박사는 기뻐했다.그는 내일 돌아옵니다.계속 연락드리겠습니다.
관련이 없는 사이퍼 알고리즘인 원타임 패드도 참조해 주세요.
바보 코드
바보 코드는 그것을 사용하는 당사자들에 의해 만들어진 코드입니다.이런 종류의 통신은 전장에서 군대가 사용하는 핸드 시그널과 유사하다.
예:'낮'과 '밤'이 사용되는 문장은 '공격'을 의미합니다.다음 문장에서 설명하는 위치는 공격을 받을 위치를 지정합니다.
- 보통 텍스트:X를 공격하다
- 코드 텍스트:우리는 밤낮으로 거리를 돌아다녔지만 찾을 수 없었어!내일 우리는 X로 향한다.
이 용어의 초기 사용은 로버트 A의 금요일 공상과학 소설에[5] 등장하는 인물인 조지 페롤이 사용한 것으로 보인다. 하인라인:
- 가장 단순한 종류의 코드이므로 해독이 불가능합니다.첫 번째 광고는 7번을 수행하거나 7번을 기대하거나 7번으로 지정된 것에 대해 언급했습니다.이건 10번 코드에 대해서도 똑같아요.그러나 유용한 통계적 세계에 도달하기 훨씬 전에 코드가 변경될 수 있기 때문에 통계 분석을 통해 숫자의 의미를 추론할 수 없습니다.바보같은 암호야...그리고 사용자가 우물에 너무 자주 가지 않는 센스가 있다면 바보 코드는 절대 깨지지 않을 것이다.
테러 전문가 매그너스 란스토프는 9월 11일 미국에 대한 공격을 감행한 사람들은 기본적인 이메일과 그가 "바보 코드"라고 부르는 것을 그들의 [6]계획을 논의하기 위해 사용했다고 말했다.
코드 암호화
모노알파벳 치환 암호는 쉽게 풀 수 있지만 간단한 코드도 풀기가 어렵습니다.코드화된 메시지를 해독하는 것은 외국어로 작성된 문서를 번역하려는 것과 약간 비슷하며, 기본적으로는 코드 그룹과 코드 그룹이 나타내는 평문 단어의 "사전"을 작성하는 작업에 해당합니다.
간단한 코드의 한 가지 손가락은 영어의 "the"나 "a"와 같은 단어들이 다른 단어들보다 더 흔하다는 사실이다.전신 메시지에서 "STOP"(즉, 문장 끝 또는 단락)에 대한 코드 그룹은 일반적으로 매우 일반적이다.이는 메시지의 구조를 문장으로 정의하는데 도움이 되며, 그 의미는 아니더라도 암호 해독에 도움이 됩니다.
동일한 코드로 암호화된 다수의 코드텍스트를 수집한 후 다른 소스의 정보를 사용함으로써 코드에 대해 더 진전시킬 수 있습니다.
- 스파이
- 신문지
- 외교 칵테일 파티 채팅
- 메시지가 발송된 위치
- 송신지(트래픽 분석)
- 메시지가 발송된 시간,
- 메시지 전송 전후에 발생하는 이벤트
- 암호 메시지를 보내는 사람들의 일반적인 습관
- 기타.
예를 들어, 특정 군대의 메시지에서 거의 독점적으로 발견되는 특정 코드 그룹은 그 군대의 지휘관을 잘 나타낼 수 있는 곳이 어디에도 없습니다.특정 로케이션에 대한 공격 전 메시지에 표시되는 코드 그룹은 그 로케이션을 나타내는 것이 매우 적절합니다.
크립은 코드 그룹의 정의에 즉시 도움이 될 수 있다.코드 그룹이 결정됨에 따라, 문맥과 교육된 추측으로부터 점점 더 많은 코드 그룹이 드러나는 임계 매스를 점차적으로 구축할 수 있습니다.단품 코드는 단품 코드의 코드넘버 "26839"가 "bulldozer"의 약자로 결정될 경우 하위 코드넘버 "17598"은 "a" 또는 "b"로 시작하는 일반 텍스트 단어를 의미하기 때문에 이러한 전문적 추측에 더 취약합니다.적어도 하나의 단순한 부품 코드일 경우.
예를 들어 특정 시간 및 장소에서 적에 대해 공격을 실행한 후 공격 후 전송되는 코드 메시지를 검사하는 등 다양한 트릭을 사용하여 정보를 코드화된 메시지에 "플랜트" 또는 "저장"할 수 있습니다.코딩 오류는 특히 유용한 코드입니다. 사람들은 오류를 신뢰성 있게, 때로는 심각한 오류를 범합니다.데이터를 심고 오류를 악용하는 것도 암호에 대항할 수 있습니다.
- 가장 명백하고, 적어도 원칙적으로 가장 간단한 코드 해독 방법은 뇌물수수, 강도 또는 침입을 통해 코드북을 훔치는 것입니다.이것은 코드북이 일반적으로 암호키보다 크고 오래 사용되지만 코드북은 코드북과 암호 모두에 약점이 됩니다.좋은 코드는 암호보다 깨기 어려울 수 있지만 코드북을 작성하고 배포해야 하는 것은 심각한 문제입니다.
새로운 코드를 만드는 것은 새로운 언어를 만들고 그 언어를 위한 사전을 작성하는 것과 같습니다. 컴퓨터 앞에선 특히 큰 일이었습니다.코드가 손상되면 전체 작업을 다시 수행해야 하며, 이는 암호화 기술자와 코드 사용자 모두에게 많은 작업이 필요하다는 것을 의미합니다.실제로 코드가 널리 사용되었을 때, 코드 브레이커를 좌절시키고 도난당하거나 복사된 코드북의 내용연수를 제한하기 위해 코드가 정기적으로 변경되었습니다.
코드가 생성되면 코드북 배포가 논리적으로 서툴러 코드가 손상될 가능성이 높아집니다."세 사람이 죽으면 비밀을 지킬 수 있다"(벤자민 프랭클린-위키포테)는 말이 있는데, 다소 과장된 표현일 수도 있지만, 여러 사람이 공유하면 비밀은 더 지켜지기 어려워진다.소수의 신중한 사람들만이 사용할 경우 코드는 상당히 안전하다고 생각할 수 있지만, 전군이 동일한 코드북을 사용할 경우 보안은 훨씬 더 어려워집니다.
반면 암호의 보안은 일반적으로 암호 키의 보호에 의존합니다.암호 키는 도난당할 수 있고 사람들이 이를 배신할 수 있지만, 변경 및 배포가 훨씬 쉽습니다.
서페렌암호화
암호 해독의 난이도를 높이기 위해 메시지를 처음 인코딩한 후 암호화하는 것이 일반적이었다.숫자 코드의 경우, 이것은 일반적으로 "additive"를 사용하여 수행되었습니다. 즉, 코드 그룹인 modulo 10에 숫자별로 추가된 긴 키 번호입니다.코드북과 달리 첨가물은 자주 바뀔 것이다.유명한 일본 해군 코드인 JN-25는 이 디자인이다.
레퍼런스
- ^ 미국 통신 보안의 역사; David G. Boak 강의, 국가안보국(NSA), 제1권, 1973년, 제2권 1981년, 2008년 부분 공개, 2015년 10월 14일 추가 기밀 해제
- ^ "16.2: Substitution Ciphers". Mathematics LibreTexts. 2020-01-22. Retrieved 2021-09-19.
- ^ 짐만 전보: 오리지널 드래프트", 2007, 요아힘 폰 주르 가텐, "크립톨로지아", 제31권 제1호
- ^ I 사무엘 20:20-22
- ^ 로버트 A의 금요일(1982) 하인라인
- ^ 자유유럽방송 / 자유방송 : "중동: 이슬람 무장세력이 인터넷에 지하드를 가져간다" 제프리 도노반, 2004년 6월 16일.
원천
- Kahn, David (1996). The Codebreakers : The Comprehensive History of Secret Communication from Ancient Times to the Internet. Scribner.
- Pickover, Cliff (2000). Cryptorunes: Codes and Secret Writing. Pomegranate Communications. ISBN 978-0-7649-1251-1.
- Boak, David G. (July 1973) [1966]. "Codes" (PDF). A History of U.S. Communications Security; the David G. Boak Lectures, Vol. I (2015 declassification review ed.). Ft. George G. Meade, MD: U.S. National Security Agency. pp. 21–32. Retrieved 2017-04-23.
- 제1차 세계대전 중 미국 원정군의 미군 필드 코드, 1942년 6월, 미 육군부의 윌리엄 프리드먼.부록에 "야구 코드"를 포함한 많은 예를 제시합니다(254페이지).
「 」를 참조해 주세요.
- 이 기사 또는 그 이전 버전에는 Greg Goebel의 코드, 암호 및 코드브레이킹 자료가 포함되어 있습니다.