CSAW CTF Qualification Round 2021 Writeup

この大会は2021/9/11 5:00(JST)~2021/9/13 5:00(JST)に開催されました。
今回もチームで参戦。結果は3599点で1216チーム中72位でした。
自分で解けた問題をWriteupとして書いておきます。

Welcome (misc)

Discordに入り、#rulesチャネルで:thumbsup:のリアクションをすると、いくつかチャネルが現れる。#generalチャネルのトピックにフラグが書いてあった。

flag{W3Lcom3_7o_CS4w_D1ScoRD}

poem-collection (warm-up)

poemsのリンクをクリックすると、ワーニングが出る。

Warning:  file_get_contents(): Filename cannot be empty in /var/www/html/poems/index.php on line 4

他にpoem1.txt、poem2.txt、poem3.txtのボタンがある。poem1.txtのボタンをクリックすると、以下のURLに遷移する。

http://web.chal.csaw.io:5003/poems/?poem=poem1.txt

http://web.chal.csaw.io:5003/poems/?poem=/var/www/html/flag.txtにアクセスすると、フラグが表示された。

flag{l0c4l_f1l3_1nclusi0n_f0r_7h3_w1n}

Turing (warm-up)

https://cryptii.com/pipes/enigma-machineで復号する。
f:id:satou-y:20210915081632p:plain

flag{scruffy_looking_nerf_herder}

checker (warm-up)

コードを見ると、2進数文字列にして、いろいろとエンコードしているので、逆算する。

#!/usr/bin/env python3

def rev_up(x):
    x = [chr(int(x[i:i+8], 2) >> 1) for i in range(0, len(x), 8)]
    return ''.join(x)

def rev_down(x):
    x = ''.join(['1' if x[i] == '0' else '0' for i in range(len(x))])
    return x

def rev_right(x, d):
    x = x[-d:] + x[:-d]
    return x

def rev_left(x, d):
    x = x[::-1]
    x = rev_right(x, len(x) - d)
    return x

encoded = '1010000011111000101010101000001010100100110110001111111010001000100000101000111011000100101111011001100011011000101011001100100010011001110110001001000010001100101111001110010011001100'

d = 24
x = rev_left(encoded, d)
x = rev_down(x)
x = rev_right(x, d)
flag = rev_up(x)
print(flag)
flag{r3vers!nG_w@rm_Up}

Crack Me (warm-up)

saltはハッシュの方式。ハッシュの長さから、目的のハッシュはsha256であることがわかる。saltは"sha256"としてrockyou.txtのワードをブルートフォースで探す。

from hashlib import sha256

h = 'a60458d2180258d47d7f7bef5236b33e86711ac926518ca4545ebf24cdc0b76c'

with open('dict/rockyou.txt', 'r') as f:
    words = f.read().split('\n')

for word in words:
    text = 'sha256' + word
    if sha256(text).hexdigest() == h:
        flag = 'flag{%s}' % word
        print flag
        break
flag{cathouse}

ransomwaRE (rev)

ファイルサイズから平文と暗号文の対応は以下のようになっている。

2020_IC3Report.pdf.backup:cad0b75505847a4792a67bb33ece21ec9c7bd21395ca6b158095d92772e01637.pdf.cryptastic
20180212_113048_Jones_C_ADMI2017_Ransomware.pdf.backup:9df65cc45479c058ef4a600c1e607fec44d83682db732f077817c58bed47a191.pdf.cryptastic
us-aers-ransomware.pdf.backup:a25981adfb782d04cccfb2ad66ae8e63ead31f62fb898913f1ec99359f2e1c4b.pdf.cryptastic

平文はすべてPDFで暗号文のヘッダ部分は同じ。バイナリの解析が困難だったため、XORと推測して、上記の鍵を求めて比較してみると、同じであることがわかった。
平文がない暗号文にも同じ鍵でXORして復号する。

from Crypto.Util.strxor import strxor

with open('files/2020_IC3Report.pdf.backup', 'rb') as f:
    pt1 = f.read()

with open('files/cad0b75505847a4792a67bb33ece21ec9c7bd21395ca6b158095d92772e01637.pdf.cryptastic', 'rb') as f:
    ct1 = f.read()

with open('files/20180212_113048_Jones_C_ADMI2017_Ransomware.pdf.backup', 'rb') as f:
    pt2 = f.read()

with open('files/9df65cc45479c058ef4a600c1e607fec44d83682db732f077817c58bed47a191.pdf.cryptastic', 'rb') as f:
    ct2 = f.read()

with open('files/us-aers-ransomware.pdf.backup', 'rb') as f:
    pt3 = f.read()

with open('files/a25981adfb782d04cccfb2ad66ae8e63ead31f62fb898913f1ec99359f2e1c4b.pdf.cryptastic', 'rb') as f:
    ct3 = f.read()

with open('files/ea6b505ffded681a256232ed214d4c3b410c8b4f052775eb7e67dcbd5af64e63.pdf.cryptastic', 'rb') as f:
    ct = f.read()

key1 = strxor(pt1, ct1)
key2 = strxor(pt2, ct2)
key3 = strxor(pt3, ct3)
keys = [key1, key2, key3]

min_l = min([len(k) for k in keys])
assert key1[:min_l] == key2[:min_l] == key3[:min_l]

key = ''
for k in keys:
    if len(key) < len(k):
        key = k

pt = strxor(ct, key[:len(ct)])

with open('flag.pdf', 'wb') as f:
    f.write(pt)

復号すると、PDFになり、開いてみると、フラグが書いてあった。
f:id:satou-y:20210915122321p:plain

flag{w4y_t0_put_th3_RE_1n_W1nd0w5_r4n50mw4RE}

Lazy Leaks (forensics)

SSHの通信のほかにTELNETの通信がある。このTELNET通信の中にフラグがあった。

flag{T00_L@ZY_4_$3CUR1TY}

Contact Us (forensics)

Wiresharkで開くと、たくさんのTLS通信がある。sslkeyfile.txtが添付されているので、[編集]-[設定]で左ペインの[Protocols]-[TLS]を選択し、以下を設定する。

(Pre)-Master-Secret log filename: sslkeyfile.txtのパス

これでTLS通信が復号される。http2でフィルタリングして見ていくと、No.2534のパケットのjsonデータの中にフラグが書いてあった。

flag{m@r$hm3ll0w$}

Forgery (crypto)

サーバ処理の概要は以下の通り。

・p: 1024ビット素数
・g = 3
・MASK = 2**1024 - 1
・x, y = gen_keys()
 ・x: 1以上p-2以下ランダム整数
 ・y = pow(g, x, p)
・p, g, y表示
・answer: 入力(hex)
・r: 数値入力
・s: 数値入力
・answer_bytes: answerのhexデコード
・answer_bytesに'Felicity', 'Cisco', 'both'のどれも含まれていない場合、エラー
・answer_bytesに'Felicity', 'Cisco', 'both'のどれかが含まれていて、verifyでOKならフラグを表示

answer_bytesに上記の文字列('Felicity'など)が含んでいるかを判定した後にanswer_bytesにマスクをかけて署名をしている。このため、answer_bytesを十分長い文字列にして、MASKよりも上位のbitで上記の文字列を含めればよい。

#!/usr/bin/env python3
import socket
from math import gcd
from random import randint

def recvuntil(s, tail):
    data = b''
    while True:
        if tail in data:
            return data.decode()
        data += s.recv(1)

MASK = 2**1024 - 1

_s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
_s.connect(('crypto.chal.csaw.io', 5006))

data = recvuntil(_s, b': \r\n').rstrip()
print(data)

params = [int(x) for x in data.splitlines()[0].split(' ')[-3:]]
p = params[0]
g = params[1]
y = params[2]

answer_bytes = b'Felicity'
answer_bytes += (256 - len(answer_bytes)) * b'\x00'
answer_int = int(answer_bytes.hex(), 16)

while True:
    t = randint(2, p - 2)
    if gcd(t, p - 1) != 1:
        continue
    r = pow(g, t, p) * y % p
    s = (-r) % (p - 1)
    m = t * s % (p - 1)
    break

answer_int += m

answer = hex(answer_int)[2:]
print(answer)
_s.sendall(answer.encode() + b'\n')

data = recvuntil(_s, b': \r\n').rstrip()
print(data)
print(r)
_s.sendall(str(r).encode() + b'\n')

data = recvuntil(_s, b': \r\n').rstrip()
print(data)
print(s)
_s.sendall(str(s).encode() + b'\n')

data = recvuntil(_s, b'\r\n').rstrip()
print(data)
data = recvuntil(_s, b'\r\n').rstrip()
print(data)

実行結果は以下の通り。

Server's public key (p,g,y): 145379552079804240300701619131905344145060662795005078098058868656983068485567681351555280647383836613556100371398565015796687662667116939870826138688421571561812594821087386511901583707263296350866220590056080998488294893557149165228181031300765081937739860599403361056622254223152428630321374744003060069747 3 83129544495179983348250330574468935673212486707482957462618847302030127437270491478309896072969529264536660072514334996867730112324715524908855568729247202756009063618035203589329583330846127136338025251913396630011131146064385787250692351861350487599230217963800165880403130765215313661386030104082738453473
Who do you think is the tech wizard: Felicity or Cisco or both? Please answer it with your signnature (r,s)
Answer:
46656c6963697479000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000260df8a645f58b98798c0bc6ebf4c8fafe41141a9cc88be749ab1dd54045de0f807f4826fb4607ea2633be7cdd3104bd5963ade62c5997603e114c7ceb5207b3672fcbd048c7030d845eeb2782574b98df68a3d913ed022d95718b44db9cf92d2e2480272073c0290913df4f2cb164eb3bd428c3dd324b754bbfc1bd0ed2bbb7
r:
49712563831430704343498670698226407134454453509544036157981477720170332031904902296209319209197744317779220509775257930387056451470123415567403718345671356531842436786711947107540384344066225474160519508789760857533457842202991446221441079134122383642678473455348259313376489561520788655018344019268566104649
s:
95666988248373535957202948433678937010606209285461041940077390936812736453662779055345961438186092295776879861623307085409631211196993524303422420342750215029970158034375439404361199363197070876705701081266320140954837051354157719006739952166642698295061387144055101743245764661631639975303030724734493965097
I see you are a fan of Arrow!
flag{7h3_4rr0wv3r53_15_4w350M3!}
flag{7h3_4rr0wv3r53_15_4w350M3!}

RSA Pop Quiz (crypto)

RSAの問題が何問か出るようだ。結果的には以下を順に解いていくことになった。

1つ目はeが大きいので、Wiener's attackで復号する。
2つ目はFermat法でnを素因数分解し復号する。
3つ目はLSB decryption oracle attackで復号する。
4つ目はPartial Key Exposure Attackで復号する。

とりあえず1つ目から3つ目の暗号を復号していく。

import socket
import gmpy
from Crypto.Util.number import *
from fractions import Fraction

def recvuntil(s, tail):
    data = ''
    while True:
        if tail in data:
            return data
        data += s.recv(1)

