Advanced Encryption Standard의 약자로, 대칭현 블록 암호화 알고리즘이다. 레인델(Rijndael) 알고리즘을 사용한다. 암호화 키는 128 비트, 192 비트, 256 비트 중 하나가 될 수 있으며, 각각 AES-256, AES-192, AES-256으로 불린다. (Key가 길수록 brute force 공격에 강함)
대칭 키 암호는 암호화와 복호화에 같은 암호 키를 쓰는 알고리즘을 말한다. 암호화 키가 노출되면 안되고 비대칭 암호보다 보안성은 떨어지지만, 시간이나 비용면에서 장점이 있다.
블록 암호는 대칭 키 암호의 종류 중 하나로, 암호화하고자 하는 정보를 정해진 블록 단위로 나눠 암호화 하는 시스템을 말한다.
암호화 키의 길이에 따라 SubBytes, ShiftRows, MixColumns, AddRoundKey 네 개의 과정을 10, 12, 14 라운드 실행한다. (128 → 10 라운드, 192 → 12 라운드, 256 → 14 라운드)
자세한 내용은 봐도 이해가 어려워 적지 않았다. 현재는 개념만 알아두려고 하는 것이기 때문에 나중에 추가로 공부가 필요하면 자세히 공부해보아야겠다.
공개키 암호화 알고리즘 중 하나이다. 암호화뿐만 아니라 전자서명도 가능하여 전자상거래 등에 활용되고 있다. 큰 숫자는 소인수분해를 하기가 어렵다는 점을 이용하여 암호화를 하며, 보안도가 매우 높다. 다만 AES 방식에 비해 계산 집약적이고 느리다는 단점이 있다. 암호화 키의 길이에 따라 RSA-896, RSA-1024, RSA-1536, RSA-2048 등이 있고, 중요도가 높은 정보일 경우 RSA-4096이나 RSA-8192를 쓰기도 한다.
암호화와 복호화에 사용하는 키가 서로 다른 암호를 말한다. 대칭 키 암호는 암호화와 복호화에 사용되는 키가 같아 암호화 키를 암호를 복호하고자 하는 사람에게 반드시 전달해주어야 한다. 이는 보안상 허점이 될 수 있다. 공개 키 암호는 그럴 필요가 없어 보안성이 훨씬 뛰어나다.
그리고 기밀 내용의 전달 뿐 아니라 발행자 증명, 부인 방지 등에도 사용할 수 있다.
AES에 비해 과정을 이해하기가 쉬워 나무위키에 남겨진 글을 가져와보았다.
구체적 예시는 [RSA 암호화 - 5. 예시]에 아주 잘 설명되어있다.
참고자료
https://velog.io/@t1mmy_t1m/AES에-대하여
https://blog.naver.com/PostView.naver?blogId=wnrjsxo&logNo=221711255389