1. 문제
base64 공부 후 자신만의 암호를 만들었다고 합니다.
힌트에서 32개의 문자를 가지고 base32를 드림이가 만든것 같아요
2. 풀이
https://dntmdgns03.tistory.com/121
해당 포스트에서 자세히 알 수 있듯이
bsae64는 byte 크기로 나누고 6bits로 그룹화 하여 테이블에서 문자와 매칭하는 방식입니다.
6bits인 이유는 64개의 수를 모두 표현하기 위해서 입니다.
하지만 현재 드림이가 만든 인코딩 방식은 32개의 문자 즉 2^5 이므로 5bits씩 그룹화 하여 인코딩 하는 방식
그렇다면 base64 인코딩 방식을 역으로 구성하는 데신 인코딩 문자열을 6bits가 아닌 5bits 2진수로 변환하면 됩니다.
먼저 인코딩 테이블을 만들어 줍니다.
이 후 패딩 처리된 문자를 제거하고
인코딩된 문자열을 5bits 값으로 변환합니다.
5bits씩 변환이 끝나면 이제 byte 단위로 재구성 합니다.
byte 단위로 구성 후 문자열로 변환시켜 줍니다.
이런 식으로 코드를 구성하면 flag 값을 얻을 수 있습니다.
'Wargame > wargame 암호학' 카테고리의 다른 글
[Dreamhack] ICM2022 (0) | 2024.05.11 |
---|---|
[Dreamhack] DARIMCHAL_001 (0) | 2024.04.30 |
[Dreamhack] robot_only (0) | 2024.04.30 |
[Dreamhack] basic crypto (0) | 2024.04.29 |
[Dreamhack] ROT128 (0) | 2024.04.29 |