AES 4

주저리주저리 내가 아는 AES는 말이지...

·안녕하세요 주인장입니다. 바쁜 나날들을 보내다 문득 블로그가 생각나 들어와 봤어요. 스킨도 좀 바꿔보고 했는데 어떠신가요 저는 영 어색하네요. 이 말을 하려고 들어온건 아니고 갑자기 들어와본 블로그에 AES 관련 게시글이 너무 얼렁뚱땅 마무리된 것 같아서 제가 기억하는 AES를 추억할 겸... 함 적어보겠습니다. 틀린 부분은 스스로 고쳐나갈 예정이나 완전 박박 틀렸다 하는 부분을 발견하시면 댓글 주세요. 1. AES의 구조 SPN 구조라고 하는 치환-대치(맞나?) 구조를 하고 있습니다. 한 라운드는 크게 4가지 순서로 구성이 되어있는데요. 다음과 같습니다. SubBytes ShiftRows MixColumns AddRoundKey 지금부터 이 4가지 과정을 하나씩 요약해보면, 2. SubBytes 보통..

블록 암호/AES 2022.08.30

[AES] Key Expansion 키확장

* Cipher Key, 즉 K는 키스케줄key schedule로 만들어진 Key Expansion 과정을 거친다. * key expansion으로 총 Nb(Nr+1) words가 만들어진다. - 초기의 Nb words(입력셋), 각 Nr개의 라운드 마다 Nb의 키가 필요 * 4-byte words로 나열하여 [wi]로 표기된다. i의 범위 : 0 ≤ i < Nb(Nr + 1) * SubWord() : S-box 연산 함수 * RotWord() : a word [a0,a1,a2,a3]를 input으로 하고 cyclic연산을 한다. 즉 word [a1,a2,a3,a0]를 return하는 함수다. * Rcon[i] : The round constant word array. [x^(i-1), {00}, {00..

블록 암호/AES 2021.12.27

갑작스러운 최종 게시글

https://github.com/enoma422/aes.py.git GitHub - enoma422/aes.py Contribute to enoma422/aes.py development by creating an account on GitHub. github.com 그렇다. 발등에 불이 떨어진 나는... 2일만에 AES를 구현했다. AES를 1,2학년 때 배우지 않았다면 2일만에 할 수 없었겠지... 오랜만에 AES 구현하니까 재밌었다. 갑작스러운 최종 게시글은 아니고 사실... 더 공부할 것이다. key expansion 부분이랑 affine 변환, s box와 GF(2^8)의 연산까지... 거의 현대대수 시간 같다. 아무튼 했다. * https://en.wikipedia.org/wiki/Advan..

블록 암호/AES 2021.12.17

1. AES

주황 체크표시된 단어와 각 라운드의 과정을 공부해나갈 예정입니다... 사실 각 라운드의 과정을 공부해 나가다 보면 Affine 변환이나 Key Expansion, S-Box는 당연히 알아야 각 과정을 이해할 수 있으니까 당연한 소리임... * https://en.wikipedia.org/wiki/Advanced_Encryption_Standard#Definitive_standards 를 참고하여 공부했습니다. * FIPS 197, Advanced Encryption Standard (AES) 를 참고하여 공부했습니다.

블록 암호/AES 2021.10.29