hexadecimal number r

Document Sample
hexadecimal number r Powered By Docstoc
					블록 암호(Block cipher)




     Chapter 3 Symmetric Key Crypto
                                      1
블록 암호
   평문가 암호문은 고정된 길이의 블록으로 구성된다.
   설계 목표: 보안과 효율성
       하지만 두 가지 목표를 만족하는 블록 암호 방식을 찾는 것
        은 쉽지 않다.




               Chapter 3 Symmetric Key Crypto
                                                2
(반복) 블록 암호
   암호문은 평문에 반
    복되는 회전 함수
    (round function)를
    적용하여 생성
   회전 함수의 입력은
    키와 이전 단계의 회
    전 함수의 결과이다.
   항상 소프트웨어로
    구현된다.
   전형적인 형태가
    Feistel Cipher이다.
                Chapter 3 Symmetric Key Crypto
                                                 3
페이스텔 암호(Feistel Cipher)
   Feistel cipher는 블록 암호를 설계하는 한 형태이
    다. (블록 암호 자체가 아니다.)
   평문의 블록을 좌우 반쪽으로 나눈다:
       Plaintext = (L0,R0)
   각 단계(i=1,2,...,n) 다음과 같이 계산한다.
            Li= Ri1
            Ri= Li1  F(Ri1,Ki)
    여기서 F는 회전 함수, K는 서브키(subkey)
    최종 암호문 = (Ln,Rn)

                      Chapter 3 Symmetric Key Crypto
                                                       4
페이스텔 암호
   복호화: 암호문 = (Ln,Rn)
   각 단계(i=n,n1,…,1)에서 다음과 같이 계산한다.,
           Ri1 = Li
           Li1 = Ri  F(Ri1,Ki)
    여기서 F는 회전 함수, Ki는 서브키
   평문 = (L0,R0)
   이 방식은 어떤 함수 F에서도 적용된다.
   하지만 함수 F는 안전한(secure) 함수이어야 한다.
       예: 모든 Ri-1와 Ki 에 대새서 F(Ri-1, Ki) = 0 인 함수는 안전
        하지 않다.

                   Chapter 3 Symmetric Key Crypto
                                                    5
Data Encryption Standard
         (DES)




       Chapter 3 Symmetric Key Crypto
                                        6
DES
   1970년대에 개발
   IBM Lucifer cipher에 기반을 둠
   U.S. 정부 표준
   DES 개발에는 논란이 있었다.
       NSA가 비밀리에 개입됨
       개발 단계가 공개되지 않음
       키 길이가 축소됨
       Lucifer 알고리즘을 약간 변경


               Chapter 3 Symmetric Key Crypto
                                                7
National Security Agency/
Central Security Service




         Chapter 3 Symmetric Key Crypto
                                          8
DES
   DES는 페이스텔 암호 체계를 따른다.
       블록 길이 : 64 bits
       키 길이 : 56 bits
       16 단계(round)
       매 단계에서 48 bit의 키를 사용(subkey)
   매 단계의 절차는 간단하다. (for a block cipher)
   안전성은 주로 “S-boxes”에 달려 있다.
       각 S-boxe는 6 bit를 4 bit로 매핑한다.
       총 8개의 S-boxes



                  Chapter 3 Symmetric Key Crypto
                                                   9
One Round of DES
   L           R                                         key
  32               32                           28                28

                                                L                 R
            expand
                                                      28     28
                   48
                               48
                                                     Compress
                   48

           S-boxes(8)
                32                         28                          28


             P Box
                   32

   32              32

       L       R                                           key

                        Chapter 3 Symmetric Key Crypto
                                                                            10
DES 확장 순열(Expand permutation)

        Input 32 bits
     0     1    2    3    4     5     6    7     8     9       10   11   12   13   14   15
 16       17   18   19   20   21    22    23    24    25       26   27   28   29   30   31



        Output 48 bits
 31        0    1    2    3     4     3    4     5     6        7    8
     7     8    9   10   11   12     11   12    13    14       15   16
 15       16   17   18   19   20    19    20    21    22       23   24
 23       24   25   26   27   28    27    28    29    30       31    0


                              Chapter 3 Symmetric Key Crypto
                                                                                         11
    DES S-box (치환 박스)
            8개의 치환 박스(substitution boxes)
            각각의 S-box는 6 bit를 4 bit로 매핑한다.
            첫번째 S-box의 매핑
