aes 128 cbc 는 만들었는데요 16B(128bit)로 나눠떨어지지 않는 크기 데이터도 암호화 할 수 있게 해달라는 요청이 들어왔습니다
그래서 0 패딩으로 구현하면 되겠거니하고 쉽게 생각했는데 이게 웬걸 안 쉽네요
다음과 같은 궁금한 사항이 생깁니다
1. 만약 3B를 암호화 하고 싶다고 가정했을 때 암호화 한 결과값은 16B로 나오는데
input에 3B output에 16B로 나오는게 맞나요?
(사용자 입장에서는 왜 3B를 넣었는데 왜 16B로 리턴이 되냐는 의문을 가지고 있어서요
이건 그냥 aes 자체가 그래서 그렇다고 설득을 하면 될까요?)
2. 위의 가정이 맞다면 사용자가 직접 16B로 나눠떨어지도록 공간을 잡고
0으로 직접 패딩을 하고 암호화 함수를 호출하는 거랑 별 차이가 없지 않나요?
(자동으로 되냐 수동으로 되냐)
3. 암호화 할 내용이 가변 크기이면 사용자가 암호를 풀었을 때 나오는 데이터 길이가 몇 인지 따로 관리를 하고 있어야 할까요?