오래 못 할 짓 하지 않기
[ 컴퓨터 보안 ] 10. Cryptography : AES 본문
AES 암호화 방식은 다음과 같다.
128 혹은 192 , 256 bits key를 사용해서
128 bits round key를 만든다. (DES보다 Key bits 수가 많다.)
📌 Units
1. Block to state
Plaintext를 State로 바꾸는 방법은 다음과 같다.
각각의 문자에 대해서 Hex 값이 있다.
이를 Matrix에 넣어서 State 값으로 가지고 있는다.
해당 State 를 위해 Transformation 단계를 거치는데
- Substitution (대체)
- Permutation (재배열) = shift rows
- Mixing (순서 섞기)
- Key-adding
방식이 있다.
Transformation
📌 Substitution
(a,b) 에 있는 문자열에 대응하는
(c,d)라는 문자열이 존재한다.
각각에 매핑되는 정보에 대한 Table이 존재하고
이를 통해서 서로 왔다갔다 할 수 있다.
= Inverse 가능
코드 이해해보기...
📌 Permutation
값 자체를 바꾸는거다.
Plaint text를 State로 바꾼 상태에서
* Encryption : 왼쪽으로 Shift
* Decryption : 오른쪽으로 Shift
1번 줄은 1칸 이동
2번 줄은 2칸 이동
...
n번 줄은 n칸 이동
= Inverse 가능
📌 Mixing
State에서 하나의 Column * Constant matrix를 곱한 값
= 해당 State의 Entrypted Column
= Inverse 가능
= Diffusiton 효과도 있다.
➡️ 현재 (bit에) 바뀐 값들이 Round에서 모든 곳에 (bit에) 영향을 끼친다.
📌 Key Adding
[ 암호화 화려고 하는 Text 의 Column ] XOR [ 해당 Round에 해당하는 Key ]
= 암호문 column
XOR Operation이니
= Inverse 가능하다.
📌 전체적인 흐름
Key Expansion
- 각 Round마다 쓰이는 Key가 다르다
- Preround + N번 = N+1 번 암호화를 거친다
+ 4개의 word가 하나의 Key가 되고, 1word 에 32bits 이므로
하나의 key는 128bits가 된다.
- 작동 방식
우선 암호화 Key에서 4bytes (= 32bits ) 단위로 나누고
하나의 word를 구성한다.
그렇게 하나의 word를 가져서 나온 w0~w3이 하나의 Key 가 된다.
➡️ 그 다음 Round에서는 [ 이전 Round의 마지막 word ] 를 가지고
RotWord + SubWord + Round Constat(XOR) 연산을 거친다.
그렇게 나온 값을 t4라고 할 때
[ w0 ] XOR [ t4 ] = w4 를 만들고
해당 라운드에서는 이제 [ w4 ] XOR [ w1 ]로 돌아가며 작동한다.
✚ RotWord
: Shift Rows Operation과 비슷하다.
차이점이라고 하면 모든 Row를 이동시키는 게 아니라 하나의 Row만 민다.
✚ SubWord
: Subytes Operationr과 비슷하다.
차이점은 4bytes만 섞음 (하나의 Word만 섞나봄)
예제
W3를 가지고 W4를 구해보자
w3 = 13 AA 54 87
-> rotword = AA 54 86 13
-> subword = 그 테이블 보고 하기
= AC 20 44 7D
-> round costant = 010000000 (1번 Round니까, PDF 30페이지에 있음)
= AD 20 44 7D
잡다하지만 중요한 AES 특징
Key에서 하나의 Key값만 달라도, Round를 돌 때마다 Bit difference는 점점 커진다.
Key를 섞는 매커니즘이 더 복잡하고 길기 때문에
Weak Key를 사용했다고 해도 Round를 계속 돌리기 때문에 그닥 문제가 생기진 않는다.
(출처)
- 한동대학교 고윤민교수님 - 컴퓨터 보안
- 아래 블로그
https://blog.naver.com/darkadooa/221481767118
'3학년 2학기 > 컴퓨터 보안(Computer Security)' 카테고리의 다른 글
[ 컴퓨터 보안 ] 12. Cryptography : Asymmetric Key ( 비대칭키 ) (0) | 2024.11.01 |
---|---|
[ 컴퓨터 보안 ] 11. Cryptography : AES 2 (0) | 2024.10.29 |
[ 컴퓨터 보안 ] 9. Cryptography ( 이외 유닛 + DES ) (0) | 2024.10.22 |
[ 컴퓨터 보안 ] 8. Cryptography 대칭키 ( + 비대칭키 ) (0) | 2024.10.15 |
[ 컴퓨터 보안 ] 7. Cryptography - 치환 / 재배열 / 암.복호화 (0) | 2024.10.15 |