input bits (0,5)
                                   input bits (1,2,3,4)

    00        00   00   00   01    01     01    01    10    10     10   10   11   11   11   11
    00        01   10   11   00    01     10    11    00    01     10   11   00   01   10   11
0   11        01   11   00   00     11    10   10     00    10     01   11   01   10   00   01
0   10        00   01   01   10     11    11   00     11    10     10   00   01   01   00   11
0   00        11   01   01   11    00     11   00     10    01     11   10   10   01   00   10
1   00        11   11   00   10    10     01   01     10    10     00   11   01   01   11   00
1   01        11   11   10   11    01    00     10    11    11     10   01   00   10   01   00
0   00        01   10   00   01    10    10     11    11    00     01   11   11   10   01   00
1       11    11   10   00   01    10    00     01    01    10     00   11   10   00   01   11
1       11    00   00   10   00    01    01     11    11    11     11   10   10   00   10   01

                                  Chapter 3 Symmetric Key Crypto
                                                                                            12
DES P-box (순열 박스)
    Input 32 bits
0        1       2    3    4     5     6     7     8     9       10   11   12   13   14   15

16       17      18   19   20   21    22    23    24    25       26   27   28   29   30   31



    Output 32 bits
15           6   19   20   28    11   27     16     0    14      22   25   4    17   30    9

     1       7   23   13   31   26      2     8    18    12      29    5   21   10    3   24




                                Chapter 3 Symmetric Key Crypto
                                                                                           13
DES 서브키(Subkey)
   56 bit DES key : (0,1,2,…,55)
   Left half key bits, LK
    49   42   35   28     21     14        7
     0   50   43   36     29     22       15
     8    1   51   44     37     30       23
    16    9    2   52     45     38       31

                                         Right half key bits, RK
                                          55   48        41   34   27   20   13
                                           6   54        47   40   33   26   19
                                          12    5        53   46   39   32   25
                                          18   11         4   24   17   10    3

                        Chapter 3 Symmetric Key Crypto
                                                                                  14
DES 서브키(Subkey)
   For rounds i=1,2,...,16
     Let LK = (LK circular shift left by ri)
     Let RK = (RK circular shift left by ri)
     Left half of subkey Ki(24bits)는 다음과 같은
      LK 비트들로 구성된다.
         13 16 10 23 0 4 2 27 14 5 20 9
         22 18 11 3 25 7 15 6 26 19 12 1
       Right half of subkey Ki(24bits)는 다음과 같은
        RK 비트들로 구성된다.
         12 23 2 8 18 26 1 11 22 16 4 19
         15 20 10 27 5 24 17 13 21 7 0 3

                     Chapter 3 Symmetric Key Crypto
                                                      15
DES 서브키(Subkey)
   단계 1, 2, 9, 16에서 shift ri = 1, 그리고 나머지
    단계에서는 ri = 2
   LK의 비트 8,17,21,24는 매 단계에서 생략된다.
   RK의 비트 6,9,14,25는 매 단계에서 생략된다.
   Compression permutation은 LK와 RK의 56비
    트 중에서 48비트의 서브키를 생성해 낸다.
   Key schedule은 서브키를 생성한다.


               Chapter 3 Symmetric Key Crypto
                                                16
마지막으로 DES에 대해서
   첫 단계 전에 초기 순열 P를 수행한다.
   마지막 단계에서 좌우측 반쪽을 교환한다.
   암호문을 생성하기 위해서 (R16,L16)에 마
    지막 순열 (inverse of P)을 적용한다.
   이러한 것은 보안과는 상관이 없다.




            Chapter 3 Symmetric Key Crypto
                                             17
DES의 안전성(security)
   DES의 안전성은 대부분 S-boxes에 달려 있다.
       S-box를 제외한 다른 것들은 선형(linear)
   30년 동안의 치밀한 분석 결과 DES에 “뒷 문
    (back door)”은 없는 것으로 밝혀졌다.
   공격은 exhaustive key search를 사용한다.
   결론
       DES의 설계자들은 그들이 무엇을 하는지를 알았고
       그들의 시대에 훨씬 앞서 있었다.

                Chapter 3 Symmetric Key Crypto
                                                 18
  Exhaustive Key Search 시간

