최고의 시프트 암호

일회용 암호표에 관한 강의를 본 적이 있다면 이것이 최고의 시프트 암호라는 것을 알 것입니다. 이는 메시지 길이시프트의 랜덤 목록이 같다는 것을 응용합니다. 왜 1회용 암호표는 해독할 수 없으며, 어떻게 완벽히 비밀을 보장하는지 정확하게 이해하는 것이 중요합니다
그 이유를 이해하려면 AND, OR, XOR 비트 연산자를 먼저 알아야 합니다. 특히 컴퓨터에서 1회용 암호표 수행할 때 왜 XOR이 사용되어야 하는지 말입니다. 비트 연산은 그 말대로 개별적인 비트 또는 이진수를 다룬다는 뜻입니다. 현대의 컴퓨터화된 암호 체계에서는 이진수를 이용하여 기호를 표현합니다. 왜 그런지 잊어버렸다면 컴퓨터 메모리에서 이와 관련된 비디오를 확인해 볼 수 있습니다.

색의 암호화

칸 아카데미 로고에 있는 색을 암호화하는 시각적 예제를 살펴봅시다.
색을 어떻게 숫자로 바꿀까요? 지금 여러분은 RGB 색 모델을 이용하여 정의된 HTML 색을 보고 있습니다. 이는 빨강, 초록, 파랑 빛의 혼합에 기반한 가색 모델입니다
We can define exactly how much RED, GREEN and BLUE using a number from 0-255. Black is all off (0,0,0) while white is all on (255,255,255). In between there are 16 million possible colors (256 * 256 * 256). Next let’s sample the green in the Khan Academy leaf in any image editing tool:
색상 선택기
이 초록색의 숫자가 RED=156, GREEN=181 & BLUE=58로 저장되어 있다는 것을 주목하십시오. 이 숫자들을 이진수로 표현하면 다음과 같습니다:
10011100 + 10110101 + 00111010. 이것을 한꺼번에 모아 쓰면 100111001011010100111010이 됩니다.
칸 아카데미 초록색의 바이너리 RGB 표현은 다음과 같습니다.
greeg

Application of Random Shifts

동전 뒤집기를 이용하여 시프트 수열을 만들어 이진수로 바꿨다고 합시다.
HTHTTHTHHHHTTHTTTTHTTHHH = 010110100001101111011000
1회용 암호표를 이용하여 색을 암호화하기 위해 이 시프트 수열을 어떻게 적용할 수 있을지 생각해 봅시다.
100,111,001,011,000,000,000,000 + 10,110,100,001,100,000,000,000 = ?
1회용 암호표가 제대로 작용하도록 올바른 연산을 선택해서, 결과 수열이 어떤 색상도 될 가능성이 있도록 해야 합니다. 3가지 서로 다른 연산을 검토해봅시다:

AND

AND 연산은 논리곱이라고도 하며 곱하기처럼 작용합니다. 
이 연산에서는 모든 입력이 1일 때만 1을 출력합니다. 다음은 진리표입니다:
0 AND 0 = 0
0 AND 10
1 AND 0 = 0
1 AND 1 = 1
다음 연산을 해봅시다 100111001011010100111010 AND 010110100001101111011000 = 000110000001000100011000
연산 결과 아주 어두운 보라색이 되었습니다. 이진수에 AND 연산을 하면 결과 수열은 더 커질 수 없습니다. 색을 가지고한 이 연습에서 이런 특성은 색을 검은색 쪽으로 보내기 때문에 많은 색이 나오는것을 차단합니다

OR

OR 연산은 논리합이라고도 불립니다. 이는 하나 이상의 입력이 1이면 1이 출력됩니다. 아래는 진리치표입니다:
0 OR 0 = 0
0 OR 1 = 1
1 OR 0 = 1
1 OR 1 = 1
다음을 계산해 봅시다:  100111001011010100111010 OR 010110100001101111011000 = 110111101011111111111010
연산 결과 밝은 보라색이 되었습니다. 특정 이진수 수열에 OR 연산을 하면 결과 수열은 더 작아질 수 없습니다. 이는 색을 하얀 색 쪽으로 보내기 때문에 다른 많은 색이 나올 가능성을 없앱니다.

XOR

XOR 연산은 입력이 동일하지 않으면 1을 출력합니다. 이는 두 입력 중 하나만이 배타적으로 참일 경우에만 일어납니다. 이 연산은 더해서 mod 2 를 구하는 것의 결과와 동일합니다. 다음은 진리표입니다:
0 XOR 0 = 0
0 XOR 1 = 1
1 XOR 0 = 1
1 XOR 1 = 0
다음을 계산해 봅시다: 100111001011010100111010 XOR 010110100001101111011000 = 110001101010111011100010
어두운 보라색
연산 결과 OR 연산과 비교해서 약간 더 어두운 보라색이 되었습니다. 이진수 수열에 XOR 연산을 하게 되면 결과 수열은 어떤 수열도 될 수 있습니다. 어떤 암호화된 색이 있을 때 알 수 있는 건 오로지 "원래색은 어떤 색이든 될 수 있다는 것"입니다. 맹목적 추측을 개선시킬 수 있는 어떤 정보도 없습니다 (1/16, 000, 000).
마지막으로 일회용 암호표를 보면서 알아보도록 하겠습니다. 그러면 더 많은 에너지 포인트를 얻을 수 있을 겁니다!