Advantages and Limitations of XTS-AES

Download Report

Transcript Advantages and Limitations of XTS-AES

Cryptography and Network Security
Chapter 6
Multiple Encryption & DES
 clear a replacement for DES was needed
 theoretical attacks that can break it
 demonstrated exhaustive key search attacks
 AES is a new cipher alternative
 prior to this alternative was to use multiple
encryption with DES implementations
 Triple-DES is the chosen form
2
Double-DES
 could use 2 DES encrypts on each block
 C = E(K2,E(K1,P))
 P = D(K1,D(K2,C))
 우리의 예상은 56x2 = 112bit의 Key Size.
 issue of reduction to single stage
 E(K2,E(K1,P)) = E(K3,P) -------- (6.1)
 (6.1)과 같은 식에서 K3가 존재한다고 가정
 만약 위의 가정이 사실이라면 56bit를 이용한 단일키
 위의 가정이 틀리면 단일 DES의 단일 적용에 정의되지 않
는 다수의 사상 중 하나를 생성하게 될 것이라는 것은 타
당[CAMP92]
3
“Meet-In-The-Middle” Attack





이중 DES에 대한 중간일치공격
works whenever use a cipher
twice
since X = E(K1,P) = D(K2,C)
attack by encrypting P with all
keys and store
then decrypt C with keys and
match X value
can show takes O(256) steps