def continued_fraction(n, d):
    cf = []
    while d:
        q = n // d
        cf.append(q)
        n, d = d, n - d * q
    return cf

def convergents_of_contfrac(cf):
    n0, n1 = cf[0], cf[0] * cf[1] + 1
    d0, d1 = 1, cf[1]
    yield (n0, d0)
    yield (n1, d1)

    for i in xrange(2, len(cf)):
        n2, d2 = cf[i] * n1 + n0, cf[i] * d1 + d0
        yield (n2, d2)
        n0, n1 = n1, n2
        d0, d1 = d1, d2

def wieners_attack(e, n):
    cf = continued_fraction(e, n)
    convergents = convergents_of_contfrac(cf)

    for k, d in convergents:
        if k == 0:
            continue
        phi, rem = divmod(e * d - 1, k)
        if rem != 0:
            continue
        s = n - phi + 1
        D = s * s - 4 * n
        if D > 0 and gmpy.is_square(D):
            return d

def isqrt(n):
    x = n
    y = (x + n // x) // 2
    while y < x:
        x = y
        y = (x + n // x) // 2
    return x

def fermat(n):
    x = isqrt(n) + 1
    y = isqrt(x * x - n)
    while True:
        w = x * x - n - y * y
        if w == 0:
            break
        elif w > 0:
            y += 1
        else:
            x += 1
    return x - y, x + y

def lsb_oracle(s, cipher):
    print cipher
    s.sendall(str(cipher) + '\n')
    data = recvuntil(s, '\n').rstrip()
    print data
    data = recvuntil(s, '\n').rstrip()
    print data
    res = int(data.split(': ')[1])
    return res

def lsb_continue(s, ans):
    data = recvuntil(s, ')\r\n').rstrip()
    print data
    print ans
    s.sendall(ans + '\n')
    if ans == 'yes':
        data = recvuntil(s, ')\r\n').rstrip()
    else:
        data = recvuntil(s, '?\r\n').rstrip()
    print data

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('crypto.chal.csaw.io', 5008))

#### Part 1 ####
data = recvuntil(s, '?\r\n').rstrip()
print(data)

N = int(data.splitlines()[2].split(' ')[-1])
e = int(data.splitlines()[3].split(' ')[-1])
c = int(data.splitlines()[4].split(' ')[-1])
d = wieners_attack(e, N)
m = pow(c, d, N)
plaintext = long_to_bytes(m)
print(plaintext)
s.sendall(plaintext + '\n')
data = recvuntil(s, '\r\n').rstrip()
print(data)

#### Part 2 ####
data = recvuntil(s, '?\r\n').rstrip()
print(data)

N = int(data.splitlines()[2].split(' ')[-1])
e = int(data.splitlines()[3].split(' ')[-1])
c = int(data.splitlines()[4].split(' ')[-1])
p, q = fermat(N)
phi = (p - 1) * (q - 1)
d = inverse(e, phi)
m = pow(c, d, N)
plaintext = long_to_bytes(m)
print(plaintext)
s.sendall(plaintext + '\n')
data = recvuntil(s, '\r\n').rstrip()
print(data)

#### Part 3 ####
data = recvuntil(s, ')\r\n').rstrip()
print(data)

N = int(data.splitlines()[2].split(' ')[-1])
e = int(data.splitlines()[3].split(' ')[-1])
c = int(data.splitlines()[4].split(' ')[-1])

bounds = [0, Fraction(N)]

m = 0
while True:
    c2 = (c * pow(2, e, N)) % N
    lsb = lsb_oracle(s, c2)
    if lsb == 1:
        bounds[0] = sum(bounds)/2
    else:
        bounds[1] = sum(bounds)/2
    diff = bounds[1] - bounds[0]
    diff = diff.numerator / diff.denominator
    if diff == 0:
        lsb_continue(s, 'no')
        m = bounds[1].numerator / bounds[1].denominator
        break
    else:
        lsb_continue(s, 'yes')
    c = c2

plaintext = long_to_bytes(m)
print plaintext
s.sendall(plaintext + '\n')
data = recvuntil(s, '\r\n').rstrip()
print(data)

#### Part 4 ####
data = recvuntil(s, '?\r\n').rstrip()
print(data)

実行結果は以下の通り。

Part 1 --> This is one of the most common RSA attacks in CTFs!

N = 64966240030622416154839827358419075787700771225076921979975519819154379405907914717101294108015192141036047346810295220638782496631671743842278813053579406552862077347599267299527505522824709921132036362672401353388280386832508538652443480504691404328800041296994272057227802594287137033629372917298396205191
e = 18897396846109758481310934994296350806569267455701311992638766018627831581009309492821843466468973510333979530532120915905743086916072900463338998248102631007437910144192787267636874586386795287942218953927853971469553974554238093433441486519100803296643451885175277621423454405914938416196598594294858816375
c = 10288046343769309352038206359354318857835082912701170439434605861690327425219086892948000634310828315814021366481610878615330506478118357269212201339503086185635842539317792028973305053463479633128408639025579945030309123981804583724043342244929765529405639948295384349266719842472519935827521371648600621879

What is the plaintext?
Wiener wiener chicken dinner★
Success!
Part 2 --> Sexy primes were used to make the modulus!

N = 45591594543939036820581386282432430634955511505150874457884359540572791976098908634789254370635340951180420426249770205038465453036549929252077499917223028597156933864766645758057971022945137582325989558087380734338603952458808958686437329653639491787734717063675333378655914214268579152057338140895926822491
e = 65537
c = 1708819600505262662539757775443954762683877936532473290727105020006945400857696115070453339081578199050469415470540794379293606139546129994163640808382612444667923489770883470272982436648490695992903391654824793932805394803400703739482023640385634279438253184886814712191392363709244699867909525156210059364

What is the plaintext?
Who came up with this math term anyway?★
Success!
Part 3 --> Looks like there is a oracle which is telling the LSB of the plaintext. That will not help you, right?

N = 109348420627756394000768307621000140796762408681674290280503383662718887865271066160414557156837970223840962200617929486260708982938463365024216272298079386239587157406106833121579380686823642057127848623201143329088238125552866329719675775914925733415134594453945302024641396321470463986568239065915058166509
e = 65537
c = 102219966092978666136905985476473513076730266069351004765113054416554816684047329686835952891208604017623807256925869923546280554066663353452874562113606734151684202401268135164127466689640303236108907937347738312083759283678094362520433924354019998048687356209621055622260598528334209087995017380709399476003

What would you like to decrypt? (please respond with an integer)
58101787051878295673143737889830937346779825958774592954145107652091025392203919148348709641166195917217170170224635034596166995962158852368408500879016932083400613980561912499924421749347934676259288606626906862864378630004520540468405929415593170899863378911867947597671612600446014882776003783388390820500

The oracle responds with: 0
Would you like to continue? (yes/no)
yes

What would you like to decrypt? (please respond with an integer)
21195387716739457498770225156930606664626809677658271950603879325589619135196073392865833016406558459298174051599941854248154440860637778737188164436426768514693793440065047988065393182622312111758810479758546620734517515999523422673095709011895841378003049575595189068189765806659423622078091463103648797755

The oracle responds with: 0
Would you like to continue? (yes/no)
yes

                :

What would you like to decrypt? (please respond with an integer)
97090479463767367266144858706966696872858612685074568798977905817980050283622011349579903601171589062514501731617284966201794789821959640815373500458993691252191844650813200300560194198624117060001473815679990625202757425927750306343133690448812794267475176286942595651306433929723374277942685790092023853163

The oracle responds with: 0
Would you like to continue? (yes/no)
no

What is the plaintext?
Totally did not mean to put an oracle there★
Success!
Part 4 --> Oops, looks like I leaked part of the private key. Hope that doesn't come back to bite me!

N = 132682485803007099170424605940744898698288032907359531404311358689896921894394276311289421570502755510540171857625782559259936160050939005721985759875822326177754881128394850748044495701494647981635565335755052568561168111300052786557505645328497636109516071109811226177599105551923507900026268168095997962219
e = 17
d0 = 12061421581045547984738981416661612812979557949924175556577182750790198461467294035656279662728773071179872302537194516065966306163352529359051235330625201
c = 33742456768040833693431609406454945818439152783101388625351840125597392858468769560111011691367935143612704350187927907776510550984267239989726968960539378753293336524458341747441346573942609816271185540849660910160639192981312793330720752937763828849018126002943985420247023073683850935357468022129481891622
d0bits = 512
nBits = 1024

What is the plaintext?

最後にsageを使って、Partial Key Exposure Attackで復号する。

#!/usr/bin/sage
from Crypto.Util.number import *

def partial_p(p0, kbits, n):
    PR.<x> = PolynomialRing(Zmod(n))
    nbits = n.nbits()
    f = 2^kbits*x + p0
    f = f.monic()
    roots = f.small_roots(X=2^(nbits//2-kbits), beta=0.3)  # find root < 2^(nbits//2-kbits) with factor >= n^0.3
    if roots:
        x0 = roots[0]
        p = gcd(2^kbits*x0 + p0, n)
        return ZZ(p)
def find_p(d0, kbits, e, n):
    X = var('X')
    for k in range(1, e+1):
        results = solve_mod([e*d0*X - k*X*(n-X+1) + k*n == X], 2^kbits)
        for x in results:
            p0 = ZZ(x[0])
            p = partial_p(p0, kbits, n)
            if p:
                return p

if __name__ == '__main__':
    N = 132682485803007099170424605940744898698288032907359531404311358689896921894394276311289421570502755510540171857625782559259936160050939005721985759875822326177754881128394850748044495701494647981635565335755052568561168111300052786557505645328497636109516071109811226177599105551923507900026268168095997962219
    e = 17
    d0 = 12061421581045547984738981416661612812979557949924175556577182750790198461467294035656279662728773071179872302537194516065966306163352529359051235330625201
    c = 33742456768040833693431609406454945818439152783101388625351840125597392858468769560111011691367935143612704350187927907776510550984267239989726968960539378753293336524458341747441346573942609816271185540849660910160639192981312793330720752937763828849018126002943985420247023073683850935357468022129481891622
    d0bits = 512
    nBits = 1024

    p = find_p(d0, d0bits, e, N)
    q = N // p
    phi = (p - 1) * (q - 1)
    d = inverse_mod(e, phi)
    m = pow(c, d, N)
    plaintext = long_to_bytes(m)
    print(plaintext)

復号結果は以下の通り。

I'll be careful next time to not leak the key★

nc接続し、手動でここまで復号した平文を入力していく。

$ nc crypto.chal.csaw.io 5008
Part 1 --> This is one of the most common RSA attacks in CTFs!

N = 57617918741128191583229588318384729085119885425668753907446952842586645861666815267839632079563824412545600301808698355017350597224411369604831290911127344070166445311658738681065923707309169618133294419524524550000860539642979691736394333710071746531065692557021273452140144532143770001705929676449759937621
e = 14858060365944842673412188305642410338564983111885306332589507876553373824896256836885663767524831616661981834693871737187139258325450841130092123222898014095591216155373017382279794513778319406293152816524633461536000589359315075544546343018965651012864921767810338686881525299572470395390153216211542495731
c = 35715846185117431946821533506741315394122314639603262003238720681590430245351810458532502476778891542011081223501067422392078718670824919144896518751129740642470182379389308397654532193225526699213561189055169096506504501303020539608821164113210417957177817217713976953101782835645328060179709425225037979568

What is the plaintext?
Wiener wiener chicken dinner
Success!
Part 2 --> Sexy primes were used to make the modulus!

N = 95585325793539053915860304319728969840644989079527294697749247414650396512551723460189054317475031935552859316594916940268613125197360225839725677067855277077719661798291394467740467448073174262687410035467994658870903157261987186336137081402469855573155805882621958091665703430680631712361323034287008275591
e = 65537
c = 92718411798395462674971316863377528179727808586679176939278617378359986342961875012624458182184695433169252212840724588071530498219438581458777082601960446356514508062953010685888036702835152515953566759492087517867460210499349454194749398178950341969866062349961639032769722009080694820379991773839703034635

What is the plaintext?
Who came up with this math term anyway?
Success!
Part 3 --> Looks like there is a oracle which is telling the LSB of the plaintext. That will not help you, right?

N = 128602630724080646290983422735529393496609427796937239988768550470943022367335042142716441441369646064313976865399466202779377033933421223644473767413921854052780199847964437733082652716671950769859170556687338466600542791554687042559856626664046840655865125069627796881314078494842123965163725677517344036761
e = 65537
c = 85972682782237037253861162305837391120394155520924154767157996280794456396702966114968536360208330224740715022173131419260097476202495193602331370958390133251854523465921125224261880528349111256367878722760145333157075019989974436931271337625366718961930698640578383536311772908361124229779985722699833303384

What would you like to decrypt? (please respond with an integer)
1

The oracle responds with: 1
Would you like to continue? (yes/no)
no

What is the plaintext?
Totally did not mean to put an oracle there
Success!
Part 4 --> Oops, looks like I leaked part of the private key. Hope that doesn't come back to bite me!

N = 83911915786432272732898540763482241212381869303498512733861924625622652364299877685065336430745276995041262296874471585917795892240662482469346420388286620619511493358447310007362336901129834288907162199213109773696379865751592775871080704586458811639234689628483355785678455301578325045615004045344445996699
e = 17
d0 = 11222654586318802857348160869400000993441761116256321171688162861296485610127291197865166668145094066146054831200383190666023443958097130222261367784469825
c = 76316705228196123833643948181589241430980706581675687634416325224906065750882676205124830094697661543853983359742169850449507187995701436014309559846372830746866299982251110117963533813833146452125765180943827694830666559625676725150763711402719667665694441881646048420743172497306344425789642649599467128049
d0bits = 512
nBits = 1024

What is the plaintext?
I'll be careful next time to not leak the key
Success!

Congrats on passing the RSA Pop Quiz! Here is your flag: flag{l00K5_L1K3_y0u_H4v3_p4223D_7h3_D1ff1Cul7_r54_p0p_Kw12_w17H_fLy1N9_C0L0r2}
flag{l00K5_L1K3_y0u_H4v3_p4223D_7h3_D1ff1Cul7_r54_p0p_Kw12_w17H_fLy1N9_C0L0r2}

Gotta Decrypt Them All (crypto)

問題はモールス信号になっている。/ で区切り、デコードするとASCIIコードになっているので、さらにデコードする。base64文字列になるので、デコードすると、RSA暗号のパラメータが表示される。c, eが小さいためLow Public-Exponent Attackで復号する。その後rot13でデコードする。この問題に繰り返し答えていく。

import socket
import base64
import gmpy
from Crypto.Util.number import *

def recvuntil(s, tail):
    data = ''
    while True:
        if tail in data:
            return data
        data += s.recv(1)

morse = {'.-': 'A', '-...': 'B', '-.-.': 'C', '-..': 'D', '.': 'E',
    '..-.': 'F', '--.': 'G', '....': 'H', '..': 'I', '.---': 'J', '-.-': 'K',
    '.-..': 'L', '--': 'M', '-.': 'N', '---': 'O', '.--.': 'P', '--.-': 'Q',
    '.-.': 'R', '...': 'S', '-': 'T', '..-': 'U', '...-': 'V', '.--': 'W',
    '-..-':'X' , '-.--': 'Y', '--..': 'Z', '-----': '0', '.----': '1',
    '..---': '2', '...--': '3', '....-': '4', '.....': '5', '-....': '6',
    '--...': '7', '---..': '8', '----.': '9'
}

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(('crypto.chal.csaw.io', 5001))

for _ in range(2):
    data = recvuntil(s, '\n').rstrip()
    print data

for i in range(6):
    data = recvuntil(s, '\n').rstrip()
    print data
    data = recvuntil(s, '\n').rstrip()
    print data
    words = data.split(' /')

    codes = []
    for word in words:
        cs = word.rstrip().split(' ')
        w = ''
        for c in cs:
            w += morse[c]
        codes.append(int(w))

    enc = ''
    for code in codes:
        enc += chr(code)

    enc = base64.b64decode(enc)
    print enc

    N = int(enc.splitlines()[0].split(' ')[-1])
    e = int(enc.splitlines()[1].split(' ')[-1])
    c = int(enc.splitlines()[2].split(' ')[-1])

    m = gmpy.root(c, e)[0]
    dec = long_to_bytes(m)
    plaintext = dec.decode('rot13')

    data = recvuntil(s, '>> ')
    print data + plaintext
    s.sendall(plaintext + '\n')
    data = recvuntil(s, '\n').rstrip()
    print data
    data = recvuntil(s, '\n').rstrip()
    print data

data = recvuntil(s, '\n').rstrip()
print data

実行結果は以下の通り。

Can you decrypt them all to prove yourself?

What does this mean?
---.. ....- /.---- ----- ..... /-.... ..... /..... --... /--... ...-- /-.... ---.. /-.... ----. /....- ---.. /--... --... /.---- ----- -.... /----. ----. /..... ...-- /--... ---.. /.---- ..--- ..--- /----. ----. /....- ---.. /--... --... /.---- ----- -.... /.---- ----- ...-- /....- ----. /--... ----. /-.... ---.. /.---- ----- ...-- /..... ----- /--... --... /.---- ----- -.... /-.... ----. /....- ---.. /--... --... /-.... ---.. /.---- ----- ...-- /..... ...-- /--... --... /.---- ----- -.... /---.. ..... /....- ----. /--... --... /.---- ----- -.... /.---- ----- ...-- /....- ----. /--... ---.. /---.. ....- /.---- ----- --... /.---- .---- ----. /--... ----. /-.... ---.. /---.. ----. /.---- ..--- ----- /--... ---.. /---.. ....- /---.. ..... /.---- ..--- ----- /--... ----. /---.. ....- /-.... ----. /....- ---.. /--... --... /---.. ....- /----. ----. /....- ----. /--... --... /.---- ----- -.... /--... --... /..... ...-- /--... --... /.---- ----- -.... /-.... ----. /....- ---.. /--... --... /-.... ---.. /---.. ----. /....- ----. /--... ----. /-.... ---.. /---.. ----. /..... ----- /--... ---.. /-.... ---.. /.---- ----- ...-- /.---- ..--- ----- /--... ----. /---.. ....- /--... ...-- /.---- .---- ----. /--... --... /.---- ..--- ..--- /--... --... /..... ..--- /--... ---.. /-.... ---.. /--... ...-- /.---- ..--- ----- /--... --... /---.. ....- /.---- ----- ...-- /....- ---.. /--... --... /.---- ----- -.... /---.. .---- /.---- .---- ----. /--... ---.. /.---- ..--- ..--- /----. ----. /....- ----. /--... ---.. /.---- ..--- ..--- /---.. .---- /..... ...-- /--... ---.. /.---- ..--- ..--- /---.. ----. /.---- ..--- ..--- /--... --... /-.... ---.. /---.. ----. /..... ...-- /--... ---.. /-.... ---.. /---.. ----. /.---- ..--- .---- /--... ----. /---.. ....- /----. ----. /....- ---.. /--... ----. /---.. ....- /-.... ----. /.---- ..--- ..--- /--... ----. /-.... ---.. /----. ----. /.---- ..--- ..--- /--... --... /---.. ....- /----. ----. /..... ...-- /--... ----. /---.. ....- /-.... ----. /.---- ..--- .---- /--... --... /.---- ----- -.... /---.. .---- /.---- ..--- ..--- /--... --... /.---- ..--- ..--- /---.. ..... /....- ----. /--... ---.. /.---- ..--- ..--- /.---- ----- --... /..... ..--- /--... --... /.---- ..--- ..--- /---.. .---- /.---- .---- ----. /--... --... /---.. ....- /-.... ----. /.---- ..--- ----- /--... ----. /---.. ....- /-.... ----. /....- ---.. /--... ---.. /.---- ----- -.... /--... --... /.---- ..--- .---- /--... ----. /---.. ....- /---.. ----. /.---- ..--- ..--- /--... ---.. /---.. ....- /-.... ----. /.---- .---- ----. /--... --... /---.. ....- /-.... ----. /..... ..--- /--... ---.. /.---- ----- -.... /---.. ..... /....- ----. /--... --... /.---- ----- -.... /---.. ----. /.---- .---- ----. /--... ---.. /.---- ----- -.... /--... ...-- /.---- ..--- ..--- /--... --... /-.... ---.. /----. ----. /.---- .---- ----. /--... --... /-.... ---.. /---.. ----. /.---- ..--- ----- /--... --... /---.. ....- /---.. ----. /..... .---- /--... ---.. /.---- ..--- ..--- /--... ...-- /.---- ..--- ----- /--... ---.. /.---- ----- -.... /-.... ..... /..... ..--- /--... ---.. /.---- ----- -.... /---.. ..... /.---- ..--- ----- /--... ---.. /.---- ..--- ..--- /--... ...-- /..... ..--- /--... ----. /---.. ....- /-.... ----. /..... ..--- /--... --... /-.... ---.. /--... --... /.---- ..--- ..--- /--... --... /.---- ----- -.... /---.. ----. /.---- ..--- ..--- /--... --... /-.... ---.. /---.. ..... /.---- .---- ----. /--... --... /-.... ---.. /--... --... /..... ..--- /--... ---.. /.---- ..--- ..--- /-.... ----. /.---- .---- ----. /--... --... /.---- ..--- ..--- /--... ...-- /..... .---- /--... --... /---.. ....- /----. ----. /.---- .---- ----. /--... ---.. /.---- ..--- ..--- /-.... ..... /.---- ..--- ..--- /--... --... /.---- ----- -.... /----. ----. /.---- ..--- .---- /--... ----. /-.... ---.. /---.. ----. /..... ...-- /--... ---.. /.---- ..--- ..--- /---.. ..... /.---- ..--- .---- /--... ---.. /.---- ..--- ..--- /--... --... /.---- ..--- .---- /--... ---.. /.---- ..--- ..--- /---.. .---- /.---- .---- ----. /--... --... /---.. ....- /.---- ----- --... /..... .---- /--... --... /-.... ---.. /---.. .---- /.---- .---- ----. /--... ---.. /.---- ..--- ..--- /----. ----. /.---- .---- ----. /--... ---.. /---.. ....- /----. ----. /..... ----- /--... ---.. /.---- ----- -.... /-.... ..... /....- ----. /--... --... /.---- ----- -.... /--... --... /..... ...-- /--... ---.. /.---- ..--- ..--- /--... ...-- /.---- ..--- ..--- /--... --... /-.... ---.. /---.. ----. /..... .---- /--... ---.. /-.... ---.. /---.. ----. /.---- ..--- ..--- /--... ---.. /-.... ---.. /.---- ----- ...-- /..... ----- /--... ---.. /.---- ----- -.... /-.... ----. /..... ..--- /--... ----. /---.. ....- /.---- ----- --... /..... ----- /--... --... /.---- ----- -.... /.---- ----- ...-- /.---- ..--- ..--- /--... ---.. /-.... ---.. /---.. ----. /..... .---- /--... --... /-.... ---.. /----. ----. /.---- ..--- ----- /--... ---.. /---.. ....- /--... --... /.---- .---- ----. /--... --... /---.. ....- /----. ----. /..... ..--- /--... --... /.---- ..--- ..--- /---.. ..... /.---- .---- ----. /--... ----. /-.... ---.. /-.... ----. /.---- ..--- ..--- /--... ----. /---.. ....- /---.. ..... /..... .---- /--... --... /---.. ....- /---.. ..... /....- ---.. /--... --... /.---- ..--- ..--- /---.. .---- /.---- ..--- ..--- /--... --... /.---- ..--- ..--- /-.... ----. /....- ----. /--... ---.. /---.. ....- /---.. .---- /....- ---.. /--... ----. /-.... ---.. /-.... ----. /..... .---- /--... --... /---.. ....- /--... --... /.---- .---- ----. /--... --... /---.. ....- /--... --... /.---- ..--- ..--- /--... ----. /-.... ---.. /.---- ----- --... /.---- .---- ----. /--... ---.. /.---- ----- -.... /--... --... /....- ---.. /--... ---.. /.---- ..--- ..--- /---.. ..... /.---- ..--- ----- /--... ---.. /-.... ---.. /----. ----. /.---- ..--- .---- /--... --... /.---- ----- -.... /-.... ----. /..... .---- /--... ----. /---.. ....- /---.. .---- /..... ...-- /--... ----. /-.... ---.. /---.. .---- /....- ---.. /--... --... /---.. ....- /.---- ----- --... /.---- ..--- .---- /--... ---.. /.---- .---- ----. /.---- .---- ..--- /.---- ----- ---.. /--... ...-- /-.... ---.. /....- ---.. /.---- ----- ...-- /--... --... /.---- .---- ----. /.---- .---- ..--- /.---- ----- -.... /--... ...-- /-.... ---.. /....- ---.. /.---- ----- ...-- /--... --... /---.. ....- /---.. ..... /.---- ..--- .---- /--... --... /---.. ....- /---.. ----. /..... .---- /--... ---.. /-.... ---.. /--... ...-- /....- ---.. /--... --... /.---- ----- -.... /----. ----. /.---- ..--- ..--- /--... ----. /---.. ....- /----. ----. /..... .---- /--... ---.. /-.... ---.. /--... --... /..... ----- /--... ---.. /.---- ..--- ..--- /-.... ..... /.---- ..--- .---- /--... ----. /-.... ---.. /.---- ----- --... /.---- .---- ----. /--... --... /.---- ----- -.... /----. ----. /.---- ..--- ..--- /--... --... /.---- ----- -.... /----. ----. /....- ---.. /--... ---.. /---.. ....- /-.... ..... /.---- ..--- ----- /--... ---.. /.---- ..--- ..--- /--... --... /....- ---.. /--... --... /-.... ---.. /-.... ----. /.---- ..--- .---- /--... ---.. /.---- ..--- ..--- /---.. ----. /....- ----. /--... ----. /-.... ---.. /.---- ----- ...-- /.---- ..--- .---- /--... ---.. /-.... ---.. /.---- ----- ...-- /..... .---- /--... --... /-.... ---.. /-.... ..... /..... ..--- /--... --... /.---- ..--- ..--- /--... --... /..... ..--- /--... ----. /---.. ....- /----. ----. /.---- ..--- ..--- /--... --... /.---- ----- -.... /--... --... /.---- ..--- .---- /--... ---.. /---.. ....- /-.... ..... /.---- ..--- .---- /--... --... /---.. ....- /----. ----. /.---- .---- ----. /--... --... /.---- ..--- ..--- /---.. ..... /..... ----- /--... --... /.---- ..--- ..--- /----. ----. /....- ----. /--... --... /---.. ....- /---.. .---- /..... ..--- /--... ----. /-.... ---.. /-.... ----. /..... ..--- /--... ---.. /.---- ----- -.... /-.... ..... /..... ...-- /--... ---.. /.---- ----- -.... /--... ...-- /.---- ..--- ----- /--... ----. /-.... ---.. /---.. ----. /.---- ..--- ..--- /--... ----. /---.. ....- /----. ----. /....- ----. /--... --... /.---- ----- -.... /---.. ..... /..... -----
N = 142797742858862140892552855908615519141752392140658664819203384211842407757497630694629749138731799122433557983401119146329635101186552606230700611677216086517289180332630500387103271707032728697527327401970407705766052397230674634866189962834670715301783508139571543433155448171301338906347514722179498441927
e = 3
c = 152167424273977436702890273274501734012765882487008338973232502170356375148818609621863975256
>> Pokemon Names
You are correct!

What does this mean?
---.. ....- /.---- ----- ..... /-.... ..... /..... --... /--... ...-- /-.... ---.. /.---- ----- ...-- /....- ---.. /--... --... /-.... ---.. /---.. ..... /....- ----. /--... --... /-.... ---.. /---.. .---- /.---- .---- ----. /--... --... /.---- ----- -.... /.---- ----- ...-- /.---- ..--- ..--- /--... ---.. /.---- ----- -.... /----. ----. /..... ...-- /--... ---.. /---.. ....- /----. ----. /.---- ..--- ..--- /--... --... /---.. ....- /---.. .---- /..... ..--- /--... --... /.---- ----- -.... /--... ...-- /....- ---.. /--... ---.. /.---- ----- -.... /---.. ..... /..... ..--- /--... ---.. /.---- ----- -.... /-.... ----. /..... .---- /--... ----. /-.... ---.. /--... --... /..... ----- /--... --... /-.... ---.. /--... --... /....- ----. /--... ---.. /---.. ....- /----. ----. /....- ----. /--... --... /---.. ....- /-.... ..... /.---- ..--- ..--- /--... --... /---.. ....- /.---- ----- --... /.---- ..--- .---- /--... ---.. /.---- ..--- ..--- /----. ----. /.---- ..--- ----- /--... ----. /-.... ---.. /---.. ..... /.---- ..--- .---- /--... --... /.---- ..--- ..--- /---.. ..... /.---- ..--- .---- /--... ---.. /---.. ....- /.---- ----- ...-- /..... ..--- /--... --... /-.... ---.. /--... ...-- /.---- ..--- ----- /--... --... /-.... ---.. /-.... ..... /.---- .---- ----. /--... --... /.---- ..--- ..--- /----. ----. /..... .---- /--... ----. /-.... ---.. /-.... ..... /.---- .---- ----. /--... ---.. /.---- ----- -.... /---.. .---- /..... ...-- /--... ---.. /-.... ---.. /.---- ----- ...-- /.---- ..--- .---- /--... ---.. /.---- ..--- ..--- /--... ...-- /..... .---- /--... ---.. /---.. ....- /.---- ----- ...-- /..... ----- /--... ---.. /---.. ....- /---.. ----. /.---- .---- ----. /--... --... /.---- ..--- ..--- /-.... ..... /..... ...-- /--... --... /---.. ....- /----. ----. /.---- ..--- ----- /--... --... /.---- ..--- ..--- /.---- ----- ...-- /.---- .---- ----. /--... ---.. /-.... ---.. /.---- ----- --... /.---- .---- ----. /--... ---.. /-.... ---.. /---.. ..... /.---- .---- ----. /--... ----. /---.. ....- /---.. .---- /..... ----- /--... ---.. /.---- ..--- ..--- /--... ...-- /.---- ..--- ----- /--... ----. /---.. ....- /----. ----. /....- ---.. /--... ----. /-.... ---.. /.---- ----- ...-- /.---- ..--- ..--- /--... --... /---.. ....- /-.... ..... /....- ---.. /--... --... /.---- ..--- ..--- /--... ...-- /.---- ..--- ..--- /--... --... /.---- ----- -.... /---.. ..... /.---- ..--- ----- /--... ---.. /---.. ....- /--... ...-- /....- ---.. /--... ----. /-.... ---.. /----. ----. /....- ----. /--... ----. /-.... ---.. /--... --... /....- ----. /--... ----. /---.. ....- /---.. .---- /.---- .---- ----. /--... --... /---.. ....- /--... ...-- /..... ...-- /--... --... /---.. ....- /.---- ----- --... /.---- ..--- ..--- /--... ---.. /-.... ---.. /.---- ----- ...-- /..... ----- /--... ---.. /-.... ---.. /--... --... /..... .---- /--... --... /.---- ..--- ..--- /.---- ----- --... /....- ---.. /--... --... /.---- ..--- ..--- /--... ...-- /..... ...-- /--... ----. /-.... ---.. /.---- ----- ...-- /..... ...-- /--... --... /-.... ---.. /--... ...-- /....- ---.. /--... --... /---.. ....- /--... ...-- /....- ---.. /--... ---.. /.---- ..--- ..--- /-.... ..... /.---- ..--- ..--- /--... ---.. /---.. ....- /---.. ..... /.---- ..--- ----- /--... ---.. /---.. ....- /---.. .---- /....- ---.. /--... --... /.---- ..--- ..--- /--... ...-- /..... .---- /--... ----. /---.. ....- /----. ----. /..... ----- /--... ----. /---.. ....- /.---- ----- ...-- /..... .---- /--... ----. /---.. ....- /.---- ----- ...-- /..... .---- /--... ---.. /.---- ..--- ..--- /---.. ----. /.---- ..--- .---- /--... --... /---.. ....- /----. ----. /....- ---.. /--... --... /-.... ---.. /.---- ----- ...-- /.---- ..--- ----- /--... --... /---.. ....- /---.. .---- /.---- .---- ----. /--... --... /-.... ---.. /----. ----. /....- ----. /--... ----. /-.... ---.. /.---- ----- --... /.---- .---- ----. /--... ----. /-.... ---.. /---.. .---- /..... ----- /--... ---.. /.---- ----- -.... /.---- ----- --... /..... ----- /--... ----. /---.. ....- /---.. ..... /..... ..--- /--... ---.. /.---- ----- -.... /---.. .---- /....- ---.. /--... ----. /-.... ---.. /---.. ----. /.---- ..--- .---- /--... ----. /---.. ....- /---.. ..... /..... ...-- /--... ----. /---.. ....- /-.... ..... /..... .---- /--... --... /-.... ---.. /--... --... /.---- ..--- ..--- /--... ----. /-.... ---.. /--... ...-- /..... ...-- /--... --... /.---- ----- -.... /-.... ..... /....- ---.. /--... ---.. /.---- ..--- ..--- /-.... ..... /..... ..--- /--... ---.. /---.. ....- /---.. .---- /..... ----- /--... ----. /-.... ---.. /----. ----. /.---- ..--- ..--- /--... ----. /-.... ---.. /.---- ----- ...-- /.---- ..--- .---- /--... ---.. /.---- ----- -.... /.---- ----- --... /..... ..--- /--... --... /.---- ----- -.... /---.. ----. /.---- ..--- ----- /--... ----. /-.... ---.. /-.... ..... /..... ...-- /--... ----. /-.... ---.. /----. ----. /..... .---- /--... ---.. /---.. ....- /-.... ----. /....- ---.. /--... ---.. /.---- ..--- ..--- /----. ----. /..... ----- /--... ---.. /-.... ---.. /--... --... /..... .---- /--... --... /.---- ----- -.... /---.. ..... /.---- ..--- .---- /--... ---.. /.---- ----- -.... /---.. ----. /....- ----. /--... --... /-.... ---.. /-.... ..... /....- ----. /--... ---.. /---.. ....- /.---- ----- --... /....- ---.. /--... ---.. /.---- ..--- ..--- /.---- ----- ...-- /.---- .---- ----. /--... --... /.---- ..--- ..--- /----. ----. /....- ---.. /--... ---.. /-.... ---.. /.---- ----- ...-- /....- ---.. /--... ---.. /.---- ..--- ..--- /--... ...-- /.---- ..--- ----- /--... ----. /---.. ....- /---.. .---- /..... ..--- /--... ---.. /.---- ..--- ..--- /---.. ..... /.---- ..--- .---- /--... ----. /---.. ....- /---.. ----. /..... ...-- /--... --... /.---- ----- -.... /.---- ----- ...-- /.---- .---- ----. /--... ---.. /---.. ....- /--... ...-- /.---- ..--- ..--- /--... ----. /---.. ....- /---.. ----. /.---- ..--- .---- /--... ---.. /.---- ..--- ..--- /.---- ----- ...-- /.---- ..--- ..--- /--... --... /.---- ..--- ..--- /---.. .---- /.---- ..--- ----- /-.... --... /.---- ----- ----. /---.. ..... /.---- ----- ...-- /---.. ----- /---.. ...-- /-.... ..... /.---- ..--- ..--- /-.... --... /.---- ----- ----. /--... --... /.---- ----- ...-- /---.. ----- /---.. ...-- /-.... ..... /..... .---- /--... ---.. /-.... ---.. /---.. ..... /..... ----- /--... ----. /-.... ---.. /----. ----. /..... .---- /--... ---.. /.---- ----- -.... /.---- ----- --... /..... ..--- /--... ---.. /.---- ..--- ..--- /---.. .---- /.---- ..--- .---- /--... --... /.---- ----- -.... /.---- ----- ...-- /..... .---- /--... ---.. /.---- ----- -.... /.---- ----- --... /..... ----- /--... ----. /-.... ---.. /--... --... /....- ----. /--... ---.. /.---- ..--- ..--- /---.. ----. /.---- .---- ----. /--... ----. /---.. ....- /-.... ..... /..... .---- /--... --... /.---- ----- -.... /-.... ----. /.---- ..--- .---- /--... ----. /---.. ....- /.---- ----- --... /..... ...-- /--... --... /---.. ....- /---.. ..... /.---- ..--- .---- /--... ----. /-.... ---.. /---.. ----. /.---- .---- ----. /--... ----. /---.. ....- /----. ----. /-.... .----
N = 84055040283679573148224658617836035575103192771852352588021000377800649482727586560309171380490450946721974883104323251524875835940129193486437394329889024124703551544327976987987762174081140075890846696958644862959907033829204708546873882698261809877514776437252665005594780374484721948752969280523962783341
e = 3
c = 745687769874228769683576090721299915286097
>> Elekid
You are correct!

What does this mean?
---.. ....- /.---- ----- ..... /-.... ..... /..... --... /--... ...-- /-.... ---.. /-.... ----. /.---- ..--- ----- /--... ---.. /---.. ....- /--... --... /..... .---- /--... ---.. /-.... ---.. /---.. .---- /..... ----- /--... --... /-.... ---.. /---.. ----. /....- ---.. /--... --... /.---- ----- -.... /--... --... /.---- ..--- ----- /--... ---.. /.---- ..--- ..--- /---.. .---- /.---- ..--- .---- /--... ---.. /.---- ----- -.... /.---- ----- ...-- /....- ----. /--... ---.. /-.... ---.. /-.... ..... /.---- ..--- .---- /--... ----. /-.... ---.. /---.. .---- /.---- ..--- .---- /--... --... /.---- ..--- ..--- /.---- ----- --... /.---- ..--- .---- /--... ---.. /.---- ----- -.... /-.... ----. /....- ----. /--... ----. /---.. ....- /---.. ..... /..... .---- /--... ----. /-.... ---.. /-.... ----. /.---- ..--- ..--- /--... ---.. /.---- ..--- ..--- /.---- ----- --... /..... ..--- /--... --... /.---- ----- -.... /-.... ----. /.---- ..--- ----- /--... ---.. /.---- ..--- ..--- /--... --... /.---- .---- ----. /--... ---.. /.---- ----- -.... /----. ----. /..... ----- /--... ----. /-.... ---.. /--... ...-- /....- ----. /--... ---.. /---.. ....- /---.. ..... /.---- .---- ----. /--... ----. /---.. ....- /---.. ----. /..... ..--- /--... ---.. /.---- ----- -.... /-.... ..... /.---- .---- ----. /--... ---.. /.---- ..--- ..--- /---.. ----. /..... ...-- /--... ---.. /.---- ----- -.... /---.. ----. /.---- ..--- ..--- /--... ---.. /.---- ..--- ..--- /-.... ----. /..... .---- /--... ---.. /.---- ----- -.... /---.. ..... /..... ..--- /--... ---.. /.---- ----- -.... /----. ----. /.---- ..--- .---- /--... ---.. /.---- ..--- ..--- /.---- ----- ...-- /.---- ..--- ..--- /--... ----. /---.. ....- /.---- ----- ...-- /....- ---.. /--... ----. /---.. ....- /---.. ..... /..... ----- /--... ----. /-.... ---.. /.---- ----- ...-- /..... ..--- /--... ---.. /.---- ..--- ..--- /--... --... /....- ----. /--... ---.. /-.... ---.. /---.. ..... /..... ----- /--... ---.. /-.... ---.. /--... ...-- /.---- ..--- ..--- /--... --... /-.... ---.. /-.... ..... /.---- .---- ----. /--... ---.. /-.... ---.. /.---- ----- --... /.---- ..--- .---- /--... --... /.---- ..--- ..--- /-.... ..... /.---- ..--- .---- /--... ---.. /.---- ..--- ..--- /--... --... /.---- .---- ----. /--... ---.. /---.. ....- /----. ----. /.---- .---- ----. /--... ---.. /.---- ..--- ..--- /.---- ----- --... /.---- ..--- .---- /--... --... /---.. ....- /.---- ----- ...-- /.---- ..--- .---- /--... --... /---.. ....- /--... --... /.---- ..--- ----- /--... ---.. /---.. ....- /-.... ..... /..... ..--- /--... ---.. /.---- ----- -.... /-.... ..... /.---- ..--- ----- /--... ---.. /---.. ....- /---.. ----. /..... .---- /--... --... /.---- ----- -.... /.---- ----- --... /....- ---.. /--... --... /-.... ---.. /----. ----. /.---- .---- ----. /--... --... /---.. ....- /---.. ..... /....- ---.. /--... ---.. /.---- ..--- ..--- /-.... ..... /....- ---.. /--... ----. /---.. ....- /.---- ----- ...-- /..... ..--- /--... ---.. /---.. ....- /.---- ----- --... /.---- ..--- ----- /--... ---.. /.---- ----- -.... /---.. ..... /..... ..--- /--... ----. /-.... ---.. /.---- ----- ...-- /....- ----. /--... ---.. /.---- ..--- ..--- /----. ----. /..... .---- /--... --... /.---- ..--- ..--- /-.... ..... /..... ..--- /--... ---.. /-.... ---.. /-.... ..... /..... ..--- /--... --... /.---- ..--- ..--- /-.... ----. /....- ----. /--... ---.. /.---- ----- -.... /---.. ----. /.---- ..--- ----- /--... ---.. /.---- ..--- ..--- /--... ...-- /..... ..--- /--... --... /-.... ---.. /-.... ----. /.---- ..--- .---- /--... --... /-.... ---.. /----. ----. /.---- ..--- ..--- /--... ---.. /-.... ---.. /---.. .---- /.---- ..--- ..--- /--... ----. /-.... ---.. /-.... ----. /.---- ..--- ----- /--... --... /-.... ---.. /-.... ..... /.---- .---- ----. /--... --... /---.. ....- /---.. ..... /.---- ..--- ..--- /--... ---.. /---.. ....- /-.... ----. /..... .---- /--... ----. /---.. ....- /-.... ----. /..... ..--- /--... ----. /---.. ....- /--... --... /.---- ..--- ----- /--... ----. /-.... ---.. /--... ...-- /..... ----- /--... --... /-.... ---.. /---.. ..... /..... ----- /--... --... /---.. ....- /---.. .---- /.---- ..--- ..--- /--... ---.. /.---- ----- -.... /.---- ----- ...-- /..... ..--- /--... ---.. /---.. ....- /-.... ----. /.---- ..--- .---- /--... ---.. /.---- ----- -.... /-.... ----. /..... ----- /--... ---.. /.---- ..--- ..--- /--... ...-- /.---- ..--- ..--- /--... ---.. /.---- ----- -.... /----. ----. /..... ----- /--... ---.. /---.. ....- /---.. ----. /.---- ..--- .---- /--... --... /.---- ..--- ..--- /--... ...-- /.---- .---- ----. /--... ---.. /---.. ....- /--... ...-- /.---- ..--- ----- /--... --... /---.. ....- /.---- ----- --... /.---- ..--- ..--- /--... ---.. /-.... ---.. /.---- ----- --... /.---- ..--- ..--- /--... --... /.---- ----- -.... /-.... ..... /....- ---.. /--... ---.. /.---- ..--- ..--- /.---- ----- ...-- /.---- ..--- .---- /--... ---.. /.---- ----- -.... /--... ...-- /.---- ..--- .---- /--... ----. /-.... ---.. /---.. ----. /.---- .---- ----. /--... ----. /-.... ---.. /-.... ..... /.---- ..--- ----- /--... ----. /---.. ....- /-.... ----. /....- ----. /--... --... /.---- ----- -.... /----. ----. /....- ---.. /--... ---.. /-.... ---.. /-.... ----. /..... ----- /--... ----. /-.... ---.. /.---- ----- --... /....- ---.. /--... --... /.---- ----- -.... /---.. ----. /.---- ..--- ..--- /--... ----. /-.... ---.. /--... ...-- /..... ----- /--... ----. /---.. ....- /---.. ----. /.---- .---- ----. /--... ----. /-.... ---.. /---.. ..... /..... .---- /--... ---.. /-.... ---.. /---.. ----. /..... ...-- /--... ----. /---.. ....- /--... --... /....- ---.. /--... --... /.---- ----- -.... /---.. ----. /.---- .---- ----. /--... ---.. /---.. ....- /---.. ..... /....- ----. /--... --... /.---- ----- -.... /---.. ----. /..... ...-- /--... --... /-.... ---.. /---.. ----. /....- ---.. /--... --... /.---- ----- -.... /---.. ..... /.---- ..--- ..--- /--... --... /.---- ..--- ..--- /---.. .---- /....- ---.. /--... --... /---.. ....- /---.. ..... /..... ...-- /--... --... /.---- ..--- ..--- /-.... ..... /....- ----. /--... --... /.---- .---- ----. /.---- .---- ..--- /.---- ----- ---.. /--... ...-- /-.... ---.. /....- ---.. /.---- ----- ...-- /--... --... /.---- .---- ----. /.---- .---- ..--- /.---- ----- -.... /--... ...-- /-.... ---.. /....- ---.. /.---- ----- ...-- /--... ---.. /---.. ....- /.---- ----- --... /.---- ..--- ..--- /--... ---.. /-.... ---.. /.---- ----- --... /....- ----. /--... ---.. /.---- ..--- ..--- /-.... ..... /.---- .---- ----. /--... --... /.---- ..--- ..--- /--... --... /.---- ..--- .---- /--... ---.. /---.. ....- /-.... ..... /..... ...-- /--... --... /.---- ..--- ..--- /-.... ..... /..... .---- /--... --... /.---- ----- -.... /---.. ..... /.---- ..--- ..--- /--... ---.. /-.... ---.. /---.. ----. /....- ----. /--... --... /.---- ..--- ..--- /--... ...-- /....- ----. /--... ---.. /.---- ----- -.... /---.. ..... /.---- ..--- ..--- /--... ---.. /---.. ....- /-.... ----. /..... ...-- /--... ---.. /.---- ----- -.... /.---- ----- ...-- /....- ----. /--... --... /.---- ..--- ..--- /-.... ----. /.---- ..--- .---- /--... --... /-.... ---.. /-.... ..... /.---- .---- ----.
N = 115374460642317426854028423926159578137982117306768255509686007696637176586727839849568887354564230004923027305707921821315086015672940701547049885916588857773084083156617280120734438110001535179189318260561436885126167236765623205211934932047826228608019152744168942638269608574699342605552690642533441593053
e = 3
c = 593495700332509307253465325653519685312000
>> Yamask
You are correct!

What does this mean?
---.. ....- /.---- ----- ..... /-.... ..... /..... --... /--... ...-- /-.... ---.. /.---- ----- ...-- /....- ----. /--... ---.. /---.. ....- /.---- ----- ...-- /....- ---.. /--... ----. /---.. ....- /-.... ..... /.---- ..--- ----- /--... --... /---.. ....- /--... ...-- /..... ----- /--... --... /.---- ..--- ..--- /---.. ..... /....- ---.. /--... ---.. /.---- ----- -.... /---.. ..... /..... ...-- /--... ---.. /---.. ....- /.---- ----- ...-- /..... .---- /--... --... /---.. ....- /.---- ----- --... /..... ...-- /--... ---.. /.---- ..--- ..--- /.---- ----- ...-- /..... ...-- /--... --... /-.... ---.. /-.... ----. /....- ----. /--... --... /.---- ----- -.... /-.... ----. /....- ---.. /--... ----. /-.... ---.. /.---- ----- ...-- /.---- ..--- ----- /--... ---.. /-.... ---.. /-.... ..... /..... ..--- /--... ---.. /---.. ....- /---.. ..... /..... ----- /--... --... /---.. ....- /--... --... /.---- ..--- ..--- /--... ---.. /---.. ....- /.---- ----- ...-- /..... .---- /--... --... /.---- ..--- ..--- /.---- ----- ...-- /.---- ..--- ..--- /--... --... /-.... ---.. /-.... ----. /..... ----- /--... ---.. /.---- ..--- ..--- /-.... ..... /....- ---.. /--... --... /-.... ---.. /.---- ----- ...-- /....- ----. /--... ----. /-.... ---.. /.---- ----- ...-- /.---- .---- ----. /--... --... /.---- ----- -.... /---.. .---- /.---- ..--- ..--- /--... ----. /-.... ---.. /.---- ----- --... /....- ---.. /--... ---.. /.---- ..--- ..--- /--... ...-- /.---- ..--- ----- /--... --... /-.... ---.. /---.. ----. /....- ---.. /--... --... /-.... ---.. /.---- ----- ...-- /.---- ..--- ..--- /--... ----. /-.... ---.. /-.... ..... /..... ----- /--... ---.. /.---- ..--- ..--- /.---- ----- --... /.---- ..--- .---- /--... --... /.---- ----- -.... /.---- ----- ...-- /.---- .---- ----. /--... ---.. /.---- ----- -.... /-.... ..... /..... ...-- /--... ---.. /.---- ..--- ..--- /--... --... /.---- ..--- ..--- /--... ---.. /-.... ---.. /---.. ..... /.---- ..--- ..--- /--... ---.. /.---- ..--- ..--- /--... --... /.---- .---- ----. /--... ---.. /-.... ---.. /----. ----. /.---- ..--- ----- /--... ---.. /.---- ..--- ..--- /----. ----. /..... ----- /--... ----. /-.... ---.. /.---- ----- --... /.---- ..--- ..--- /--... ----. /---.. ....- /-.... ..... /..... ...-- /--... ---.. /.---- ..--- ..--- /.---- ----- --... /.---- ..--- ..--- /--... --... /.---- ----- -.... /-.... ..... /.---- ..--- .---- /--... ---.. /-.... ---.. /----. ----. /..... ..--- /--... ---.. /-.... ---.. /.---- ----- --... /..... .---- /--... ---.. /.---- ----- -.... /--... ...-- /..... ----- /--... ----. /---.. ....- /-.... ----. /....- ---.. /--... --... /-.... ---.. /.---- ----- ...-- /....- ---.. /--... ----. /---.. ....- /--... ...-- /.---- .---- ----. /--... ----. /-.... ---.. /---.. ----. /..... ..--- /--... ----. /---.. ....- /---.. .---- /..... .---- /--... ----. /---.. ....- /--... ...-- /..... ..--- /--... --... /.---- ..--- ..--- /---.. .---- /....- ----. /--... ---.. /-.... ---.. /-.... ----. /.---- ..--- ..--- /--... ---.. /-.... ---.. /-.... ..... /..... ...-- /--... ----. /---.. ....- /.---- ----- ...-- /....- ---.. /--... ----. /-.... ---.. /--... --... /..... .---- /--... ---.. /.---- ..--- ..--- /--... ...-- /..... ----- /--... --... /.---- ..--- ..--- /--... --... /.---- ..--- ..--- /--... --... /.---- ..--- ..--- /.---- ----- ...-- /.---- ..--- .---- /--... --... /---.. ....- /---.. .---- /....- ----. /--... --... /---.. ....- /-.... ..... /.---- .---- ----. /--... --... /-.... ---.. /.---- ----- ...-- /..... ----- /--... --... /.---- ..--- ..--- /----. ----. /.---- ..--- ----- /--... ---.. /.---- ..--- ..--- /---.. .---- /..... ----- /--... --... /.---- ..--- ..--- /--... ...-- /..... ----- /--... ----. /---.. ....- /--... ...-- /..... .---- /--... ---.. /.---- ----- -.... /--... ...-- /....- ----. /--... --... /.---- ----- -.... /-.... ..... /..... ...-- /--... ---.. /.---- ----- -.... /---.. ..... /.---- ..--- ..--- /--... --... /-.... ---.. /-.... ..... /..... ..--- /--... --... /---.. ....- /-.... ..... /.---- .---- ----. /--... ----. /---.. ....- /.---- ----- ...-- /.---- ..--- ----- /--... --... /.---- ----- -.... /----. ----. /....- ---.. /--... ----. /-.... ---.. /---.. ----. /....- ----. /--... --... /-.... ---.. /---.. ----. /.---- ..--- ..--- /--... --... /-.... ---.. /-.... ..... /..... ...-- /--... ----. /---.. ....- /--... ...-- /.---- ..--- ----- /--... --... /---.. ....- /-.... ----. /..... ..--- /--... --... /-.... ---.. /--... ...-- /.---- ..--- ----- /--... ---.. /.---- ----- -.... /----. ----. /..... ...-- /--... --... /-.... ---.. /--... ...-- /....- ---.. /--... ----. /---.. ....- /---.. ..... /.---- .---- ----. /--... ---.. /.---- ----- -.... /.---- ----- --... /..... ..--- /--... ---.. /.---- ..--- ..--- /---.. ..... /.---- ..--- .---- /--... --... /-.... ---.. /.---- ----- --... /.---- ..--- .---- /--... --... /.---- ..--- ..--- /-.... ----. /....- ---.. /--... --... /-.... ---.. /---.. ----. /..... .---- /--... --... /.---- ----- -.... /-.... ..... /..... .---- /--... --... /.---- ..--- ..--- /--... ...-- /.---- .---- ----. /--... --... /---.. ....- /.---- ----- --... /.---- ..--- ..--- /--... --... /-.... ---.. /-.... ..... /.---- .---- ----. /--... --... /.---- ----- -.... /---.. .---- /.---- .---- ----. /--... ----. /---.. ....- /--... --... /.---- .---- ----. /--... ---.. /---.. ....- /---.. ..... /....- ----. /--... --... /---.. ....- /-.... ----. /..... ..--- /--... ---.. /.---- ..--- ..--- /-.... ..... /..... ...-- /--... --... /---.. ....- /--... ...-- /....- ---.. /--... ---.. /.---- ..--- ..--- /---.. ----. /..... ----- /--... --... /.---- ..--- ..--- /----. ----. /.---- ..--- .---- /--... ----. /-.... ---.. /-.... ----. /....- ---.. /--... --... /.---- ----- -.... /--... ...-- /.---- .---- ----. /--... ---.. /.---- ..--- ..--- /----. ----. /..... .---- /--... ---.. /-.... ---.. /---.. ..... /..... ----- /--... ---.. /.---- ..--- ..--- /--... --... /.---- ..--- ..--- /--... ----. /-.... ---.. /.---- ----- ...-- /.---- ..--- ..--- /--... ----. /-.... ---.. /---.. .---- /.---- ..--- ----- /-.... --... /.---- ----- ----. /---.. ..... /.---- ----- ...-- /---.. ----- /---.. ...-- /-.... ..... /.---- ..--- ..--- /-.... --... /.---- ----- ----. /--... --... /.---- ----- ...-- /---.. ----- /---.. ...-- /-.... ..... /.---- ..--- ..--- /--... ----. /-.... ---.. /.---- ----- --... /..... ..--- /--... ----. /---.. ....- /---.. ----. /..... ...-- /--... ----. /-.... ---.. /---.. .---- /..... ..--- /--... --... /.---- ----- -.... /----. ----. /..... ...-- /--... --... /.---- ..--- ..--- /.---- ----- ...-- /.---- ..--- ..--- /--... --... /.---- ----- -.... /----. ----. /..... .---- /--... ---.. /.---- ----- -.... /.---- ----- --... /....- ---.. /--... ---.. /---.. ....- /-.... ..... /..... ..--- /--... ----. /-.... ---.. /---.. ..... /..... ----- /--... ---.. /.---- ----- -.... /--... ...-- /..... ----- /--... --... /---.. ....- /---.. ----. /.---- ..--- .---- /--... ---.. /.---- ..--- ..--- /--... ...-- /..... ..--- /--... --... /.---- ..--- ..--- /---.. ..... /.---- ..--- ----- /--... ---.. /-.... ---.. /.---- ----- --... /-.... .----
N = 85584901126354659587199789015214881408556133587383016704085880243894721064083806792280609733453730471776893909793202478497626914084920868947928345413409984837726333382145100086371746326927625209653008100981274865063009921118021679024950698752092314067207320193000240930555118709124766372814220777456733883841
e = 3
c = 389896984827938327769450885662616272835149
>> Oddish
You are correct!

What does this mean?
---.. ....- /.---- ----- ..... /-.... ..... /..... --... /--... ...-- /-.... ---.. /.---- ----- ...-- /..... ----- /--... ----. /---.. ....- /.---- ----- --... /.---- ..--- .---- /--... --... /-.... ---.. /--... --... /.---- ..--- ----- /--... ---.. /.---- ..--- ..--- /--... ...-- /....- ---.. /--... ---.. /.---- ..--- ..--- /---.. .---- /....- ---.. /--... --... /---.. ....- /---.. .---- /....- ----. /--... --... /-.... ---.. /-.... ----. /..... ----- /--... --... /.---- ----- -.... /--... --... /..... ...-- /--... --... /-.... ---.. /---.. ----. /.---- .---- ----. /--... --... /---.. ....- /-.... ..... /..... ..--- /--... --... /---.. ....- /---.. ----. /..... .---- /--... ---.. /-.... ---.. /---.. .---- /.---- ..--- .---- /--... --... /---.. ....- /----. ----. /..... ...-- /--... --... /-.... ---.. /----. ----. /....- ---.. /--... --... /-.... ---.. /---.. ----. /.---- ..--- ----- /--... ---.. /.---- ----- -.... /.---- ----- ...-- /.---- .---- ----. /--... ---.. /-.... ---.. /---.. ----. /....- ----. /--... ----. /-.... ---.. /.---- ----- --... /..... ----- /--... --... /---.. ....- /---.. ..... /..... .---- /--... --... /---.. ....- /-.... ..... /..... .---- /--... ----. /-.... ---.. /----. ----. /....- ----. /--... --... /---.. ....- /---.. .---- /....- ----. /--... ---.. /.---- ..--- ..--- /---.. ..... /....- ----. /--... --... /-.... ---.. /--... ...-- /.---- ..--- ----- /--... ---.. /---.. ....- /---.. ----. /.---- .---- ----. /--... --... /.---- ----- -.... /----. ----. /....- ----. /--... ---.. /---.. ....- /-.... ----. /..... ...-- /--... ---.. /.---- ..--- ..--- /---.. ----. /.---- ..--- ..--- /--... --... /-.... ---.. /--... --... /..... .---- /--... ---.. /-.... ---.. /-.... ----. /..... ..--- /--... --... /---.. ....- /----. ----. /.---- .---- ----. /--... --... /.---- ..--- ..--- /----. ----. /.---- .---- ----. /--... ----. /---.. ....- /---.. ----. /.---- .---- ----. /--... ---.. /.---- ----- -.... /---.. .---- /....- ----. /--... ----. /---.. ....- /.---- ----- ...-- /.---- .---- ----. /--... --... /.---- ----- -.... /-.... ..... /....- ---.. /--... --... /-.... ---.. /-.... ..... /....- ----. /--... --... /---.. ....- /---.. ----. /..... ..--- /--... --... /.---- ..--- ..--- /---.. ----. /....- ----. /--... ----. /-.... ---.. /-.... ..... /.---- .---- ----. /--... ---.. /---.. ....- /.---- ----- ...-- /....- ---.. /--... ---.. /-.... ---.. /---.. ----. /.---- ..--- .---- /--... ---.. /-.... ---.. /---.. ..... /..... .---- /--... ----. /---.. ....- /---.. ----. /.---- .---- ----. /--... --... /---.. ....- /--... ...-- /....- ---.. /--... --... /---.. ....- /.---- ----- --... /.---- .---- ----. /--... ----. /---.. ....- /-.... ..... /....- ----. /--... --... /---.. ....- /--... ...-- /..... .---- /--... --... /---.. ....- /-.... ----. /..... ----- /--... ---.. /.---- ..--- ..--- /-.... ..... /.---- ..--- ..--- /--... --... /.---- ----- -.... /-.... ----. /..... ----- /--... ---.. /.---- ..--- ..--- /-.... ----. /.---- ..--- ..--- /--... ---.. /-.... ---.. /.---- ----- --... /.---- ..--- ..--- /--... ---.. /---.. ....- /.---- ----- --... /..... ----- /--... --... /-.... ---.. /---.. .---- /.---- ..--- ..--- /--... ----. /---.. ....- /---.. ..... /..... ..--- /--... ---.. /-.... ---.. /---.. ..... /....- ----. /--... ---.. /.---- ..--- ..--- /-.... ----. /..... ...-- /--... ----. /---.. ....- /--... --... /..... ----- /--... ---.. /-.... ---.. /--... --... /..... .---- /--... ---.. /-.... ---.. /--... ...-- /.---- ..--- .---- /--... ---.. /.---- ..--- ..--- /--... ...-- /....- ----. /--... ---.. /-.... ---.. /.---- ----- ...-- /.---- ..--- ----- /--... --... /.---- ----- -.... /----. ----. /.---- ..--- ..--- /--... --... /.---- ..--- ..--- /---.. .---- /.---- ..--- .---- /--... ----. /---.. ....- /-.... ..... /.---- .---- ----. /--... --... /---.. ....- /----. ----. /..... ..--- /--... ---.. /---.. ....- /---.. ----. /....- ---.. /--... ---.. /---.. ....- /--... --... /..... ..--- /--... --... /.---- ----- -.... /---.. ----. /.---- ..--- .---- /--... --... /-.... ---.. /---.. ----. /..... ..--- /--... --... /.---- ..--- ..--- /---.. ..... /.---- ..--- ----- /--... ----. /---.. ....- /----. ----. /..... ...-- /--... --... /---.. ....- /--... ...-- /.---- ..--- ----- /--... ---.. /.---- ----- -.... /---.. ..... /....- ----. /--... --... /.---- ..--- ..--- /-.... ..... /..... ..--- /--... ----. /-.... ---.. /.---- ----- ...-- /..... ...-- /--... ---.. /---.. ....- /.---- ----- ...-- /....- ----. /--... ----. /---.. ....- /---.. ..... /..... ...-- /--... ---.. /-.... ---.. /--... --... /..... ----- /--... --... /.---- ..--- ..--- /--... ...-- /..... .---- /--... ---.. /.---- ----- -.... /--... ...-- /..... ..--- /--... --... /-.... ---.. /----. ----. /....- ----. /--... ---.. /---.. ....- /----. ----. /.---- .---- ----. /--... ----. /---.. ....- /.---- ----- --... /.---- ..--- ..--- /--... ---.. /.---- ----- -.... /.---- ----- ...-- /..... ..--- /--... --... /.---- ----- -.... /--... --... /.---- ..--- ----- /--... ---.. /-.... ---.. /-.... ----. /.---- ..--- ..--- /--... --... /-.... ---.. /.---- ----- --... /.---- ..--- ----- /--... --... /-.... ---.. /---.. ..... /..... ...-- /--... --... /-.... ---.. /--... --... /....- ----. /--... ---.. /.---- ..--- ..--- /.---- ----- ...-- /..... .---- /--... ---.. /-.... ---.. /--... --... /..... .---- /--... ---.. /.---- ----- -.... /---.. ..... /.---- ..--- ..--- /--... ---.. /-.... ---.. /-.... ----. /....- ----. /--... ---.. /---.. ....- /.---- ----- ...-- /....- ----. /--... ----. /-.... ---.. /---.. ..... /.---- ..--- ----- /--... ---.. /-.... ---.. /--... ...-- /.---- ..--- .---- /--... ---.. /---.. ....- /--... ...-- /..... ...-- /--... ----. /---.. ....- /---.. ----. /.---- ..--- ----- /--... --... /.---- ..--- ..--- /.---- ----- ...-- /.---- ..--- ----- /--... --... /.---- ..--- ..--- /-.... ----. /.---- ..--- ----- /--... --... /.---- ..--- ..--- /.---- ----- ...-- /..... ...-- /-.... --... /.---- ----- ----. /---.. ..... /.---- ----- ...-- /---.. ----- /---.. ...-- /-.... ..... /.---- ..--- ..--- /-.... --... /.---- ----- ----. /--... --... /.---- ----- ...-- /---.. ----- /---.. ...-- /-.... ..... /..... ...-- /--... ---.. /---.. ....- /-.... ..... /..... .---- /--... ---.. /---.. ....- /--... ...-- /..... ..--- /--... --... /---.. ....- /--... ...-- /..... .---- /--... ---.. /---.. ....- /----. ----. /.---- ..--- ----- /--... ---.. /---.. ....- /-.... ----. /....- ---.. /--... --... /-.... ---.. /---.. ..... /....- ---.. /--... --... /-.... ---.. /-.... ----. /.---- .---- ----. /--... ---.. /---.. ....- /.---- ----- --... /..... ...-- /--... ---.. /-.... ---.. /---.. .---- /....- ---.. /--... ---.. /-.... ---.. /---.. ..... /..... ...-- /--... ----. /---.. ....- /-.... ..... /.---- ..--- .---- /--... --... /-.... ---.. /--... --... /....- ----. /--... ----. /---.. ....- /-.... ----. /.---- .---- ----. /--... --... /-.... ---.. /-.... ..... /-.... .----
N = 86992031724744145016239060108167442179074061680465896157107875145755021560275519763037418170370960645980204005168365800584462457960124190905127116703216713493596043958455719936437422725481273342900178564538262068351979121655308889585959436327628075570993688231413091059035787437653415585851422529961381311389
e = 3
c = 950752812757151405401059944445990203591000
>> Latios
You are correct!

What does this mean?
---.. ....- /.---- ----- ..... /-.... ..... /..... --... /--... ...-- /-.... ---.. /.---- ----- ...-- /.---- ..--- ----- /--... --... /.---- ----- -.... /---.. ----. /.---- .---- ----. /--... ---.. /-.... ---.. /-.... ----. /.---- ..--- ----- /--... ---.. /.---- ----- -.... /--... ...-- /..... ----- /--... ----. /-.... ---.. /---.. ----. /.---- ..--- .---- /--... ----. /---.. ....- /----. ----. /.---- ..--- ..--- /--... ----. /---.. ....- /.---- ----- ...-- /..... .---- /--... --... /.---- ..--- ..--- /-.... ----. /..... ----- /--... --... /.---- ..--- ..--- /-.... ..... /....- ----. /--... ---.. /---.. ....- /---.. ----. /.---- ..--- ----- /--... ---.. /.---- ..--- ..--- /---.. .---- /.---- ..--- .---- /--... ---.. /-.... ---.. /.---- ----- --... /....- ----. /--... ---.. /.---- ..--- ..--- /---.. ----. /.---- ..--- ----- /--... ---.. /---.. ....- /---.. .---- /....- ---.. /--... ----. /---.. ....- /.---- ----- --... /.---- ..--- ..--- /--... --... /-.... ---.. /-.... ----. /.---- ..--- .---- /--... ---.. /.---- ----- -.... /-.... ..... /.---- .---- ----. /--... ---.. /-.... ---.. /--... --... /..... ...-- /--... ----. /-.... ---.. /---.. ..... /.---- ..--- ..--- /--... --... /.---- ..--- ..--- /----. ----. /..... ...-- /--... ---.. /.---- ----- -.... /---.. ----. /..... ----- /--... --... /.---- ..--- ..--- /--... ...-- /.---- ..--- .---- /--... ----. /-.... ---.. /-.... ..... /.---- .---- ----. /--... ---.. /.---- ..--- ..--- /--... --... /.---- ..--- .---- /--... ----. /-.... ---.. /-.... ----. /..... ..--- /--... ---.. /.---- ----- -.... /---.. ----. /....- ---.. /--... ---.. /-.... ---.. /---.. ..... /.---- ..--- ----- /--... --... /.---- ----- -.... /-.... ..... /..... .---- /--... --... /.---- ..--- ..--- /.---- ----- --... /.---- .---- ----. /--... ---.. /---.. ....- /--... --... /.---- ..--- ..--- /--... ----. /---.. ....- /---.. .---- /..... ----- /--... ---.. /.---- ----- -.... /-.... ..... /..... .---- /--... --... /-.... ---.. /---.. .---- /.---- ..--- ----- /--... ----. /-.... ---.. /--... ...-- /..... ...-- /--... ---.. /.---- ..--- ..--- /---.. ----. /.---- ..--- ..--- /--... ----. /---.. ....- /.---- ----- ...-- /.---- ..--- ..--- /--... --... /-.... ---.. /---.. ----. /..... .---- /--... ---.. /.---- ----- -.... /--... ...-- /.---- .---- ----. /--... ---.. /-.... ---.. /-.... ----. /....- ---.. /--... ----. /---.. ....- /-.... ..... /.---- ..--- ..--- /--... --... /---.. ....- /.---- ----- --... /.---- ..--- ..--- /--... --... /-.... ---.. /---.. .---- /.---- .---- ----. /--... --... /-.... ---.. /.---- ----- ...-- /.---- ..--- .---- /--... --... /-.... ---.. /---.. .---- /..... .---- /--... ---.. /---.. ....- /----. ----. /.---- ..--- ..--- /--... --... /.---- ..--- ..--- /--... ...-- /.---- ..--- .---- /--... ---.. /.---- ----- -.... /----. ----. /....- ---.. /--... --... /.---- ----- -.... /--... ...-- /.---- ..--- ..--- /--... --... /-.... ---.. /----. ----. /.---- ..--- ----- /--... --... /---.. ....- /--... ...-- /..... .---- /--... --... /---.. ....- /--... ...-- /.---- ..--- ..--- /--... --... /-.... ---.. /.---- ----- --... /..... ----- /--... ---.. /---.. ....- /---.. ----. /..... .---- /--... ---.. /---.. ....- /.---- ----- ...-- /.---- ..--- ----- /--... --... /-.... ---.. /----. ----. /..... ..--- /--... ---.. /.---- ----- -.... /---.. .---- /.---- ..--- ----- /--... --... /.---- ----- -.... /--... --... /....- ---.. /--... ---.. /.---- ..--- ..--- /--... ...-- /....- ---.. /--... --... /---.. ....- /-.... ----. /.---- .---- ----. /--... ---.. /-.... ---.. /--... ...-- /..... ..--- /--... --... /-.... ---.. /----. ----. /....- ----. /--... ---.. /---.. ....- /---.. .---- /..... ...-- /--... ----. /---.. ....- /--... --... /..... ..--- /--... ---.. /---.. ....- /.---- ----- ...-- /..... ...-- /--... ---.. /---.. ....- /----. ----. /.---- ..--- ..--- /--... --... /.---- ----- -.... /-.... ----. /..... .---- /--... ---.. /.---- ..--- ..--- /.---- ----- ...-- /..... ...-- /--... ---.. /.---- ..--- ..--- /.---- ----- ...-- /....- ---.. /--... ---.. /---.. ....- /-.... ..... /.---- ..--- .---- /--... --... /.---- ----- -.... /---.. ----. /..... ..--- /--... ----. /-.... ---.. /---.. ..... /..... ...-- /--... ---.. /.---- ..--- ..--- /----. ----. /..... ..--- /--... --... /---.. ....- /--... --... /.---- ..--- .---- /--... ---.. /-.... ---.. /.---- ----- --... /.---- .---- ----. /--... --... /.---- ----- -.... /---.. ----. /....- ----. /--... --... /---.. ....- /-.... ..... /.---- ..--- .---- /--... ---.. /.---- ----- -.... /.---- ----- --... /.---- ..--- .---- /--... ---.. /---.. ....- /--... ...-- /....- ---.. /--... --... /.---- ..--- ..--- /---.. ..... /....- ----. /--... ---.. /.---- ----- -.... /-.... ----. /....- ----. /--... ----. /---.. ....- /.---- ----- ...-- /..... ...-- /--... ---.. /---.. ....- /--... ...-- /.---- .---- ----. /--... --... /.---- ----- -.... /---.. ..... /....- ---.. /--... --... /.---- ----- -.... /----. ----. /..... .---- /--... --... /.---- ----- -.... /--... --... /..... ...-- /--... ---.. /.---- ----- -.... /---.. ..... /.---- ..--- ..--- /--... ----. /---.. ....- /--... ...-- /....- ---.. /--... ----. /---.. ....- /-.... ..... /..... ...-- /--... ---.. /.---- ..--- ..--- /.---- ----- --... /....- ---.. /--... ----. /---.. ....- /-.... ..... /.---- ..--- .---- /--... ----. /---.. ....- /--... --... /.---- .---- ----. /--... ---.. /-.... ---.. /--... --... /..... ...-- /--... --... /---.. ....- /.---- ----- ...-- /..... ...-- /--... --... /---.. ....- /---.. ----. /.---- ..--- ..--- /--... ---.. /---.. ....- /.---- ----- ...-- /..... ...-- /--... --... /.---- ..--- ..--- /----. ----. /.---- .---- ----. /--... ----. /-.... ---.. /.---- ----- ...-- /..... ----- /--... ---.. /.---- ----- -.... /--... --... /..... ...-- /--... ---.. /---.. ....- /----. ----. /....- ----. /--... ----. /-.... ---.. /--... --... /.---- ..--- ..--- /--... --... /---.. ....- /--... ...-- /..... ...-- /--... ---.. /.---- ..--- ..--- /---.. ----. /..... ...-- /--... ----. /-.... ---.. /---.. .---- /.---- ..--- ..--- /-.... --... /.---- ----- ----. /---.. ..... /.---- ----- ...-- /---.. ----- /---.. ...-- /-.... ..... /.---- ..--- ..--- /-.... --... /.---- ----- ----. /--... --... /.---- ----- ...-- /---.. ----- /---.. ...-- /-.... ..... /.---- ..--- .---- /--... --... /.---- ----- -.... /.---- ----- ...-- /..... .---- /--... --... /-.... ---.. /----. ----. /..... ..--- /--... ----. /-.... ---.. /----. ----. /..... ----- /--... --... /-.... ---.. /-.... ----. /.---- ..--- ----- /--... --... /.---- ..--- ..--- /---.. ..... /..... ----- /--... ---.. /.---- ----- -.... /.---- ----- --... /....- ---.. /--... ---.. /.---- ----- -.... /-.... ----. /..... .---- /--... ---.. /---.. ....- /-.... ..... /..... .---- /--... --... /.---- ----- -.... /---.. ..... /..... ----- /--... ---.. /---.. ....- /---.. .---- /..... .---- /--... --... /-.... ---.. /.---- ----- --... /..... ----- /--... ----. /-.... ---.. /-.... ----. /.---- .---- ----. /--... ----. /-.... ---.. /--... --... /.---- .---- ----. /--... --... /---.. ....- /-.... ..... /.---- ..--- ----- /--... --... /.---- ..--- ..--- /--... --... /..... ----- /--... ---.. /-.... ---.. /.---- ----- --... /..... .---- /--... --... /---.. ....- /----. ----. /..... .---- /--... ---.. /.---- ----- -.... /---.. ----. /.---- ..--- .---- /--... ---.. /---.. ....- /--... --... /.---- ..--- ----- /--... ---.. /.---- ..--- ..--- /--... ...-- /..... ..--- /--... --... /-.... ---.. /--... ...-- /..... ...--
N = 81260411626862973987316305561742495761544993012600439853379666322800732818664451207390533946607041829763983067620414903193040082047573322674223071127123096567581078641234724110428075549938589573217789784502268859778132490265102692524355615989520254277239653924909794902930439189163589370886639575833129769843
e = 3
c = 2287078876011356694617507256547096810830101336497177662531728029
>> Tyranitar
You are correct!

Congrats! The GPS is activated and here's a message from your friends: flag{We're_ALrEadY_0N_0uR_waY_7HE_j0UrnEY_57aR75_70day!}
flag{We're_ALrEadY_0N_0uR_waY_7HE_j0UrnEY_57aR75_70day!}

Survey Says... (misc)

アンケートに答えたら、フラグが表示された。

flag{7H4nk5_f0R_PL4yIn9!h0PE_70_5ee_y0u_NEx7_YE4R}