Key      가능한 키의 수        실행 시간                 실행 시간
size                     (만약 1 encypt/us)      (만약 10 encypt/us)
(bits)
32       232=4.3X109     231us=35.8 min        2.15 ms
56       256=7.2X1016    255 us=1142 yrs       10.01 hrs
128      2128=4.3X1038   2127 us=5.4X1024 yr   5.4X1018 yrs
168      2168=4.3X1050   2167 us=5.9X1036 yr   5.9X1030 yr
블록 기호 표기법
   P = 평문 블록
   C = 암호문 블록
   암호문 C를 얻기 위해서 평문 P를 키 K를 사용하여
    암호화한다.
     C = E(P, K)
   평문 P를 얻기 위해서 암호문 C를 키 K를 사용하여
    복호화한다.
     P = D(C, K)
   주목!
     P = D(E(P, K), K) and C = E(D(C, K), K)


               Chapter 3 Symmetric Key Crypto
                                                20
    Double DES
   DES의 키는 오늘날 적절하지 않다.
   확실한 방법은 DES의 키를 확장하는 것이다:
    “double DES”
   C = E(E(P,K),K) ?
       문제: 여전히 56 bit 키를 사용하는 것과 같다.
   C = E(E(P,K1),K2) ?
       DES를 사용하는 것과 같이 만드는 공격이 있을 수 있다.
       비록 이 공격이 비현실적이기는 하지만 실제로 일어날
        수 있는 가능성이 전혀 없는 것은 아니다.

                   Chapter 3 Symmetric Key Crypto
                                                    21
Double DES 공격(1)
   C = E(E(P,K1),K2) 공격: 선택 평문 공격
       특정 P에 대해서, 모든 가능한 키 K에 대해서 테이
        블 E(P,K)를 사전에 계산한다.(이 테이블은 256 항목
        을 갖는다.)
           테이블 항목 < C= E(P,K), K >
           C는 선택된 P에 대응하는 암호문
       그리고 위에서 사용한 P에 대응되는 C를 사용하여,
        가능한 모든 K2에 대해서, 테이블에 맞는 값이 나올
        때까지 D(C,K2)을 계산한다.
           여기서, P = D(C,K2) → E(P,K2) = E(D(C,K2), K2) = C, 즉,
            D(C,K2)는 테이블에 있어야 한다.

                       Chapter 3 Symmetric Key Crypto
                                                                  22
Double DES 공격(2)
       매치되는 값이 발견되면, E(P,K1) = D(C,K2)
       따라서 C = E(E(P,K1),K2)
       결론적으로 K1과 K2를 찾아내었고 C는 복호화되었
        다.
   사전에 테이블을 만드는 일을 무시하면, 이 작
    업은 테이블에 매치되는 값을 찾을 때까지
    D(C,K)을 계산하는 것이다.
   이것은 255 탐색이 요구된다.
       single DES의 exhausted key search 시간과 같다.
   따라서, double DES는 안전하지 않다.
                  Chapter 3 Symmetric Key Crypto
                                                   23
Triple DES
   논리적 접근 방법은
    triple DES
       키를 3배로 한다.


   하지만 실제로, Triple DES는
       C = E(D(E(P,K1),K2),K1)
       P = D(E(D(C,K1),K2),K1)
       실제 키의 크기는 112 bit이다.

                Chapter 3 Symmetric Key Crypto
                                                 24
Triple DES
   왜 2개의 키를 사용하여 Encrypt-Decrypt-
    Encrypt (EDE)으로 암호화하는가? (왜 3개의 키
    를 사용하여 EEE로 하지 않는가?)
       Single DES와의 Backward compatible를 위해서
       If K1=K2=K then E(D(E(P,K),K),K) = E(P,K)
       And 키의 길이는 112 bits이면 충분히 안전하다.
   오늘날 3DES는 널리 사용되고 있으나, AES의 등
    장으로 3DES는 시간이 지날수록 사라져 갈 것이
    다.


                    Chapter 3 Symmetric Key Crypto
                                                     25
Advanced Encryption STD
         (AES)




       Chapter 3 Symmetric Key Crypto
                                        26