얼핏 보기에, 이중 DES는 키를 탐색하
기 위한 탐색 횟수가 256번(하나의 DES
에 대응)에서 2112 번(두 개의 DES에
대응)으로 증가하는 것처럼 보임
그러나 중간 일치 공격과 같은 기지 평
문공격을 사용하면 2112 가 아닌 256 으
로 약간의 향상만이 있을 뿐임을 증명
중간 일치 공격에 대한 표
4
Triple-DES with Two-Keys
 hence must use 3 encryptions
 would seem to need 3 distinct keys
 but can use 2 keys with E-D-E sequence
 C = E(K1,D(K2,E(K1 (P)))
 P = D(K1,E(K2,D(K1 (C)))
 if K1=K2 then can work with single DES(!)
 standardized in ANSI X9.17 & ISO8732(키 관리 표준)
 no current known practical attacks
 [COPP94]는 3중 DES에 대한 전사적 공격은 2112~5x1033의 차수로,
차분 암호 해독은 지수적 증가(!)로 추정되며 단일 DES와 비교해
서 1052이 넘는다.
 several proposed impractical attacks might become basis
of future attacks
5
몇 가지 제안된 공격...

선택 평문 공격[MERK81]



Fig6.1b의 A=0의 첫번째 중간 값을 생성하는
평문 값을 찾은 다음, 두 개의 키를 찾기 위
해 중간 결과에 의한 공격을 사용
암호해독의 복잡도는 256, 이 기법은 현실적으
로 256 개의 선택 평문-암호 쌍이 요구
기지평문 공격[VANO90]




MERK81을 개선, 그러나 복잡도는 더 높음
만약 A,C(Fig6.1b)를 알면 2DES로 축소될 수
있다는 관찰에 근거
공격자는 A의 가능한 값을 선택할 수 있고,
그렇게 되면 A를 생성하는 기지의 (P,C)쌍을
찾게 됨
간단한 공격방법[자세한 것은 논문참조]
 n개의 (P,C)를 구함. 6.2b의 표 작성
 임의의 a 선택. 6.2c표 작성



P = D(i,a), B = D(i,C)
i번째 후보 값이 구해지면 i+1번째 수행
하여 j값을 구한다
각 후보 키 쌍(i,j)를 테스트
6
Triple-DES with Three-Keys
 although are no practical attacks on two-key
Triple-DES have some indications
 can use Triple-DES with Three-Keys to avoid
even these
 C = E(K3,D(K2,E(K1,P)))
 has been adopted by some Internet applications,
eg PGP, S/MIME(in ch18)
7
Modes of Operation

block ciphers encrypt fixed size blocks






eg. DES encrypts 64-bit blocks with 56-bit key
need some way to en/decrypt arbitrary amounts of data in
practise
NIST SP 800-38A defines 5 modes
have block and stream modes
to cover a wide variety of applications
can be used with any block cipher
운영모드
8
Electronic Codebook Book (ECB)
 message is broken into
independent blocks which
are encrypted
 each block is a value
which is substituted, like
a codebook, hence name
 each block is encoded
independently of the other
blocks
 Ci = E(K,Pi)
 uses: secure transmission
of single values
9
Advantages and Limitations of ECB
 message repetitions may show in ciphertext
 if aligned with message block
 particularly with data such graphics
 or with messages that change very little, which
become a code-book analysis problem
 weakness is due to the encrypted message blocks
being independent
 동일한 메시지가 반복되면 암호문도 동일하게 나오는
문제점이 있다
 main use is sending a few blocks of data
 DES, AES 키 전송에 사용
10
Cipher Block Chaining (CBC)
 message is broken into blocks
 linked together in encryption
operation
 each previous cipher blocks is
chained with current plaintext
block, hence name
 use Initial Vector (IV) to
start process
 Ci = E(K,[Pi XOR Ci-1])
 C-1 = IV
 uses: bulk data encryption,
authentication
11
Message Padding
 at end of message must handle a possible last
short block
 which is not as large as blocksize of cipher
 pad either with known non-data value (eg nulls)
 or pad last block along with count of pad size
 eg. [ b1 b2 b3 0 0 0 0 5]
 means have 3 data bytes, then 5 bytes pad+count
 this may require an extra entire block over those in
message
 there are other, more esoteric modes, which
avoid the need for an extra block
12
Advantages and Limitations of CBC
 a ciphertext block depends on all blocks before it
 any change to a block affects all following
ciphertext blocks
 need Initialization Vector (IV)
 which must be known to sender & receiver
 if sent in clear, attacker can change bits of first
block, and change IV to compensate
 hence IV must either be a fixed value (as in EFTPOS)
 or must be sent encrypted in ECB mode before rest of
message
 IV 선택에 대한 권고
 동일한 암호화 키
 난수
13
Stream Modes of Operation
 block modes encrypt entire block
 may need to operate on smaller units
 real time data
 convert block cipher into stream cipher
 cipher feedback (CFB) mode
 output feedback (OFB) mode
 counter (CTR) mode
 use block cipher as some form of pseudo-random
number generator
14
Cipher FeedBack (CFB)




message is treated as a stream
of bits
added to the output of the
block cipher
result is feed back for next
stage (hence name)
standard allows any number of
bit (1,8, 64 or 128 etc) to be
feed back


most efficient to use all bits
in block (64 or 128)



denoted CFB-1, CFB-8, CFB-64,
CFB-128 etc
Ci = Pi XOR E(K,Ci-1)
C-1 = IV
uses: stream data encryption,
authentication
15
Advantages and Limitations of CFB
 appropriate when data arrives in bits/bytes
 most common stream mode
 limitation is need to stall while do block
encryption after every n-bits
 note that the block cipher is used in
encryption mode at both ends
 errors propogate for several blocks after the
error
16
Output FeedBack (OFB)
 message is treated as a stream
of bits
 output of cipher is added to
message
 output is then feed back
(hence name)
 feedback is independent of
message
 can be computed in advance
 Oi = EK(Oi-1)
 Ci = Pi XOR Oi
 O-1 = IV
 uses: stream encryption on
noisy channels
17
Advantages and Limitations of OFB
 needs an IV which is unique for each use
 if ever reuse attacker can recover outputs




bit errors do not propagate
more vulnerable to message stream modification
sender & receiver must remain in sync
only use with full block feedback
 subsequent research has shown that only full block
feedback (ie CFB-64 or CFB-128) should ever be used
18
Counter (CTR)
 a “new” mode, though
proposed early on
 similar to OFB but encrypts
counter value rather than
any feedback value
 must have a different key &
counter value for every
plaintext block (never
reused)
 Oi = E(K,i)
 Ci = Pi XOR Oi
 uses: high-speed network
encryptions
19
Advantages and Limitations of CTR
 efficiency
 can do parallel encryptions in h/w or s/w
 can preprocess in advance of need
 good for bursty high speed links
 random access to encrypted data blocks
 provable security (good as other modes)
 but must ensure never reuse key/counter values,
otherwise could break (cf OFB)
20
XTS-AES Mode
 new mode, for block oriented storage use
 in IEEE Std 1619-2007
 concept of tweakable block cipher
 different requirements to transmitted data
 uses AES twice for each block
 Tj = EK2(i) XOR αj
 Cj = EK1(Pj XOR Tj) XOR Tj
 where i is tweak & j is sector no
 each sector may have multiple blocks
21
암호저장화 요구 사항
1. 암호문은 자유롭게 공격자로부터 이용이 가능하다.
2. 데이터 레이아웃은 저장 매체에서 혹은 전송 중에 변경
되지 않고, 평문 데이터와 크기가 같다
3. 비순차적 접근을 허용한다.
4. 암호문은 16바이트의 배수로 이루어진다
5. 데이터 블럭의 위치를 제외하곤, 메타데이터는 사용되
지 않는다.
6. 동일한 위치에 쓰여질 때는 동일한 암호문이 된다
7. 표준에 준수한 장치들은 다른 표준의 장치에 의해 암호
화된 데이터를 복호화하기 위해 구성될 수 있다
22
XTS-AES Mode Per block

XTS-AES 파라미터














Pj : J번째 평문 블록. 마지막 블럭을 제외하곤
모두 128비트.
Cj : j번째 암호문 블럭. 마지막 블럭을 제외
하곤 모두 128비트
j : 블럭의 순차 번호(CTR 모드의 계수와 동일
)
i : 128비트의 변경 값. 연속적으로 할당되고
임의의 양의 정수로부터 시작.(난수에 해당)
a : 다항식 x에 대응하는 원시원소
aj : a를 j번 곱한것
⊕ : 비트 XOR 연산
⊗ : GF위에서 곱셈
T = E(K2,i) ⊗ aj
PP = P ⊕ T // CC = C ⊕ T
CC = E(K1,PP) // PP = D(K1,CC)
C = CC ⊕ T // P = PP ⊕ T
암호화 : C = CC ⊕ T = E(K1,PP) ⊕ T =
E(K1,P ⊕ T) ⊕ T
복호화 : P = PP ⊕ T = D(K1, CC) ⊕ T
= D(K1,C ⊕ T) ⊕ T
23
섹터에 대한 운용
 섹터에 대한 단위는 128비트 블럭으로 구성
 마지막 블럭은 NULL, 1~127비트로 채워짐
 각 블록의 암호화는 독립적으로 진행
 단, 128 블럭보다 작을 때 ciphertext-stealing 기술 사용
 CTR 모드에서 볼 수 있듯이, XTS-AES 모드도 병렬 운
용에 적합하다고 할 수 있음
 체이닝 구조가 아니기 때문에 동시에 여러 블럭이 암호화 또는
병렬화 가능
24
Advantages and Limitations of XTS-AES
 efficiency
 can do parallel encryptions in h/w or s/w
 random access to encrypted data blocks
 has both nonce & counter
 addresses security concerned related to stored
data
25
Summary
 Multiple Encryption & Triple-DES
 Modes of Operation
 ECB, CBC, CFB, OFB, CTR, XTS-AES
26