티스토리 뷰

Chapter 3 - Modern Block Ciphers 

  암호화 하는 방법에는 두가지가 있다. Block 방법과 Stream Ciphers 방법 이렇게 두가지다.

 Block : 여러개를 모아(Data를) 한번에 처리 하겠다.

Stream : 실시간으로 정보를 처리하겠다,

간단하게 설명하면 저렇게 된다. Block이 더 잘 Design되며 현재 표준이 존재한다. 
하지만 Stream은 아직 연구가 덜되서 어려운 분야이다. 그래서 대부분의 암호방법은 Block처리를 한다.


위의 그림을 보면 Block단위처리는 bit로 묶어 처리하는것을 알 수 있다.

Basic Facts

  기본적인 것을을 알아보자.

Plain text와 Cipher text끼리 서로 Reversible mapping 관계여야 한다. 암호화된 문서가 복호시켰을때 2가지 이상의 것으로 바뀌는것은 올바르지 않다.

이런식으로 모든 암호에 1:1 맵핑을하면 너무많은 Encryption and Decryption Table for substitution생기게 된다,

그래서 나온것이 Shannon :  Substitution-Permutation Ciphers 방법이다.

한가지 Permutation을 여러번 Key와 함께 사용하는 것이다.


 i = {1,2,3,4} 여기서 S-box는 reversible 해야한다 무슨말이냐 암호화와 복호화 할때 같은 것을 가리켜야하다는 것이다.

위와같은 것을 In Shannon's S-P networks라 부른다. 최종형태는 다음과 같다.

Feistel Cipher Structure

  

한덩어리의 데이터를 절반으로 나누어서 연산한다.

장점 : Key순서만 지정해서 암호화와 복호화를 수행할 수 있다.
         Function Inverse를 사용하지 않았다. 그래서 양방향일 필요가 없다. 암호화할때 사용한 함수를 복호화 할때는 서로다른 
        수식을 바로 대입해서 사용하면 되기 때문에 역함수가 필요 없다. 그저 Function이 암호화(섞어주는기능)기능만 수행하면
        된다. (자세한내용은 다음에 나오는 수식을 통해 알아보도록한다)

특징 : 매 Round 반복후 마지막 Round뒤에는 위치를 서로 바꿔준다. (Encryption과 decryption 하기 위해)
         사용된 Key는 서로 비슷해도 되고 달라도 된다.

정리하면 다음과 같다.


 - Block size를 고려해야한다.(서로 절반씩 가져가야한다. 뒤에나올 DES에서는 32bits씩
   나눠 가졌다. 

- Key size를 고려해야한다. 1:1 Mapping이기 때문에 48bits인 키와 Block을 맞춰줘야한

  다.
- Number of rounds 라운드 수를 정해준다.
- Subkey generation algorithm Key를 만드는 알고리즘이 필요하다.
- Round function 섞어줄 수 있는 함수가 필요하다.

 

위의 그림과 위의 수식을 비교하면 일치하다는 것을 알 수있다.

여기서 필요한 기본상식은 Exclusive는 같은 연산을 하면 0이라는 점이다.


Data Encryption Standard(DES)

 이기술은 1977년 NBS에서 만들어졌다. 맨처음에는 암호화 시스템은 대부분 민간이아닌 군에서 사용되었던것이었다. 하지만 IBM의 

<Horst Feistel>

 Horst Feistel아저씨가 민간에서 암호화의 필요성을 느껴서 만들게 된다. 1971년 만들어진 방법은 이름하여 Lucifer cipher 였다.

 Lucifer cipher방법은 원래 128-bit key였다. 하지만 개발도중 NSA직원이 살짝(?) 바꾸어 표준으로 채택된 DES는 56-bit key를 사용한다. 이방법은 현재 2014년도에는 안전하지않지만 70년대 기준으로는 매우 안전한 방법이다.


 


 위그림에서 보면 Round1의 bit가 64bits라 나와있다. 절반으로 나누면 32bits가되는데 정작 key는 48bits이다. 이둘을 어떻게 연산할 것인가? 다음시간에 배우면 될 것 같다. 그리고 키는 56-bit인데 64-bit 라 써있다. 이것은 packet이라 하여 에러검출하는 packet인데 (컴퓨터통신때 배웠는데 자세한건 모르겟다,..)이부분을 제외하면 56-bits으로 변환된다. 다음시간에 배울 내용을 잠시 그림으로 보여주려한다.




- 사용된 모든 그림은 출처 : Cryptography & Network Security principles and Pracrice 5th - William Stallings 책에서 가져왔음을 밝힌다.

Comments