ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 혼돈과 확산, 대칭키 암호
    전공/컴퓨터보안 2020. 6. 4. 12:18

    혼돈과 확산

    2차 세계대전 이후 섀넌 할아버지는 암호학의 기본 원칙을 제시했다. '혼돈'과 '확산'이다.

    혼돈

    평문과 암호문의 상관 관계를 없애는 성질.

    평문의 문자를 다른 문자로 ‘치환’하는 행위라고 보면 된다.

    확산

    평문에서 나타나는 문자의 빈도수를 없애버리는 특성.

    평문의 문자 위치를 ‘이동’하는 행위라고 보면 된다.

    명칭과 뜻이 직접적으로 매칭이 안되서 헷갈린다.

    혼돈 => 치환, 확산 => 이동

    대칭키 암호

    암호화와 복호화시 필요한 키가 동일한 암호방식이 대칭키 암호다.

    대칭키 암호는 크게 스트림암호와 블록암호로 나뉜다.

    스트림암호

    스트림 암호는 일회성 암호의 성질을 계승한다.

    일회성 암호의 특징이 키의 양을 늘리는 방식이었다.

    스트림 암호는 그 양이 줄어들었을 뿐 키의 양을 늘리는 성질은 같다.

    (1)A5/1

    A5/1은 휴대폰에 사용된다. 즉 실시간 처리가 필수적인 속도가 중요시되는 암호다.

    그리고 스트림암호의 시초가 된 암호이기도 하다.

    당연하게도 그 시절에는 소프트웨어가 발달되어있지 않았었고, 자연스럽게 하드웨어로 작동을 했다.

    방식은 X,Y,Z 세 개의 시프트 레지스터들로 XOR 연산을 하여 64비트의 키를 만들었는데, 구체적으로 들어가지 않아도 될 듯하다.

    이러한 하드웨어 기반의 A5/1은 소프트웨어의 성능이 발달됨에 따라서 자연스럽게 도태된 암호다.

    (2) RC4

    A5/1이 하드웨어 기반이라 망했으니, RC4는 당연하게도 소프트웨어 기반의 암호이다.

    블록 암호

    블록 암호는 평문을 일정한 단위(블록)로 나누어 암호화시킨다.

    이렇게 일정한 길이로 자르려면 기준이 되는 블록 크기와 평문의 크기가 딱 맞아떨어져야하는데 이러한 경우는 드물다.

    이럴 때는 마지막 블록이 온전히 채워지도록 양을 늘린다.

    (1) 페이스텔 암호

    페이스텔 암호의 이름은 블록 암호의 선구자인 호스트 페이스텔의 이름에서 명명되었다.

    페이스텔 암호는 평문 P을 반으로 나누어 왼쪽과 오른쪽에 특정 함수와 XOR연산을 통해 암호화시킨다.

    오른쪽 반은 그대로 왼쪽 반이 되고,

    왼쪽 반은 함수 F를 거친 오른쪽 반과 XOR 연산을 통해 새로운 오른쪽의 반이 된다.

    따라서 함수F가 핵심 키가 된다고 할 수 있다.

    페이스텔의 특징은 암호화와 복호화의 방식이 동일해서 복호화는 암호화의 역순으로 진행하면 된다.

    (2) DES

    중요하다. DES(Data Encryption Standard)는 페이스텔을 사용한다.

    즉, 평문을 반으로 나누어 왼쪽반과 오른쪽반을 XOR연산을 한다.

    이때 XOR연산 과정이 페이스텔과 비교했을 때 단계가 더 복잡하다.

    132비트인 오른쪽 반을 확장순열을 이용해 48비트로 만들고 48비트인 서브키와 XOR연산을 한다.

    이후 S박스에서 32비트로 줄인다. 정확히 말하자면 6비트짜리 블록 8개를 4비트짜리 블록 8개로 나눈다.

    S박스는 행렬 형태로 존재하며 각각 다른 값을 띄고 있다.

    DES의 핵심은 S박스라고 할 수 있다.

    (3) 삼중 DES(3DES, Triple DES)

    이름부터 암호화의 표준이었던 DES도 시간이 지남에 따라 취약함이 드러났다.

    키 길이가 56비트로 짧다는 것이었다. 이를 보완하기 위해 키 길이를 2배로 만드는 이중DES를 만들었다.

    그러나 중간자 공격(meet-in-the-middle attack)에 의해 쉽게 break되었고, 이를 방지하기 위해 DES를 3번 한 3DES가 만들어진 것이다.

    삼중DES의 암호화, 복호화방식

    위의 공식을 보면 암호화 방식은 E -> D -> E 방식으로 되어 있고, 복호화 방식은 D -> E -> D 방식으로 구성되어 있다.

    각각을 E -> E -> E, D -> D -> D 방식으로 구성하지 않은 이유는 이렇게 구성하면 이중 DES가 풀리게 되었던 방식과 동일해지기 때문이다.

    (4) AES

    AES(Advanced Encryption Standard)는 키 길이가 짧아 전수 조사에 취약한 DES의 단점을 보완하기 위해 고안된 암호이다.

    AES는 블록 암호이지만 페이스텔 암호를 사용하지 않고 고난도의 수학적인 구조로 구성된 알고리즘을 가진다.

    특징은 아래와 같다.

    - 128, 192, 256 비트의 블록 크기 설정 가능

    - 회전의 수는 10~14회까지 변화되며, 각 회전은 4개의 함수로 구성된다.

    -- 비선형층(ByteSub) : DES의 S박스와 같은 역할

    -- 선형혼합층(ShiftRow) : 자리 바꾸기

    -- 비선형층(MixColumn)

    -- 키추가층(AddRoundKey) : XOR 연산

    '전공 > 컴퓨터보안' 카테고리의 다른 글

    합성 암호체계(hybrid cryptosystem)  (0) 2020.06.05
    공개키 암호 - 디피헬먼(DH)  (0) 2020.06.04
    공개키암호 - RSA  (0) 2020.06.04
    공개키암호 - 배낭암호  (0) 2020.06.04
    컴퓨터보안 개요  (0) 2020.06.04

    댓글

Designed by Tistory.