1. 자신의 윈도우 bit에 맞는 최신버전 zip 파일 다운로드한다.

http://code.google.com/p/openssl-for-windows/downloads/list 

 

참고) 윈도우 비트 확인하는 방법

내 컴퓨터 (내 PC)에 오른쪽 클릭을 한 다음에 속성을 누르면 된다. 그러면 시스템 탭이 열리는데 시스템 종류란을 확인하면, 윈도우 bit를 확인 할 수 있다. 

 

2. 설치한 파일을 압축 해제 후에 해당 폴더를 (로컬디스크)C:\ 로 이동한다. 

 

3.  cmd창을 열어 ([Win]+[R] 클릭 후 cmd 입력) 다음과 같이 실행함으로써, 설치가 잘 되어있는지 확인한다. 

cd 명령어를 통해 해당 폴더 (bin)로 이동하고

openssl 명령어를 실행시키면

설치에 성공한 경우, OpenSSL> 이라는 글자가 뜬다. 

quit을 입력해 openssl을 종료시키면 된다. 

DES(Data Encryption Stadard)

- Block cipher

  plaintext를 64bit의 block으로 나눠 56bit의 key를 이용해 다시 64bit의 ciphertext를 만들어내는 알고리즘

Symmetric cipher

  암호문을 작성할 때 사용하는 암호키 = 암호문을 해독할 때 사용하는 해독키

 

DES 동작 과정

(1) 전반적인 DES 동작 과정

1. 64bit의 plaintext가 첫번째 round를 거치기 전에   Initial Permutation(초기 치환)을 통과한다.

 

2. IP를 통과한 후 나온 64bit32bitL0과 R0으로 분리된다.

 

3. R0에 해당하는 32bit는 각 key_schedule를 통해 나온 첫번째 48bit key와 함께 F-box에 들어간다. F-boxoutput32bit이다.

 

4. 32bitL032bitXOR operation 해준다.

 

5. 생성된 32bitR1에 보내주고, R0 32bit L1에 오도록 한다. (swapping)

이과정을 16 round 반복한다.

마지막 round의 경우, swapping하지 않고 그대로 실행시켜야 한다.

 

6. R16L16을 합쳐서 64bit로 만들고 FP(IP의 역)을 통과한다. output64bitciphertext이다.

 

 

 

 

(2) F-box

1. round마다 오른쪽 32bitExpansion(E)를 통과한 후 48bit로 확장된다.

2. 48bitkey_schedule에 따른 key 48bitXOR operation한 후에 F-box를 통과한다.

3. XOR operation 후에 얻은 48bit6bit씩 8부분으로 나누어 각각 S-Box를 통과한다.

4. S-Box를 통과한 output 4bit이고 8개를 모두 합치면 32bit가 된다.

5. Permutation(P)를 통과해 F-box output를 도출해 낸다.

 

(2) key schedule

처음 64bitkeyPC1을 거쳐 56bit가 되는데, 나머지 8bitParity bit로 사용된다.

    ☞ parity bit?

더보기

정보전달 과정에서 오류가 생겼는지를 검사하기 위한 bit

56bit28bit씩 왼쪽, 오른쪽 분리한 후 실행한다. round마다 shift_schedule(key 회전 스케줄)에 따라 왼쪽으로 1bit, 2bit 회전한다.

→ 1,2,9,16번째는 1shift, 나머지는 2shift한다.

각각 shift연산을 한 후에 왼쪽 오른쪽을 합쳐서 PC2를 통과시키면 output48bit이고 각각 subkey를 의미한다.

1. Enigma란?

Enigma는 독일의 Arthur Scherbius에 의해 고안된 암호화와 복호화를 수행하는 기계

Enigma는 고대 그리스어로 수수께끼를 뜻하는 아이니그마라는 말에서 따온 것

Enigma는 키보드, 램프, 플러그보드, 로터, 등으로 조합한 기계로 암호화와 복호화를 수행

송신자와 수신자는 enigma를 각각 1대씩

송신자는 enigma를 이용해 평문(메시지)을 암호화하고 완성된 암호문을 무선으로 수신자에게 보냄

수신자는 받은 암호문을 자신의 enigma로 복호화 해서 평문(메시지)을 얻음

 

2. Enigma의 암호통신 및 구성요소

(1) Codebook

