보안관제 동아리에서 중학생들을 대상으로 문제를 출제했다.

 

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
핵 전쟁으로 방공호에 갇혀있는 돌로레스는 문밖에 암호가 적혀진 메모를 발견했다 누가 장난을 치고 간것인지... 알수없는것 투성이다.

60second 라는 게임을 플레이하다가 Crypto 문제로 내면 딱일거같아서 직접 캡쳐했다 .. ㅋㅋ

 

제목에도 힌트가 있지만 “암호를 푸는데뎌 얼마나 걸릴지도 모르고, 시간낭비일지도 모른다” 라는 내용으로 유추해보면 큰 수일수록 소인수분해가 어렵다는 점을 이용한 암호알고리즘인 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

+ Recent posts