AES 역사(1)
   DES를 대체할 암호 방식이 필요
       DES는 이미 과거의 유물이 됨
           exhaustive key search에 안전하지 않음: 특수 목적의 DES 크랙
            커와 인터넷에서 분산 계산 공격
       3DES는 공격에는 안전하나 하지만,
           효율적인 소프트웨어 코드가 없다.
           너무 속도가 느리다: DES를 3번 해야 된다.
           64-bit 블록 크기: 효율과 안전을 위해서 더 큰 블록 크기가 필요
           그래서, 3DES는 장기적으로 해결책이 되지 못함
   1997년, NIST는 공식적으로 발전된 암호 알고리즘표준
    을 정하기 위해서 공모를 하였다.

                     Chapter 3 Symmetric Key Crypto
                                                       27
AES 역사(2)
   목표: 정부와 민간 부문에서 사용할 DES를 대체할 수
    있는 알고리즘을 찾음
   AES 요구사항
       저작권 없이 전세계에서 사용할 수 있도록 비밀없는
        (unclassified), 공개된 암호화 알고리즘
       알고리즘은 반드시 대칭키(symmetric key) 방식이어야 함
       블록 암호 방식과 블록 크기는 최소한 128 비트, 키 크기는
        128- , 192-, 그리고 256 비트
   1998년 NIST 15개의 AES 후보 알고리즘을 발표



                 Chapter 3 Symmetric Key Crypto
                                                  28
AES 역사(3)
   AES를 선택하는 기준:
       안전성, 견고성(Robustness), 속도
   1999년 15개 중에서 5개로 후보를 좁혔다.
       MARS, RC6, Rijndael, Serpent, and Twofish.
   5개의 알고리즘 모두 안전한 것으로 인정받았다.
   2000년 10월 2일 NIST는 Rijndael 을 선정 발표
       Joan Daemen과 Vincent Rijmen이 만듦




                      Chapter 3 Symmetric Key Crypto
                                                       29
AES 특징(1)
   다양한 플랫폼에서 사용할 수 있으며 소프
    트웨어와 하드웨어에서 효율적으로 동작할
    수 있도록 설계
   페이스텔 암호 형태가 아님
       반복적인 블록 암호 (DES와 같음)
       페이스텔 암호 형태가 아님(DES와 다름)
       “Secure forever” – Shamir


                 Chapter 3 Symmetric Key Crypto
                                                  30
AES 특징(2)
   제안된 Rijndael
       가변의 블록 크기 : 128,192, 256-bits,
       가변의 키 크기 : 128-, 192-, or 256-bits.
       가변의 반복 단계(round) : (10, 12, 14):
           10 if B = K = 128 bits
           12 if either B or K= 192 and the other≤ 192
           14 if either B or K = 256 bits
   그러나 주목할 점은 AES의 블록 크기는
    128-bit.
                      Chapter 3 Symmetric Key Crypto
                                                          31
AES 개요(1)
   정의: State→ 4X4 array of bytes
       128 bits = 16 bytes
   가변의 rounds (10, 12, 14):
       10 if K = 128 bits
       12 if K = 192 bites
       14 if K = 256 bits
   각 round에서 128-bit round key 사용
       128 bits = 16 bytes = 4 words
       Nr rounds에 대해서 Nr+1 round key가 필요
           10 rounds, 128-bit 키에 대해서 44 words 필요
                    Chapter 3 Symmetric Key Crypto
                                                     32
AES 개요(2)
   각 round는 4개의 함수 사용 (3 “계층”)
       4 함수: 1 순열과 3 치환
       3 계층: 선형, 비선형, 키 덧셈
   순열(Permutation)
       선형 혼합 계층: ShiftRow (State)
   치환(Substitution)
       비선형 계층: ByteSub (State, S-box)
       비선형 계층: MixColumn (State)
       키 덧셈 계층: AddRoundKey (State, KeyNr)

                  Chapter 3 Symmetric Key Crypto
                                                   33
AES: High-Level Description
   State: 4 X 4 바이트 행렬: 128 bits = 16 bytes

       State = X
       AddRoundKey(State, Key0)                    (op1)
       for r = 1 to Nr - 1
            SubBytes(State, S-box)                 (op2)
            ShiftRows(State)                       (op3)
            MixColumns(State)                      (op4)
            AddRoundKey(State, KeyNr)
       endfor
       SubBytes(State, S-box)
       ShiftRows(State)
       AddRoundKey(State, KeyNr)
       Y = State

                  Chapter 3 Symmetric Key Crypto
                                                           34
