글
암호 방식( 고전적 기법 )
Programming/Security
2009. 10. 23. 17:29
치환 기법
시이저( Caesar ) 암호 기법
: 각 알파벳 문자를 두 문자 건너의 세 번째 문자로 치환하는 방식
평문 : meet me after the toga party
암호문: PHHW PH DIWHU WKH WRJD SDUWB
평문 : a b c d e f g ~
암호문자 : D E F G H I J ~
와 같이 1:1 대응이다. 각 문자에 0 ~ 25 까지 숫자를 배정하여
C = E(p) = (p+3) mod (26 ) 로 암호화를 한다.
암호화 식
C = E(p) = (p+k) mod (26 )
P = D(c) = (c-k) mod (26)
단일문자치환( Monoalphabetic Cipher ) 암호 기법
: 각 문자는 다른 문자와 1:1 로 매칭되는 맵이 존재 한다. 이 맵에 따라 암호화 수행
map
planin : abcde ~
Cipher :DKVQF ~
Plaintext : ifwew...
Ciphertext : WIRFR...
Playfair 암호 기법
: 가장 잘 알려진 다중문자 치환 암호기법( Multiple-Letter Encryption )
Keyword : MONARCHY
먼저 5X5 매트리스에서 키워드 값을 중복되는 알파벳을 제외하고, 차례대로 체운다.( 붉은색 )
그리고 나서, 키워드에 없는 알파벳을 차례대로 적는다.
이 매트리스를 근거로 하여 암호화를 하게 된다.
암호화 방법은
1. plaintext의 각 알파벳 쌍( 두 문자 )이 같은 문자이면, X와 같은 plaintext에 없는 임의의 문자를 삽입한다. 그리고, 쌍이 맞지 않는 경우에도 같은 임의의 문자를 삽입하여 쌍을 맞춰준다.
2. 각 쌍의 알파벳 문자를 매트리스에서 찾아서, 같은 열에 있을 경우에는 그 문자를 각 문자의 우측에 있는 문자와 치환을 한다.
3. 같은 행에 있을 경우에는 그 문자를 각 문자의 아래의 문자와 치환을 한다.
4. 서로 다른 행과 열에 있을 경우에는, 한 문자의 같은 열과 다른 문자의 같은 행의 문자를 치환한다.
암호화 PlainText : ballon
-> ba lx lo nx -> I/JB SU PM AW
복호화 I/JB SU PM AW -> BA LX LO NX -> BALLON
One-Time Pad
: 메시지와 정확히 같은 길이이고 반복되지 않는 랜덤 키 사용을 하는 방법
평문과 통계적 관계를 갖지 않는 임의의 출력을 생성한다.
전치 기법( Transposition Techniques )
Rail Fence Cipher
: 평문을 대각선으로 써 놓고 횡으로 읽어내는 방식이다.
PlainText : meet me after the toga party
CipherText: mematrhtgpryetefeteoaat
Row Transposition Cipher
: 메시지를 사각형의 행순으로 써넣고 열 순으로 읽되 열의 순서를 바꾸는 것이다.
키 : 4 3 1 2 5 6 7
평문 : a t t a c k p
o s t p o n e
d u n t i l t
w o a m x y z
암호문 : ttna aptm tsuo aodw coix knly petz
키 갯수에 따라 평문 한줄 길이를 설정하여 데이터를 채운다.
평문 뒤의 x y z 는 평문에 없는 문자중에 더미로 넣은 것이다. 복호화 할 때 이를 제거해 준다.
시이저( Caesar ) 암호 기법
: 각 알파벳 문자를 두 문자 건너의 세 번째 문자로 치환하는 방식
평문 : meet me after the toga party
암호문: PHHW PH DIWHU WKH WRJD SDUWB
평문 : a b c d e f g ~
암호문자 : D E F G H I J ~
와 같이 1:1 대응이다. 각 문자에 0 ~ 25 까지 숫자를 배정하여
C = E(p) = (p+3) mod (26 ) 로 암호화를 한다.
암호화 식
C = E(p) = (p+k) mod (26 )
P = D(c) = (c-k) mod (26)
단일문자치환( Monoalphabetic Cipher ) 암호 기법
: 각 문자는 다른 문자와 1:1 로 매칭되는 맵이 존재 한다. 이 맵에 따라 암호화 수행
map
planin : abcde ~
Cipher :DKVQF ~
Plaintext : ifwew...
Ciphertext : WIRFR...
Playfair 암호 기법
: 가장 잘 알려진 다중문자 치환 암호기법( Multiple-Letter Encryption )
M | O | N | A | R |
C | H | Y | B | D |
E | F | G | I/J | K |
L | P | Q | S | T |
U | V | W | X | Z |
Keyword : MONARCHY
먼저 5X5 매트리스에서 키워드 값을 중복되는 알파벳을 제외하고, 차례대로 체운다.( 붉은색 )
그리고 나서, 키워드에 없는 알파벳을 차례대로 적는다.
이 매트리스를 근거로 하여 암호화를 하게 된다.
암호화 방법은
1. plaintext의 각 알파벳 쌍( 두 문자 )이 같은 문자이면, X와 같은 plaintext에 없는 임의의 문자를 삽입한다. 그리고, 쌍이 맞지 않는 경우에도 같은 임의의 문자를 삽입하여 쌍을 맞춰준다.
2. 각 쌍의 알파벳 문자를 매트리스에서 찾아서, 같은 열에 있을 경우에는 그 문자를 각 문자의 우측에 있는 문자와 치환을 한다.
3. 같은 행에 있을 경우에는 그 문자를 각 문자의 아래의 문자와 치환을 한다.
4. 서로 다른 행과 열에 있을 경우에는, 한 문자의 같은 열과 다른 문자의 같은 행의 문자를 치환한다.
암호화 PlainText : ballon
-> ba lx lo nx -> I/JB SU PM AW
복호화 I/JB SU PM AW -> BA LX LO NX -> BALLON
One-Time Pad
: 메시지와 정확히 같은 길이이고 반복되지 않는 랜덤 키 사용을 하는 방법
평문과 통계적 관계를 갖지 않는 임의의 출력을 생성한다.
전치 기법( Transposition Techniques )
Rail Fence Cipher
: 평문을 대각선으로 써 놓고 횡으로 읽어내는 방식이다.
PlainText : meet me after the toga party
CipherText: mematrhtgpryetefeteoaat
Row Transposition Cipher
: 메시지를 사각형의 행순으로 써넣고 열 순으로 읽되 열의 순서를 바꾸는 것이다.
키 : 4 3 1 2 5 6 7
평문 : a t t a c k p
o s t p o n e
d u n t i l t
w o a m x y z
암호문 : ttna aptm tsuo aodw coix knly petz
키 갯수에 따라 평문 한줄 길이를 설정하여 데이터를 채운다.
평문 뒤의 x y z 는 평문에 없는 문자중에 더미로 넣은 것이다. 복호화 할 때 이를 제거해 준다.
'Programming > Security' 카테고리의 다른 글
Diffie-Hellman Key Exchange (0) | 2009.12.10 |
---|---|
RSA (0) | 2009.12.10 |
키 분배 시나리오 (0) | 2009.10.23 |
RC4 알고리즘 (0) | 2009.10.23 |
블록 암호의 운용 모드 (0) | 2009.10.23 |