AES 복호화 코딩 및 음악파일 제목 찾기 (key size : 128 bit)
팀 프로젝트 과제로 AES 암호화 (key size : 128 bit)된 mp3 파일을 해독하여 노래 제목을 찾는 과제가 나왔다.
조건은 이 정도.
u8과 u32를 설정해주고
위 함수로 inv_Sbox를 생성해 준다.
inv_Sbox를 코드에 넣어주고
main 문 작성. mp3파일을 올려야 해서 fp사용.
File_AES_Decryption 함수를 작성. 기본적인 CT, PT, IV(초기 벡터), MK, RK, keysize 등을 설정해준다.
AES_KeySchedule에서 key가 128bit임으로 RoundkeyGeneration128 함수로 건너뛰어서 함수를 작성한다.
Rcon을 설정해주고,
AES_RotWord(key shift column)와 AES_SubWord(Sbox 대입)를 설정해준다.
AES_Roundkey_4words_generation로 각 라운드 키를 마저 만들어주고,
AES_KeyWordToByte로 32bit로 묶여있던 W배열을 8bit로 다시 쪼개 준다.
AES_KeySchedule을 다 수행했으므로 다시 File_AES_Decryption로 돌아간다.
현재 CBC모드로 암호화가 되어있기 때문에 CT에 초기 백터를 넣어준 후, 파일을 128bit만큼 각각 쪼개서 파일이 끝날 때까지 while문을 돌려 복호화해주는 방식으로 코드를 작성했다.
AES_DEC 코드를 보면 AES_LRound(AES_Inv_MixColumn 없음), AES_Round, AES_Inv_AddRoundKey 순서로 함수를 돌면서 복호화되도록 코드를 작성했다.
마지막으로 AES_CBC를 돌면서 복호화가 끝난다.
위 코드는 팀원 RyuH님의 도움으로 대부분 작성되었습니다~!