전치 암호
Transposition Cipher는 일반 텍스트의 알파벳 순서를 재 배열하여 암호 텍스트를 형성하는 암호화 알고리즘입니다. 이 과정에서 실제 일반 텍스트 알파벳은 포함되지 않습니다.
예
전치 암호의 간단한 예는 다음과 같습니다. columnar transposition cipher여기서 일반 텍스트의 각 문자는 지정된 알파벳 너비로 가로로 작성됩니다. 암호는 세로로 작성되어 완전히 다른 암호 텍스트를 만듭니다.
일반 텍스트 고려 hello world, 그리고 아래와 같이 간단한 기둥 전치 기법을 적용 해 보겠습니다.
일반 텍스트 문자는 가로로 배치되고 암호 텍스트는 다음과 같은 세로 형식으로 생성됩니다. : holewdlo lr. 이제 수신자는 동일한 테이블을 사용하여 암호 텍스트를 일반 텍스트로 해독해야합니다.
암호
다음 프로그램 코드는 열 전치 기법의 기본 구현을 보여줍니다-
def split_len(seq, length):
return [seq[i:i + length] for i in range(0, len(seq), length)]
def encode(key, plaintext):
order = {
int(val): num for num, val in enumerate(key)
}
ciphertext = ''
for index in sorted(order.keys()):
for part in split_len(plaintext, len(key)):
try:ciphertext += part[order[index]]
except IndexError:
continue
return ciphertext
print(encode('3214', 'HELLO'))
설명
기능 사용 split_len(), 열 또는 행 형식으로 배치 할 수있는 일반 텍스트 문자를 분할 할 수 있습니다.
encode 메서드는 열 수를 지정하는 키로 암호 텍스트를 생성하고 각 열을 통해 문자를 읽어 암호 텍스트를 인쇄합니다.
산출
열 전치 기법의 기본 구현을위한 프로그램 코드는 다음과 같은 출력을 제공합니다.
Note− Cryptanalysts는 전치 기법을 수행 할 때 암호화 보안이 크게 향상되었음을 관찰했습니다. 또한 동일한 전치 암호를 사용하여 암호 텍스트를 다시 암호화하면 보안이 향상된다는 점에 주목했습니다.