ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 대칭 암호 알고리즘
    school(3)/crypto protocol 2021. 4. 2. 15:52

    학교 PPT 참고

     

     

    대칭 암호의 필수 조건

    ●대칭암호의 필수 요건

     ▶강한 암호 알고리즘

     ▶안전한 비밀키 공유

     - 대칭 암호의 보안은 키의 비밀성에 의해서 지켜지는 것이지 알고리즘을 모르게 해서 지켜지는 것이 아니다(커코프 원칙)

     

    ●암호

     ▶평문을 암호문으로 전환하는 연산 유형

        -대체 : 값을 다른 것으로 바꾸는 것 (Substitution)

        -치환 : 요소의 순서를 재 조정 하는 것 (Transposition)

     ▶사용되는 키의 수

        -단일 키 

        -쌍키

     ▶평문 처리 방법

        -블록 암호

        -스트림 암호

     

    • 블록 함수의 구조

    블록함수 구조

     

    spn구조

     

     

     

    • Feistel 암호 구조 (암호화)

     

     

     

    • Feistel 암호 구조 (복호화)

     

     

    • 대칭블록암호 설계요소
      • 블록크기
      • 키 크기
      • 서브키 생성 알고리즘
      • 라운드 함수
      • 바른 소프트웨어 암호/복호
      • 용이한 해독

     

    대칭암호 알고리즘 예

    • 대칭 암호 알고리즘
      • DES
      • 3중 DES
      • AES
    • DES
      • 평문의 길이: 64비트
      • 키의 길이 : 64비트
      • 구조 : Feistal 네트워크의 변형
      • 라운드 수 : 16
      • 서브키 : 원해키로부터 16개의 48비트 서브키 생성, 각 라운드에서 사용
      • DES의 강도
        • 키 길이의 취약성
        • DES Cracker
        • 더 이상 사용하지 않
    • 3중 DES
      • 세 개의 키를 사용해 DES 알고리즘을 세 번 수행한다
      • 임호 - 복호 -암호(EDE => encrypt - decrypt - encrypt)순서로 수행
      • 암호화
        • C = E(K3 , D(K2, E(K1,P)))
          • C = 암호문
          • P  = 평문
          • E[K,X] = 키 K를 이횽해서 X를 암호화
          • D[K,Y] = 키 K를 이용해서 Y를 복호화
      • 복호화 
        • P = D(K1, E(K2,D(K3MC)))
      • 호환성
        • C = E(K1 ,D(K1 ,E(K1 ,P))) = E(K,P)

     

     

    • AES
      • 3DES가 속도가 느리다
      • 장기적 표준으로 부적합
      • NIST는 1997년에 3DES와 같거나 더 나은 강력한 보안성을 갖고 월등히 개선된 효율 적인 새로운 AES(Advanced Encryption Standard)를 공모
      • AES 선발 조건
        • 블록 길이가 128비트인 대칭 블록 암호화
        • 키의 길이는 128 192 256 비트를 지원
        • 평가 항목
          • 보안
          • 계산적 효율성
          • 메모리 요구량
          • 하드웨어와 소프트웨어적 적합성
          • 유연성
    • 레인달 (Rijndael)
      • 1차 심사 : 15개 선정
      • 2차 심사 : 5개 선정
      • 최종 선정
        • 레인달
          • NIST에서
          • 개발자 : 벨기에 암호학자
            • 요안 대믄
            • 빈슨트 레이믄
      • AES 알고리즘 개요
        • AES는 Feistal구조가 아님(SPN 구조)
        • 각 라운드에서 대치와 치환을 이용 데이터 블록 전체를 병렬 처리
        • 4가지 연산
          • 바이트 대체 (Substitute bytes)
          • 행 이동 (Shift rows)
          • 열 석기 (Mix columns)
          • 라운드 키 더하기 (Add round key)

    AES 암호화 복호화

     

     

     

    AES 암호화 라운드

     

    스트림 암호

     

    스트림 암호화 RC4

    스트림 암호 구조

     

    스트림 암호 다이어그램

    • 스트림 암호 설계시 주의사항
      • 주기가 긴 암호열
      • 진성랜덤넘버 특성에 근사한 키 스트림
      • 충분히 긴 키의 길이

    펜티엄 2에서 대칭암호 속도 비교

     

    • RC4
      • 론 리베스트가 1987년에 RSA Security에서 설계한 스트림 암호
      • 바이트 단위로 작동
      • 다양한 크기의 키 사용
      • 랜텀 치환 기법 사용
      • 응용
        • SSL/TSL
        • WEP
        • WPA

     

    초기화
    복호화

     

    • RC4의 강도
      • RC4에 대한 실제적 공격 어려움
      • RC4에 입력으로 사용되는 키의 생성 방법에 문제

     

     

     

    암호 블록 운용 모드

    • 5가지 운용 모드
      • ECB
        • 가장 단순한 모드로 블록단위로 순차적으로 암호화 하는 구조
        • 한개의 블록만 해독되면 나머지 블록도 해독되는 단점
        • 암호문이 블록의 배수가 되기 때문에 복호화 후 평문을 할기 위해서 Padding을 해야댐
        • error propagation : 각 블록이 독립적으로 동작하므로 한블록에서 에러가 난다고 해도 다른 블록에 영향을 주지 않음, 해당 블록까지 에러 전파
      • CBC
        • 블록 암호화 운영 모드 중 보안성이 제일 높은 암호화 방법으로 가장 많이 사용
        • 평문의 각 블록은 XOR연산을 통해 이전 암호문과 연산되고 첫번쨰 암호문에 대해서는 IV가 암호문 대신 사용, 이 때 IV는 제 2의 키가 될 수 있음
        • 암호문이 블록의 배수가 되기 떄문에 복호화 후 평문을 얻기 위해서 Padding을 해야함
        • 암호화가 병렬처리가 아닌 순차적으로 수행되어야 함.
        • error propagation : 깨진 암호문의 해당블록과 다음블록의 평문까지 영향을 끼침
      • CFB
        • 블록 암호화를 스트림 암호화처럼 구성해 평문과 암호문의 길이가 같음 (패딩이 필요 없음)
        • 최초의 키 생성 버퍼로 IV가 사용되며 , 이때 IV는 제 2의 키가 될 수있음
        • 스트림의 기본단위 bit단위로 설정할 수 있으며, bit단위에 따라 CFB8~CFB128로 쓰임
        • 암호화 복호화 모두 암호화로만 처리할 수 있음
        • CBC모드와 마찬가지로 암화는 순차적이고, 복호화는 병렬적으로 처리할 수 있음
        • error propagation : CBC모드와 마찬가지로 한 암호문블럭의 에러는 해당 평문블록과 다음 평문블록, 이렇게 총 2개의 블록에 전파됨
      • OFB
        • 블록 암호화를 스트림 암호화처럼 구성에 평문과 암호문의 길이가 같음
        • 암호화 하는 키 생성에만 사용되며, 암호화 방법과 복호화 방법이 동일해 암호문을 한번 더 암호화하면 평문이 나옴 
        • 최초의 키 새성 버퍼로 IV가 사용되며, 이 때 IV는 제2의 키가 될 수있음
        • 스트림 기본 단위를 BIT단위로 설정할 수 있으며, BIT단위에 따라 OFB8~OFB128로 쓰임
        • error propagation : 해당 블록까지만 대응되는 한 블록에만 영향을 미치므로, 영상이나 음성같은 digitized analog신호에 많이 사용됨
      • CTR
        • 블록 암호화할 때마다 1씩 증가해 가는 카운터를 암호화 해서 키 스트림을 만듦. 즉 카운터를 암호화한 비트열과 평문블록과의 xor를 취한 결과가 암호문 블록이 됨
        • CTR모드는 OFB와 같은 스트림 암호의 일종
        • CTR모드의 암호화는 완전히 같은 구조가 되므로 구현이 간단함

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

Designed by Tistory.