AES AddRoundKey

   서브키와 블록을
    XOR: 128-bits
    블록으로 가정


   RoundKey (subkey)
    는 key schedule
    알고리즘에 의해서
    결정
   AES key schedule
    알고리즘의 설명은
    생략
                 Chapter 3 Symmetric Key Crypto
                                                  35
AES BytesSub
   Assume 128 bit block, 즉 4ⅹ4 bytes




   ByteSub은 AES의 “S-box”
   두 수학적 연산의 비선형(nonlinear) (하지만
    invertible) 결합
                Chapter 3 Symmetric Key Crypto
                                                 36
AES BytesSub
   비선형 S-Box (각각의 바이트에 독립적으
    로)를 사용한 바이트 치환
   S-box는 16x16 array로 표현, 열과 행은 16
    진수 비트로 인덱스된다.
   8 bits는 다음과 같이 대체된다.:
       8 bits : hexadecimal number (r,c),
       그러면 (sr,sc) = binary(Sbox(r, c))



                   Chapter 3 Symmetric Key Crypto
                                                    37
AES “S-box”
   예: 16진수 53 은 ED로 대체된다.
                 Last 4 bits of input




    First 4
    bits of
    input




              Chapter 3 Symmetric Key Crypto
                                               38
AES ShiftRow
   Cyclic shift rows




                Chapter 3 Symmetric Key Crypto
                                                 39
AES MixColumn
   각 행에 적용되는 비선형, 역가능 연산




   (커다란)lookup table로 구현된다.
             Chapter 3 Symmetric Key Crypto
                                              40
AES 복호화
   복호화를 위해서 절차는 반드시 역가능
    (invertible)해야 한다.
       AddRoundKey의 역은 용이:  는 자신이
        역(inverse)이다.
       MixColumn는 역가능하다 : 역(inverse)도
        lookup table로 구현 가능
       ShiftRow의 역은 용이: 다른 방향으로
        cyclic shift하면 된다.
       ByteSub도 역가능: 역(inverse)도 역시
        lookup table로 구현 가능
                Chapter 3 Symmetric Key Crypto
                                                 41
다른 블록 암호들


                            IDEA
                            Blowfish
                            RC6
                            TEA


      Chapter 3 Symmetric Key Crypto
                                        42
IDEA
   International Data Encryption Alg
       Xuejia Lai (學嘉來)와 James Massey이 만듦
       Pretty Good Privacy(PGP) V2.0에서 사용
   특징
       IDEA은 mixed-mode arithmetic을 사용
            IDEA가 가장 처음으로 이 방법을 사용
            이 방법은 오늘날 자주 사용되고 있다.
       64-bit 블록, 128-bit 키
       8 rounds, 16-bit 수에 대해서 연산


                   Chapter 3 Symmetric Key Crypto
                                                    43
IDEA
mixed-mode arithmetic
   Bitwise eXclusive OR
       (파란 ⊕로 표시)
   Addition modulo 216
       (초록으로 표시 )
   Multiplication modulo 216+1,
    여기서 모든 zero word
    (0x0000) 는 216으로 표현
       (빨간색으로 표시 )



                   Chapter 3 Symmetric Key Crypto
                                                    44
Blowfish
   Bruce Schneier에 의해 만들어짐
   특징
       블록 길이: 64-bit
       키의 길이는 가변, 448 bits까지 가능
       속도가 빠르다.
       소형: 메모리 5K 미만에서 구현 가능
       간단: 단순한 구조
       안전성은 키의 길이에 달려 있음
       키에 따른 S-boxes
           S-boxes는 키에 의해 결정된다.
                    Chapter 3 Symmetric Key Crypto
                                                     45
Blowfish
   거의 페이스텔 암호
    형태에 가깝다.
        Ri = Li1  Ki
        Li = Ri1  F(Li1  Ki)
   round function F는 4
    S-boxes
       각 S-box는 8 bits를 32                               Where Pi: round key
        bits로 매핑한다.
   키에 따른 S-boxes
       S-boxes는 키에 의해
        결정된다.


                         Chapter 3 Symmetric Key Crypto
                                                                                46
