ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 5x5 키 테이블을 사용하는 플레이페어 암호
    IT/정보 보안 2021. 3. 17. 20:45

    플레이페어 암호(playfair chipher)는 5x5로 이루어진 테이블을 키로 이용합니다

    이 암호의 장점은 테이블에 들어가는 알파벳과 배열을 다르게 하여 많은 키를 만들 수 있다는 장점이 있습니다

     

    제가 무작위로 배열해서 만든 키 테이블입니다

    키 테이블 배열에는 정해진 규칙은 없습니다

     

    하지만 여기서 I와 J는 같은 것으로 간주됩니다

     

     

    'chicken'을 암호화해보겠습니다

     

    암호화할 평문 chicken을 두 문자씩 쌍으로 묶어줍니다

    우리가 여기서 또 알아야할 게 연속해서 중복되는 문자가 있으면 가짜 문자를 삽입해줍니다

    또한 마지막이 짝수로 나누어지지 않고 하나가 남으면 그 뒤에도 가짜문자를 삽입해줍니다

     

    예를 들어 HELLO를 암호화한다고 가정하고 두 문자씩 나누면 'HE, LL, O'가 나옵니다

    LL이라는 연속된 중복 문자가 있기 때문에 맨끝에 가짜 문자를 삽입해 주는 겁니다

    HELLO를 다시 두 문자씩 나누면 'HE, LX, LO' 이렇게 나누어 주면 됩니다.

     

    그러면 이제 chicken을 나누어 봅시다

    Ch, ic, ke, n 이렇게 나누어지게됩니다.

    마지막이 짝수로 나누어 떨어지지 않고 n 하나가 남게되는데 이 뒤에 가짜 문자를 삽입해 주면 됩니다

    그러면 최종적으로는 'Ch, ic, ke, nx'가 됩니다

     

    ! 가짜 문자를 삽입하는 조건 !


    1. 중복된 문자가 연속해서 있는 경우
    Ex. hello → 'he, ll, o' (X)
    'he, lx, lo' (O)


    2. 마지막 끝자리가 홀수로 남은 경우
    Ex. chicken → 'ch, ic, ke, n' (X)
    'ch, ic, ke, nx' (O)

     

     

    이제 위의 키 테이블과 두 문자씩 묶은 평문으로 암호화를 해보겠습니다.

     

     

    플레이페어 암호에서는 키 테이블이 중요합니다 위에도 올렸지만 편하게 보면서 하실 수 있게 다시 올릴게요

     

    우리가 본격적으로 암호화하는데에 있어 필요한 규칙이 3가지가 있습니다

     

    1. 쌍으로 묶은 두 문자가 키 테이블의 같은 행에 있다면 각각의 문자는 오른쪽의 문자입니다
    2. 쌍으로 묶은 두 문자가 같은 열에 있다면 각각의 문자는 아래에 위치한 문자입니다
    3. 쌍으로 묶인 두 문자가 같은 행과 열에 없으면 각각의 문자는 자신의 행에 위치하고 다른 문자와 같은 열에 위치한 문자입니다

     

    우리가 암호화할 평문은 'Ch, ic, ke, nx'입니다

     

    일단 ch를 먼저 키 테이블에서 찾아봅시다

    c와 h는 같은 열에 있습니다

    같은 열에 있으면 각각 문자의 자신의 오른쪽에 있는 문자로 암호화됩니다

     

    그럼 ch는 rc로 암호화되겠죠?

     

     

     

     

    이번엔 ic를 키 테이블에서 찾아봅시다.

     

    i와 c는 같은 열에도, 같은 행에도 없습니다

    이런 경우에는 자신의 행과 짝지은 다른 문자의 열에 위치한 문자로 암호화됩니다.

     

     

    i는 z, c는 r으로 암호화됩니다

    설명만 봐서는 이해가 안 될 수도 있는데 표와 같이 매치해서 보면 이해가 될 겁니다

     

     

     

    다음은 nx를 키 테이블에서 찾아봅시다

    둘이 같은 행에 위치하고 있죠?

    같은 행에 위치하고 있으면 각각의 문자는 자신의 아래에 위치한 문자로 암호화됩니다

     

    그러면 nx는 wn으로 암호화가 됩니다

     

     

    이런 방식으로 모든 짝들을 암호화하면 

    'ch, ic, ke, nx' → 'rc, zr, xd, wn' 

    결국 평문 'chicken'은 'rczrxdwn'으로 암호화됩니다

    'IT > 정보 보안' 카테고리의 다른 글

    OWASP TOP10이란?  (0) 2022.01.01
    대치 암호 (substitution cipher)와 덧셈 암호 (additive cipher)  (0) 2021.02.26
    기본적인 보안의 3요소  (0) 2021.02.22

    댓글

Designed by Tistory.