보안관제 동아리에서 중학생들을 대상으로 문제를 출제했다.
1# Hiscon 25point
Olssv dlsjvtl av ohuzlp! obtt.. kv fvb ruvd aol huzdly av aopz alza?
OZVJ{K0_f0b_ruVd_c1nLUly}
*hint = title
25점 문제로 고전암호학 vigenere를 출제했다
플래그 포맷을HSOC 랑 대조해봤을때 "O"가 H를 가리키기도 하고 V를 가르키기도 하기 때문에 쉬프트하는 카이사르가 아니라 비즈네르라고 유추할수 있다
문제의 키 값은 Hiscon 의 H이다 툴이나 코드를 사용해 복호화를 하면
HSOC{D0_y0u_knOw_v1gENere} 라는 flag 값이 나오게 된다
2# RShelter..A 100point
핵 전쟁으로 방공호에 갇혀있는 돌로레스는 문밖에 암호가 적혀진 메모를 발견했다 누가 장난을 치고 간것인지... 알수없는것 투성이다.
제목에도 힌트가 있지만 “암호를 푸는데뎌 얼마나 걸릴지도 모르고, 시간낭비일지도 모른다” 라는 내용으로 유추해보면 큰 수일수록 소인수분해가 어렵다는 점을 이용한 암호알고리즘인 Rsa 암호 문제인걸 알수있다 그점을 고려해서
문제 폴더에 있는 output 메모를 열면
n = 123540945535348818505443663552430339730797994651078703869158434458801148680536748800954485191293084838693867539898129034405126458533526245941520570951570457825948733919413051950775476499203976292917331256051251396841673467230808003266709856927506305902342904853542480412988326456097416341155911411158224483331
e = 3
ct = 4195958341811449247679798367896069015351823066643635550381426047270427958450169559723963889837872491377599837640886837868076438894848613
e값이 3으로 너무 작은 소수이기 때문에 이 점을 이용하여, 낮은 지수 공격을 통해
from gmpy2 import iroot, local_context
c = 4195958341811449247679798367896069015351823066643635550381426047270427958450169559723963889837872491377599837640886837868076438894848613
with local_context() as ctx:
ctx.precision = 3000
m = iroot(c,3)[0]
print(bytes.fromhex('%x' % int(m)))
이런식으로 코드를 작성해 flag 값을 얻어낼수도 있고 , RSActf tool을 이용해 알아낼수도 있다
HSOC{1@Mv3ryBoring} 기껏 복호화 해놨더니 난 지루하다는 뜻이다..ㅋㅋ
'Cryptography' 카테고리의 다른 글
Factordb 사용법 (0) | 2024.01.03 |
---|---|
[Python] Crypto 모듈 다운로드 명령어 (0) | 2024.01.02 |
[Cryptohack] RSA starter 5 (0) | 2023.09.01 |
[Cryptohack] RSA starter 4 (0) | 2023.08.31 |
RSA 개념 정리 / e값이 65537인 이유 (0) | 2023.08.31 |