RC6
   Ron Rivest가 만든 암호들
       공개키 암호: RSA, 블록 암호: RC6
       스트림 암호: RC4, 해쉬 함수: MD5,
   특징
       가변
         블록 크기, 키 크기, round의 수

       대단히 빠르고, 간단 명료한 설계
       AES의 최종 후보
       데이터에 따른 순환(rotation) 사용
         알고리즘의 일부로서 데이터를 사용하는 것은 흔치 않다.



                 Chapter 3 Symmetric Key Crypto
                                                  47
Tiny Encryption Algorithm
   David Wheeler가 만듦
   특징
       64 bit 블록, 128 bit 키
       32-bit 연산을 가정
           32-bit 컴퓨터를 목표로 함
           modulo 232에 기초한 연산
       Round의 수는 가변
           32 round이면 안전하다고 간주
       약한 round 함수를 사용하기 때문에, 많은 round의
        수가 필요하다.


                    Chapter 3 Symmetric Key Crypto
                                                     48
Tiny Encryption Algorithm
   각 round 함수의 복잡성과 round 수 간의
    타협(Trade off)
       DES: 이 둘 사이에 균형을 추구 (16)
       AES: round 수를 줄이고 더 복잡한 round 함수
        를 사용 (10,12,14)
   TEA: 간단한 round 함수, 하지만 많은
    round의 수
       32는 안전한다고 간주함


                Chapter 3 Symmetric Key Crypto
                                                 49
TEA Encryption
32 rounds:
(<<: L shift,   >> R shift)

    (K[0],K[1],K[2],K[3]) = 128 bit key
    (L,R) = plaintext (64-bit block)
    delta = 0x9e3779b9
    sum = 0
    for i = 1 to 32
        sum = sum+delta
        L = L + ((R<<4)+K[0])^(R+sum)
             ^((R>>5)+K[1])
        R = R + ((L<<4)+K[2])^(L+sum)
            ^((L>>5)+K[3])
    next i
    ciphertext = (L,R)




                              Chapter 3 Symmetric Key Crypto
                                                               50
TEA 요약
   거의 페이스텔 암호
        (XOR) 대신에 +와 –를 사용
       암호화와 복호화 절차를 분리시킬 필요가 있다.
   단순, 구현이 용이, 속도가 빠르고 적은 메
    모리를 요구한다.
   연관있는 키 공격(related key attack)의
    가능성이 있음
       만약 암호해석자가 두 개의 메시지가 서로 연관이
        있는 키로 암호화된 것을 안다면 평문을 복원할 수
        있다.

               Chapter 3 Symmetric Key Crypto
                                                51
TEA 요약
   eXtended TEA (XTEA)
       연관있는 키 공격의 가능성을 없앤다.
       약간 더 복잡
   Simplified TEA (STEA)
       암호해석가들이 사용하는 불안전한 TEA




              Chapter 3 Symmetric Key Crypto
                                               52
Block Cipher Modes




     Chapter 3 Symmetric Key Crypto
                                      53
여러 블록으로 구성된 메시지

   여러 개의 블록으로 구성된 메시지를 어떻게
    암호화할 것인가?
       각 블록 마다 다른 키를 사용할 것인가?
       각 블록을 독립적으로 암호화할 것인가?
       현재 블록의 암호화는 이전 블록과 연관(chain)을 갖
        도록 하면 어떨까?
       블록으로 채워지지 않을 경우 어떻게 할 것인가?



               Chapter 3 Symmetric Key Crypto
                                                54
동작 모드(Modes of Operation)
   다수의 블록을 암호화는 방법 (modes of
    operation) 들 중 다음의 세 가지 방법에 대해서 논
    의한다.
       Electronic Codebook (ECB) mode
           Obvious thing to do
           각 블록을 독립적으로 암호화한다.
           하지만 심각한 문제점이 존재한다.
       Cipher Block Chaining (CBC) mode
           블록들을 연결하여 암호화한다.
           ECB보다 훨씬 안전하고 실질적으로 별도의 작업을 요구하지
            않는다.
       Counter Mode (CTR) mode
           스트림 암호와 같이 동작
           랜덤 액세스 경우 주로 사용된다.

                     Chapter 3 Symmetric Key Crypto
                                                      55
