2019. 12. 27. 15:05ㆍProgramming/CS
AES
linear 암호분석에 내성을 갖도록 설계하고싶었다. 그리고 키의 길이가 DES는 너무 짧은 탓에 좀 더 긴 키의 길이를 가지며, 빠르고 효율적인 하드웨어 및 소프트웨어 구현을 위해 고안한 방식이다.
특징
- 암호화 Key로 128, 192, 256bit를 가질 수 있다. (AES-128, AES-192, AES-256)
- 암호화 Key의 길이에 따라 실행하는 Round수가 다르다.
Rijndael Cipher
워드(2바이트 → 16비트를 블록화 →) 그래서 4*4행렬 암호화 하는 방식이다.
substitute byttes: S box,
shift, mix : P box
각 라운드는 3개의 Function을 갖는다. (x값이 다 달라도 y가 일정한 상수함수) 변환
• P - Liniear mixng later – 여러 라운드에서 높은 확산
• S - 비선형 층 – 최악의 경우 비선형 특성을 갖는 S-Box를 사용한 높은 혼란
• X - 키 추가 계층 – 원형 키 XOR
→ 일련의 과정으로 쭉쭉간다
→ 마지막 라운드 mixcolumn을 하지 않는다
용어
byte sub : 블록 당 파일바이트
→ shift row → mix column → key와 조합
AES 프로세스
- 위에서 각 State 는 128bit, 16byte(16*8bit)를 사용하여 암호화를 진행한다
- 전체 bit를 암호화하고
- 치환, 순열을 번갈아하는 구조이다
1. subtypes(1단계)
: 블록 변환하기(4*4) → confussion(subbyte: 표에따라 컨퓨전)
row 0, 1, 2, 3... ——————————> -1, -2, -3 ...
2. ShiftRows(2단계)
: confusion한 1단계를 거치면 → 1행은 그대로, 2행은 옮기고, 3행은 2행.. n-1 행 옮겨서
어떻게?
• 암호화
• 각 상태 행을 각각 0,1,2,3바이트씩 왼쪽으로 회전
• 암호 해독 • 반대
왜?
• 개별 바이트를 한 열에서 다른 열로 이동하고 바이트를 열에 분산(분할)
• 열이 선형적으로 종속되지 않도록 한다(그렇지 않으면 AES는 4개의 독립적인 블록 암호로 변질됨)
3. MixColumns 3단계
Matrix [4*1]
컨퓨전인데, 위에는 비트별 컨퓨전이어으면 이거는 열별로 컨퓨전. (특정 함수에 돌려서)
c: 변환행렬
왜?
• 열에서 바이트의 혼합이 이루어지게 하기위해!
→ 왜 섞나요!? → 1차원배열이면 그냥 각각 돌아가면 되는데, 2차원 배열이어서 교차되어 돌아가야하기때문 ㅎㅎ
4. AddRoundKey
각 State행렬에 Round Key word를 XOR 해서 서로 다른 행렬을 만든다
AES(Rijndael)가 DES보다 강한 이유는?
AES의 더 긴 암호화 키 및 블록 크기 때문이다.
DES는 균형 잡힌 Feistel 구조를 사용하고, AES는 substitution-permutation단계를 사용한다.
DES는 현재 취약한 것으로 알려져있다. 기술의 발전에 의해 56 bits 의 키 길이는 너무 짧은 것이 되었고, Brute-Force에 의해 해독이 가능하다.
그래서 현재는 DES를 세 번 반복해서 사용하는 Triple-DES나 AES(Advanced Encryption Standard)를 사용하고 있다.
보안적인 측면에서 바라보면, AES에서의 substitution은 table 로인한 역함수 가 암호화/복호화 과정에서 한번씩 무조건 이루어진다!!
곧, 모든 bit 가 종속적이지 않고, 개별암호화!! 한다는 점에서 구조적 차이가 있다.
페이스털에서의 보안적 취약점이 substitution 에서 특히나 이득인 것!
'Programming > CS' 카테고리의 다른 글
[OS] Dual Mode(이중모드), 하드웨어 보호 (0) | 2020.04.08 |
---|---|
[OS] OS의 서론, 역사, 인터럽트 기반 시스템 (0) | 2020.04.07 |
[OS] 폰노이만구조, CPU와 성능개선 (0) | 2020.04.04 |
[정보보안]Feistel Cipher(파이스텔 구조) 와 DES (0) | 2019.12.26 |
[정보보안] Symmetric Key(대칭키)를 이용한 암호해독방식 (0) | 2019.12.25 |