컴퓨터(Computer Science)/컴퓨터보안(Computer Security)

알베르티 암호( Alberti's Cipher) [컴퓨터보안]

게임이 더 좋아 2020. 4. 5. 15:26
반응형
728x170

알베르티 암호

 

1467년 이탈리아에서 만들어진 알파벳 암호

 

다중 문자 치환을 이용한 암호다. 장치를 이용한 암호인데 공통 핀으로 고정된 2개의 디스크를 이용하는 암호 형식이며, 작은 원판은 평문을 위한 것, 큰 원판은 암호화를 위한 것이다. 디스크는 회전할 수 있다. 작은 부분이 움직일 수 있고 큰 원은 움직일 수 없다.

각 디스크의 칸수는 24개로 동일하다.

 

 

외부의 디스크에 있는 숫자는 값이 할당된 336개의 phrases를 포함한 코드북을 위한 것이다.

이는 코드 번호를 숨기는데 효과적인 방법인데 코드 번호를 다른 글자와 구별할 수 없기 때문에 그렇다. 알파벳의 치환은 암호문의 본문에 포함된 키 문자로 제어되는 것이다.

 

원리

우선 movable index를 정한다고 하자. 그 키 값을 k라고 하자. 우선 내가 원하는 형식으로 디스크를 위치하게 할건데, 예를 들어서 k값을 키 값으로 정했다면 k를 대문자 B가 위로 오도록 배치를 하고 다른 모든 소문자는 대문자 밑에 오게 한다. 즉 암호문을 평문으로 바꾸고 싶다면 읽으려는 사람 또한 대문자 B가 k와 일치할 때 까지 디스크를 돌려야 하는 것이다. 따라서 소문자들은 그 위에 있는 대문자들의 뜻과 같아지게 되는 것이다.  보통 3-4개의 단어를 쓰면 키 값은 그대로지만 기준이 바뀌어 k가 R로 바꾸어 계속 진행한다.

큰 원판에 있는 4개의 숫자 셀은 그 자체로는 의미를 갖지 않고, 띄어쓰기(null)로 삽입될 수 있다.

 

또한 대문자에서도 키 값을 정할 수 있다.

예를 들어 대문자 B를 키 값으로 설정했다고 하자. 암호문의 첫번째 문자가 소문자 q이면 q를 대문자 B의 밑으로 위치시킨다. 그리고 위와 같이 해석하는 방법은 같다. 또한 보안성을 강화 하기 위해서 원판의 값을 변경하고 싶다면 메시지에 숫자 문자를 삽입하는데. 다시 말하면 소문자 중 하나를 나타내는 숫자를 삽입하는 것이다. 그렇다면 그 문자를 다시 B의 밑에 위치시키고 해석을 진행한다. 이는 다른 이들에게 혼란을 주며 보안성을 높이는데 기여했다.

 

장점

이 시대 이전의 암호와 비교했을 때 사전지식 없이는 해독하는 것이 불가능했고 문자의 빈도의 분포를 알 수 없었기에 그 시대에 암호를 푸는 유일한 기술인 빈도 분석을 할 수 없었다. 이러한 암호기법은 많이 진화되어 Enigma, Trithemius, Vigenere로 발전하였다.

 

++캐리비안의 해적에도 이런 식의 암호가 나온다.

 

위키백과

 

728x90
반응형
그리드형