ECB(Electronic Codebook) Mode
   표기법: C=E(P,K)
   주어진 평문: P0, P1, …, Pm, …
   블록 암호를 사용하는 간단 명료한 방법
    암호화                             복호화
    C0 = E(P0, K),                  P0 = D(C0, K),
    C1 = E(P1, K),                  P1 = D(C1, K),
    C2 = E(P2, K),…                 P2 = D(C2, K),…
   고정된 키(K)를 갖고, 전자 코드북을 만드는 방법
    이다.
   새로운 키에 대해서 새로운 코드북이 만들어진다.
                      Chapter 3 Symmetric Key Crypto
                                                       56
ECB Mode




           Chapter 3 Symmetric Key Crypto
                                            57
ECB 복사-붙여쓰기(Cut and Paste)
공격
   평문이 다음과 같다고 하자.
        “Alice digs Bob. Trudy digs Tom.”
   64-bit 블록을 사용한다고 가정하자:
    P0 = “Alice di”, P1 = “gs Bob. ”,
    P2 = “Trudy di”, P3 = “gs Tom. ”
   암호문: C0, C1, C2, C3
   Trudy가 다음과 같이 복사-붙여넣기 공격을 했다:
    C0, C3, C2, C1
   그러면 복호화된 평문은 다음과 같다.
        “Alice digs Tom. Trudy digs Bob.”
               Chapter 3 Symmetric Key Crypto
                                                58
ECB의 약점
   Pi = Pj라고 하자.
   그러면 Ci = Cj이 되고 Trudy는 Pi = Pj임을 알
    수 있다.
   이것은 Trudy가 Pi 혹은 Pj 를 모른다고 하더
    라도 약간의 정보를 알려주는 셈이다.
       공격자에게 암호해석을 위해서 공짜로 어떤 정보
        도 제공해서는 안 된다.
   Trudy는 Pi을 알고 있을지도 모른다.
   이것이 심각한 문제일까? -> 다음의 슬라이드
              Chapter 3 Symmetric Key Crypto
                                               59
ECB 모드로 암호화된 Alice
   Alice’의 압축되지 않은 이미지를 ECB (TEA)를 사용하
    여 암호화하였다.




   어떻게 이렇게 되었는가?
     동일한 평문의 블록  동일한 암호문!
   해결책은??? -> 다음 슬라이드
             Chapter 3 Symmetric Key Crypto
                                              60
Cipher Block Chaining(CBC) Mode

   블록은 체인(chain)처럼 연결된다.
   랜덤 초기 벡터(random initialization vector),
    IV가 CBC 모드를 초기화하기 위해서 요구된다.
   IV는 랜덤, 하지만 비밀일 필요는 없다.
    암호화                복호화
    C0 = E(IV  P0, K),                        P0 = IV  D(C0, K),
    C1 = E(C0  P1, K),                        P1 = C0  D(C1, K),
    C2 = E(C1  P2, K),…                       P2 = C1  D(C2, K),…



                      Chapter 3 Symmetric Key Crypto
                                                                      61
CBC 모드




   약점
       암호화가 순차적으로 이루어진다. (즉, 병렬화를 할 수 없다.),
       메시지는 블록 크기에 맞추어져야 한다.(블록 크기에 맞지 않
        을 경우 padding 필요)

                Chapter 3 Symmetric Key Crypto
                                                 62
CBC 모드
   동일한 평문 블록은 다른 암호문 블록을 만들어 낸다.
   복사와 붙여넣기(Cut and paste) 공격은 여전히 가능하
    다. 하지만 훨씬 복잡하다.(and will cause garbles)
   만약 C1이 오류가 발생하였다면, 즉, C1가 G가 되었다면,
    P1  C0  D(G, K), P2  G  D(C2, K)
   하지만 P3 = C2  D(C3, K), P4 = C3  D(C4, K),…
   오류로부터 자동적으로 복원할 수 있다!




                   Chapter 3 Symmetric Key Crypto
                                                    63
CBC 모드로 암호화된 Alice
   Alice’의 압축되지 않은 이미지를 CBC (TEA)를 사
    용하여 암호화하였다.




   왜 이렇게 되었는가?
     동일한 평문일지라도 다른 암호문을 만들어낸다!


              Chapter 3 Symmetric Key Crypto
                                               64
