

, key를 16번 넣음 → 15Round
페이스텔 네트워크 1Round 처리순서
DES는 symmetric key를 사용하기 때문에 특징이 있음



내에 있는 는 48bit에서 쪼개진 6bit를 4bit로 줄여줌
예시로 input block : 011011
Key schedule : 64bit의 main key를 라운드동안 돌릴 sub key로 변환하는 작업
Week Keys(64bit) : Week key는 DES의 16 라운드 암호화 과정에서 생성되는 서브키들이 반복되거나 동일한 값을 가지는 키임
이러한 week key는 암호를 쉽게 해독할 수 있어서 취약점이 드러남
Brute Force Attack : 모든 경우의 수를 대입해서 공격 (key space) → 해독 가능한 수준
Attack on DES
Overall Procedure

각 라운드마다 네 개의 함수를 통해 서브키를 생성, 암호화 → 라운드를 다 돌면 Ciphertext완성
AES-128, AES-192, AES-256

key size와 Block size를 워드 단위로 표현
과정

AES-128 기준
state는 input text를 행렬로 변환한 것
한 라운드마다 네 개의 암호화 함수를 실행
SubBytes() : 각 Byte를 s-box를 통해 대체함
Non-linear byte operation using s-box (substitution table) :

ShiftRows() : 대체된 b’을 shift 연산을 통해 순환이동

MixColumns() : 열을 연산을 통해 대체하는 과정 / AES가 복잡해지는 특성을 갖게 하는 함수

AddRoundKey() : 앞서 세 함수를 통해 복잡해진 행렬을 현재 키와 다시 연산을 진행하여 더욱 복잡하게 만드는 과정, AES-128은 이 과정을 10번 진행
Cipher key를 이용하여 sub key를 생성
AES-128의 경우, 초기키값 + 10번의 라운드동안 수행할 키 = 11개의 키가 필요
- 각 sub key size : 128bit

InvShiftRows() InvSubBytes() AddRoundKey() InvMixColumns()
Encryption과 완벽한 역순이 아님

R0 : 이동 X
R1 : 오른쪽으로 한 칸 이동
R2 : 오른쪽으로 두 칸 이동
R3 : 오른쪽으로 세 칸 이동
SubBytes()를 통해 대체된 행렬을 다시 되돌아가는 subtitution table을 이용
MixColumns()의 의 역행렬을 곱함