본문 바로가기

Cryptography16

[암호학 개념] 암호 알고리즘은 크게 3가지로 이루어져 있다. 1. 비밀키 알고리즘 -> 암복호화에 같은 비밀키 사용, 대칭키 알고리즘이라고도 불림 2. 공개키 알고리즘 -> 암호화는 공개키로, 복호화는 개인키로 동작, 비대칭키 알고리즘 3. 해시 알고리즘 -> 위 2개의 알고리즘과는 성격이 다른 암호 알고리즘 합동식 합동식은 두 정수 a, b 를 각각 정수 m으로 나눴을 때 나머지가 같은지를 판별하는 식입니다. a와 b 각각을 m으로 나눈 나머지가 같을 때, 수학적으로 a와 b가 mod m에 대해 합동(congruent)이라고 표현합니다. 예를 들어, 7과 17은 10으로 나눈 나머지가 같기 때문에 7과 17은 mod 10에 대해 합동이며 기호로는 7 ≡ 17 (mod 10)로 나타냅니다. a, b 가 mod m에 대.. 2021. 9. 19.
[HackCTF] Classic Cipher -2 This is simple transposition cipher key is "python" Ciphertext is hreCp1_ev_s117nr_ys17eer132n_5 문제 파일을 열면 위와 같이 key 값은 python이고 간단한 전치암호를 사용하여 암호문을 생성했다고 합니다. 전치암호는 예를 들어 키 값이 13524 라고 하면 abcde 가 acebd 로 변환되는 암호화를 의미합니다. 따라서 python이 key 값이므로 의미있는 숫자로 어떻게 표현할 수 있을까 생각해보면 알파벳 순서가 가장 유력합니다. python의 순서는 465132입니다. 복호화 코드는 아래와 같습니다. def main(): data="hreCp1_ev_s117nr_ys17eer132n_5" _data=list(data) .. 2021. 9. 11.
[HackCTF] Classic Cipher -1 ?y4zl4J_d0ur_b0f_0K zp nhsm 문제 파일을 열면 위와 같은 문자열이 있다. 힌트를 보면 [::-1]이라고 적혀있는데 이는 역순을 의미한다고 합니다. 따라서 역순으로 나열하고 카이사르 해독을 했습니다. 코드는 아래와 같습니다. catalog1 = "abcdefghijklmnopqrstuvwxyz" catalog2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" def decrypt(data, key): rst = "" for k in range(len(data)): idx1 = catalog1.find( data[k] ) idx2 = catalog2.find( data[k] ) if idx1 != -1: rst += catalog1[ (idx1-key) % len(catalog1.. 2021. 9. 11.
[HackCTF] Smooth CipherText 문제에서 주어진 암호문은 아래와 같다. Rijvsmysmysmy Itovwyrc! Ns wyy ixsu Glm kq G? wc lkqc sw qwsmdlkkr sr...M ixsu fipi acvp urer iss geld! Md iss mel niastfov rrmq mvwzxmqvyw, cme gyx kcd xfo gmbvcmx yxwuov. qy, jjkk gc LymoADJ{t_tzwi_3vxbd0p3_vff.afy'q_wzoxpq_dp_qfz} 플래그 형식을 갖춘것으로 보아 카이사르 암호 또는 비즈네르 암호임을 추측할 수 있다. HackCTF -> LymoADJ 부분을 보면 서로 상대 거리가 일정하지 않으므로 카이사르 암호는 아닌 듯 하다. 비즈네르 암호 해독 사이트는 다음과 같다. https:.. 2021. 9. 11.
[HackCTF] Great Binary 01001000 01100001 01100011 01101011 01000011 01010100 01000110 01111011 01100011 01110010 01111001 01110000 01110100 01101111 01011111 01110110 00110010 01110010 01111001 01011111 01100101 01100001 01110011 01111001 01011111 01110000 01110010 00110000 01100010 00110001 01100101 01101101 01111101 문제 txt파일에는 위와 같이 2진수가 나열되어있다. 아스키코드로 변환하면 HackCTF{crypto_v2ry_easy_pr0b1em} 플래그를 획득할 수 있다. 2021. 9. 10.
[Square CTF] 카이사르 암호 암복호화 # -*- coding: utf-8 -*- catalog1 = "abcdefghijklmnopqrstuvwxyz" catalog2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" def encrypt(data, key): rst = "" for i in range(len(data)): idx1 = catalog1.find( data[i] ) idx2 = catalog2.find( data[i] ) if idx1 != -1: rst += catalog1[ (idx1+key) % len(catalog1) ] elif idx2 != -1: rst += catalog2[ (idx2+key) % len(catalog2) ] else: rst += data[k] return rst def decrypt(da.. 2021. 8. 12.
[Square CTF] The General's Cat Name the-generals-cat - Decrypt this ancient scientific article Points 50 points Type Crypto Description The androids’ plans for domination include securing ancient artifacts relating to the animal world to be used for nefarious means. We managed to infiltrate one of their digsites and intercepted this ancient scientific tome, but it's encrypted! We think it relates to Julius Caesar's time in Ro.. 2021. 8. 12.