Counter (CTR) 모드
   CTR은 랜덤 엑세스에서 주로 사용된다.

    암호화                                      복호화
    C0 = P0  E(IV, K),                       P0 = C0  E(IV, K),
    C1 = P1  E(IV+1, K),                     P1 = C1  E(IV+1, K),
    C2 = P2  E(IV+2, K),…                    P2 = C2  E(IV+2, K),…


   EBC도 랜덤 액세스에서 사용할 수 있다!!!


                     Chapter 3 Symmetric Key Crypto
                                                                       65
Counter (CTR) Mode




        Chapter 3 Symmetric Key Crypto
                                         66
대칭키 암호화와 무결성
   (Integrity)




    Chapter 3 Symmetric Key Crypto
                                     67
데이터 무결성(Data Integrity)
   무결성
       허락받지 않은 데이터의 변경을 금지한다(적어도 변
        경된 것을 발견할 수 있도록 한다).
   예: 은행간에 계좌 이체
       기밀성도 중요하지만 무결성이 절대적으로 요구된
        다.
   암호화는 기밀성을 보장한다.
   암호화 자체로는 무결정을 보장해 주지 못한다.

              Chapter 3 Symmetric Key Crypto
                                               68
MAC
   Message Authentication Code (MAC)
       데이터의 무결성을 위해서 사용된다.
   MAC은 CBC residue로 계산된다.
       CBC 모드로 암호화하고 마지막 암호문 블록이
        MAC이 된다.




              Chapter 3 Symmetric Key Crypto
                                               69
MAC 계산
   MAC 계산 (메시지가 N개의 블록으로 구성되었다
    고 가정)
    C0 = E(IV  P0, K),
    C1 = E(C0  P1, K),
    C2 = E(C1  P2, K), …,
    CN1 = E(CN2  PN1, K) = MAC

   MAC은 평문과 같이 전송된다.
   수신자는 동일한 계산을 수행하여 CN-1을 구하고,
    이것을 송신자가 보낸 MAC과 비교한다.
       수신자는 반드시 키 K를 알아야 한다.


                          Chapter 3 Symmetric Key Crypto
                                                           70
어떻게 MAC은 무결성을 보장하나?
   Alice는 4개의 평문 블록을 갖고 있다고 하자.
   Alice는 다음과 같이 계산한다.
    C0 = E(IVP0,K), C1 = E(C0P1,K),
    C2 = E(C1P2,K), C3 = E(C2P3,K) = MAC
   Alice는 IV,P0,P1,P2,P3와 MAC을 Bob에게 보
    낸다.
   만약 Trudy가 P1을 X로 바꾸었다고 하자.
   Bob은 다음과 같이 계산한다.
    C0 = E(IVP0,K), C1 = E(C0X,K),
    C2 = E(C1P2,K), C3 = E(C2P3,K) = MAC  MAC
                     Chapter 3 Symmetric Key Crypto
                                                      71
어떻게 MAC은 무결성을 보장하나?
   에러는 MAC에 전파된다.(CBC 복호화와 다르
    다.)
       앞에서 CBC 복호화에서는
           If C1 is garbled to, say, G then
            P1  C0  D(G, K), P2  G  D(C2, K)
           But P3 = C2  D(C3, K), P4 = C3  D(C4, K),…
       MAC의 계산에서는
           C0 = E(IVP0,K), C1 = E(C0X,K),
            C2 = E(C1P2,K), C3 = E(C2P3,K) = MAC  MAC

   Trudy는 키 K를 모르면 MAC 값을 변경할 수
    없다.
                          Chapter 3 Symmetric Key Crypto
                                                           72
기밀성과 무결성
   암호화와 MAC을 만드는 키를 별도로 사용
    한다.
   왜 동일한 키를 사용할 수 없는가?
       무결성을 위해서는 평문과 MAC을 동시에 보
        내야만 한다.




              Chapter 3 Symmetric Key Crypto
                                               73
기밀성과 무결성
   암호화와 MAC을 위해서 다른 키를 사용하
    는 것은 두 배의 일을 요구한다.
   동일한 암호화로 기밀성과 무결성을 제공
    할 수는 없을까?
   무결성은 대칭키 암호화 방법 외에 해쉬
    함수를 이용하는 방법이 널리 사용된다.




          Chapter 3 Symmetric Key Crypto
                                           74
숙제
   3장 문제 6,8,23,31,32




              Chapter 3 Symmetric Key Crypto
                                               75

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:21
posted:6/29/2012
language:Korean
pages:75