송신자와 수신자는 같은 키를 사용해야 하므로 codebook이라고 하는 두꺼운 책자를 공유

codebook-  송신자와 수신자가 사용하는 날짜별 키(KEK) 기록 

※ KEK(Key Encrypting Key)

날짜별 키.

통신키의 암호화에 이용( 키를 암호하기 위한 키)

날짜에 해당하는 기어 종류, 기어 설정, 플러그 연결,등 기록되어 있음

 

(2) 키보드

Enigma의 키보드의 키를 누르게 되면 전기신호가 복잡한 회로를 거쳐 램프에 불이 들어오게 되는데, 이때 입력한 값과 출력한 값(램프에 들어오는 값)은 다름

 

(3) 플러그보드

플러그보드는 연결선을 바꿈으로써 문자의 대응을 다양하게 변화시키기 위한 부품

Codebook에 따른 날짜 별 키로 플러그보드의 연결선이 정해지며 설정한 뒤에는 하루동안 변경X

 

(4) 로터

로터는 앞과 뒤의 단자가 전선으로 연결되어 있는 원반 모양의 부품

회로의 중간에 3개 있음

로터 하나하나의 연결선은 변경할 수 없고 문자를 입력할 때마다 자동으로 회전

각 로터의 주변에는 표시 문자가 적혀 있고, 문자에 대응하는 설치 각도를 설정 가능

키보드의 글자를 하나씩 입력할 때마다 첫번째 로터가 하나씩 도는데 첫번째 로터가 한바퀴를 다 회전하면 두번째 로터가 하나 회전하고, 두번째 로터가 한바퀴 다 회전하면 세번째 로터가 하나 회전

 

3. Enigma의 암호화 과정 (1)~(5)

(1) Enigma의 설정

송신자는 codebook에 있는 해당 날의 날짜별 키를 찾아내고 그 키에 맞춰 enigma를 설정한다. 즉, 플러그보드의 연결선을 연결하고, codebook에 지정된 로터 3개를 선택한 뒤에 이를 enigma 기계에 끼워넣고 설정된 각도로 설정한다.

(2) 통신키 암호화 및 메모

송신자는 통신키 즉, 알파벳 3문자를 정하여 암호화

통신키도 enigma를 이용해서 암호화해야 함 -> 통신키를 2번 연속해서 입력하여 암호화

ex) “uat”가 통신키라면 “uatuat”를 입력

1개의 문자를 칠 때마다 로터가 조금씩 회전하며 그 문자에 대응하는 문자 램프에 불이 들어오는 데 송신자는 불이 들어온 램프에 대응하는 문자를 메모

(3) Enigma의 재설정

송신자는 통신키에 따라 enigma를 재설정

(통신자의 알파벳 3문자 == 3개의 로터 설치 각도)

통신키 “uat”는 첫번째 로터를 u의 각도, 두번째 로터를 a의 각도, 세번째 로터를 t의 각도로 설정한다는 것을 의미

(4) 평문(메시지) 암호화

송신자는 평문을 1문자씩 키보드에 입력하고, 램프에 불이 들어오는 문자를 메모

(5) 결합

 송신자는 암호화된 통신키와 암호화된 메시지를 결합하여 무선으로 송신

 

4. Enigma의 복호화 과정 (1)~(5)

(1) 분리

수신자는 수신한 통신문을 앞부분 6자(통신키)와 나머지 문자로 분리

(2) Enigma의 설정

수신자는 codebook을 참조해서 해당 날의 날짜별 키를 조사하여, 그 날짜별 키대로 enigma를 설정

(수신자의 설정과 동일)

(3) 통신키 복호화 및 메모

수신자는 통신키 6자를 복호화

Enigma 키보드로 6자를 쳐서 불이 켜지는 각각의 문자를 메모

알파벳 3문자의 패턴이 2회 반복되면, 통신 오류가 발생하지 않았음을 알 수 있음

(4) Enigma의 재설정

 수신자는 구한 통신키를 이용하여 enigma를 재설정

(5) 암호문의 복호화 및 메모

 수신자는 통신키 6자를 제외한 통신문의 나머지 문자들을 1 문자씩 키보드에 입력하고 램프에 불이 들어오는 문자를 메모

Caesar cipher(시저 암호) : plaintext를 일정한 문자수(key space)만큼 평행이동 시킴으로써 암호화

 

