Skip to content

Instantly share code, notes, and snippets.

View elliptic-shiho's full-sized avatar

Shiho Midorikawa elliptic-shiho

View GitHub Profile
@elliptic-shiho
elliptic-shiho / solve.py
Last active March 28, 2024 07:11
LINE CTF 2024: haki-tako-game Solver & Writeup (in the comment)
from socket import create_connection
import itertools
import binascii
import struct
import json
import math
class Tube:
def __init__(s, host, port, debug=False):
@elliptic-shiho
elliptic-shiho / solve.sage
Created December 30, 2023 15:23
ASIS CTF Finals 2023: Tapernous
import sys
m = 12
t = 171
_z12, _x = var("_z12, _x")
dataset = open('output.txt').read().strip().replace('^', '**').split('\n')
F.<z12> = GF(2^m)
R.<x> = F['x']
f = eval(dataset[0].lstrip('f = '))
@elliptic-shiho
elliptic-shiho / solve.sage
Created December 30, 2023 14:36
ASIS CTF Finals 2023: Larisa
import binascii
u = 1462429177173255359388007765931796537885368646963625242711326952977985471932962383861842635724040143033586225507124897993946275538644782337485276659791768803892242293535522679957964876776825548307042572518152706215000123872096447939862588392736653305289270336986724756913886373602016050815040147667630379593859685646307913471020561969933852495456652645591262189417744078633139731004839760821762709078987432999550663454348821414654652257866073987807333618308663409376712742627162896125313056171829232263020741802783450992451834392620606043876037571745527804406103083287186596413204262417693475997360716169601004
v = 3361480002432693752626969088049143371033687796839032797315025143270946165139685061767026950394284498430926616845318237749712235930625309923903553850166793512181385788796869552215035455995370731816925378753732950039662516557875218374075823193808692392905081204067496016151667029418998917540743277631790419809752354652686500452367372802836483170592925224959479584778030250914074383997961924
@elliptic-shiho
elliptic-shiho / solve.sage
Created December 27, 2023 04:32
SECCON CTF Finals 2023 DLP 4.0
from socket import create_connection
class Tube:
def __init__(s, host, port, debug=False):
s.host = host
s.port = port
s.sock = create_connection((host, port))
s.debug = debug
@elliptic-shiho
elliptic-shiho / solve_log
Last active October 9, 2023 07:08
Balsn CTF 2023: Many Time QKD
Sun Oct 8 02:57:45 JST 2023 ~/Downloads/many_time_qkd
> time python solve_with_bruteforce.py
[+] Getting distribution...
[*] Done: defaultdict(<function solve.<locals>.<lambda> at 0x7faaa91104a0>, {0: [5, 19], 1: [5, 19], 2: [8, 16], 3: [19, 5], 4: [23, 1], 5: [3, 21], 6: [23, 1], 7: [8, 16], 8: [4, 20], 9: [22, 2], 10: [2, 22], 11: [5, 19], 12: [20, 4], 13: [20, 4], 14: [2, 22], 15: [3, 21], 16: [2, 22], 17: [21, 3], 18: [21, 3], 19: [19, 5], 20: [4, 20], 21: [21, 3], 22: [16, 8], 23: [0, 24]})
[+] ok = [1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1]
[+] Getting distribution...
[*] Done: defaultdict(<function solve.<locals>.<lambda> at 0x7faaa9110540>, {0: [1, 23], 1: [4, 20], 2: [4, 20], 3: [8, 16], 4: [21, 3], 5: [2, 22], 6: [21, 3], 7: [22, 2], 8: [21, 3], 9: [2, 22], 10: [1, 23], 11: [3, 21], 12: [21, 3], 13: [22, 2], 14: [2, 22], 15: [3, 21], 16: [2, 22], 17: [21, 3], 18: [20, 4], 19: [21, 3], 20: [20, 4], 21: [5, 19], 22: [22, 2], 23: [17, 7]})
[+] ok = [1, 1, 1, 0, 0, 1, 0,

seccamp 2023 講師参加記

セキュリティキャンプにL1 暗号化通信ゼミ講師として参加していました. しばらくキャンプ関連の記事は書いていなかったのですが, 久々のオフライン開催の後ということもあり, とりあえず書いてみようかなと思う次第です.

プロトコルコースを含めL1全体の方針は同じくL1講師をされていた @tex2e さんの参加記( https://tex2e.github.io/blog/misc/seccamp2023 )によくまとめられているので, この記事ではその点を端折ったプリミティブコース側の視点をメインとしています. なのでこちらも合わせて読んでいただけますとより一層「L1ゼミというゼミは何をやっていたのか」を理解いただけるのではないでしょうか.

私達の担当したL1ゼミは2コースに分かれており, 私は特にプリミティブコースという極めて理論に近いコースを担当させていただきました. その目標設定は大目標である当該論文の全体理解 + 読み進める・実装する上での小目標をその都度, という形で実施しました. また, 小目標のステップを可能な限り小さくとり, それによって漸進的に進めることを考えました.

TL; DR 来年度の受講を考えている方へ

そもそも来年私が講師として呼ばれる保証がない, ということを念頭に置いてください. セキュリティ・キャンプの講師は基本一年単位なのです.

@elliptic-shiho
elliptic-shiho / solve.py
Created July 9, 2023 05:32
Crypto CTF 2023: Bertrand solver
#!/usr/bin/env python3
import functools
from PIL import Image
import itertools
def sox(n, d):
x, y, t = 0, 0, d
for s in range(n - 1):
@elliptic-shiho
elliptic-shiho / solve.sage
Created July 9, 2023 05:51
Crypto CTF 2023: Insights solver
from sage.all import *
from Crypto.Util.number import long_to_bytes
n = 12765231982257032754070342601068819788671760506321816381988340379929052646067454855779362773785313297204165444163623633335057895252608396010414744222572161530653104640020689896882490979790275711854268113058363186249545193245142912930804650114934761299016468156185416083682476142929968501395899099376750415294540156026131156551291971922076435528869024742993840057342092865203064721826362149723366381892539617642364692012936270150691803063945919154346756726869466855557344213050973081755499746750276623648407677639812809665472258655462846021403503851719008687214848550916999977775070011121527941755954255781343103086789
e = 45965045468694670661537184573752791653920565666784478063438604926880061578296492094422908450275216739544615829085404769600603475021075834174484176247919117301777303464773934692739058084899812183002913454288071340930609296728267512269958650368494340753506721673855640316940362210476251629387999438732437083571805625170615055782010
@elliptic-shiho
elliptic-shiho / shevid.sage
Created July 9, 2023 06:00
Crypto CTF 2023: Shevid
# 1. git clone https://github.com/GiacomoPope/Castryck-Decru-SageMath
# 2. cd Castryck Decru-SageMath
# 3. place this file
# 4. run
import public_values_aux
from public_values_aux import *
set_verbose(-1)
load("castryck_decru_attack.sage")
@elliptic-shiho
elliptic-shiho / solve.py
Created July 9, 2023 06:47
Crypto CTF 2023: Barak
"""
References:
[1]: Marc Joye and Jean-Jacques Quisquater. 2001. "Hessian Elliptic Curves and Side-Channel Attacks".
"""
from scryptos import * # https://github.com/scryptos/scryptoslib
from ast import literal_eval
from scryptos.wrapper.parigp import set_gp_memalloc_size
import string
import math