a b c -> d e f  의 경우 더 길게 써보면

x y z a b c d e f ... w -> a b c d e f g h i ... z

오른쪽에 있는 알파벳은 cipher text에 속한다.

-> 를 mapping function이라고 하는데 위의 경우 Shift R3 charachers 의 역할을 한다. 

<- 은 mapping(-1) function = inverse mapping function으로 decrypt function을 의미한다. 

위의 경우 <-는 Shift L3 charachters = Shift R23 characters의 역할을 한다.

(Shift L3와 R23가 같은 이유는 알파벳의 전체 개수는 26이고 (xyzabcdef...w/xyz...)이렇게 반복을 하기 때문)

 

Shift 13 characters가 의미하는 것은?

"13"은 specific하고 strange한 number

why? 

"원래함수(암호화) = 역함수(복호화) " 가 되기 때문

-- 알파벳이 총 26개니까 Shift left right 모두 동일하다

 

stronger function? 

key space가 클수록!

 

brute-force attack

- 모든 케이스를 다 확인하는 공격

- 25!를 시도해야 얻을 수 있다

 

frequency analysis possible?

mapping table (fixed mapping) 

Original Encrypt
A L
B O
C F
D M
E Q
F Z

simple substitution cipher, You can find some patterns/frequency in the cypertext

 

복잡도가 충분히 높고, how can you improve it? 

실제로는 25!보다 훨씬 더 높은 확률로  break가능 (이유 :  fixed mapping)

how stronger?

(Enigma idea) codebook을 여러개 사용하는 것

모든 종류의 암호화는 key가 필요하는데 이 key에 따라 symmetric인지 asymmetric인지 구분한다. 

 

Symmetric Cryptography(대칭 암호)

- same key for encryption and decryption

 

Asymmetric Cryptography(비대칭 암호) = public key cryptography

- different keys for encryption and decryption

key 1. public 2. private

sender, receiver use a key pair (public & private)

 

 

정보보호 서비스의 특성 CIA Trial

1. Confidentiality(기밀성)

- keep close(= hiding infomation/unpermitted)

- Access control

- encrypt

2. Integrity(무결성)

- keep original data

- real/unreal 구분

3. Availability(가용성)

- use/useless 

- DDoS(Distributed Deniel of Service) attack form multical... (한꺼번에 왕창 server 공격)

CIA외에..

- authentication 인증

- non-repudiation 부인방지(cannot deny)(by evidence)

- permission 소원권

 

naming convention(암호에서 사용하는 이름)

Alice - sender (send message to Bob)

Bob - receiver (receive message from Alice)

Eve - shy/passive attacher, 도청

Mallory - active attacker, try to modify message, try to disconnect communication

Trent - trusted arbitrator (신뢰할 수 잇는 중재자) 

Victor- verified something, deny, proof

 

※ LAN

더보기

- Ethernet Link/Wired Network Card -> promiscuous mode (listen all data(같은 링크))

- Bus topology를 가짐 : (Alice -> Bob)상황에서 

                               other cannot send message or use the link

                               some listen communication

                               => 통신 중에 정보보호 필요성

※ http vs https

더보기

http://

https:// s의 의미는 secure, 전송 메시지 과부하하여 전송

※ phishing

더보기

Mallory의 message 수정 

- ex) phishing ( 일종의 hijacking )

 

ENCRYPTION 

원래 의미를 못 알아보도록 information shape 변경 

plaintext : original text message, not encrypted message

ciphertext : encrypted message

plaintext --(encrypt)--> ciphertext

 

DECRYPTION

ciphertext --(decrypt)--> plaintext

 

Cryptanalysis(암호해독)

- Another user(not the recepient) tries to break the cryptography, to translate ciphertext into plaintext

 

Components in cryptosystem

- plaintext

- ciphertext

- encryption algorithm

- decryption algorithm

- key

 

Symbols presentation in Cryptosystem(암호 시스템의 기호 표현)

C : Ciphertext , K : key , P : plaintext

Ek( ) : Encryption function , Dk( ) : Decryption function

C=Ek(P)=E(K,P) : Encrypt Plaintext with key, result in ciphertext

P=Dk(C)=D(K,P) : Decrypt Ciphertext with key, result in plaintext

 

 

 

 

 

★ Encryption, Decryption -> strong ...How?

 

+ Recent posts