この大会は2017/1/21 18:00(JST)~2017/1/23 6:00(JST)に開催されました。
今回もチームで参戦。結果は450点で339チーム中51位でした。
自分で解けた問題をWriteupとして書いておきます。
cryptoquizz (Misc/Crypto 50pt)
暗号学者の誕生した年を答えていくクイズ。
いろんな問題パターンを辞書にして答えていくスクリプトにした。
辞書にないものは答えられず、完全に対応したスクリプトではない。
#!/usr/bin/env python import socket import re birth = { 'Serge Vaudenay': 1968, 'Gilles Brassard': 1955, 'Scott Vanstone': 1947, 'Claude Shannon': 1916, 'Shafi Goldwasser': 1958, 'Paul Kocher': 1973, 'Bart Preneel': 1963, 'Taher Elgamal': 1955, 'Nigel P. Smart': 1967, 'David Chaum': 1955, 'Alan Turing': 1912, 'Kaisa Nyberg': 1948, 'Silvio Micali': 1954, 'Moni Naor': 1961, 'Joan Daemen': 1965, 'Daniel Bleichenbacher': 1964, 'Paulo Barreto': 1965, 'Neal Koblitz': 1948, 'Michael O. Rabin': 1931, 'Xuejia Lai': 1954, 'Vincent Rijmen': 1970, 'Paul van Oorschot': 1950, 'Adi Shamir': 1952, 'Arjen K. Lenstra': 1956, 'Dan Boneh': 1969, 'Amit Sahai': 1974, 'Eli Biham': 1960, 'Whitfield Diffie': 1944, 'Ueli Maurer': 1960, 'Mihir Bellare': 1962, 'Horst Feistel': 1915, 'Ralph Merkle': 1952, 'Don Coppersmith': 1950, 'Jacques Patarin': 1965, 'Alex Biryukov': 1969, 'Jim Massey': 1934, 'David Naccache': 1967, 'Jean-Jacques Quisquater': 1945, 'Amos Fiat': 1956, 'Yvo Desmedt': 1956, 'Donald Davies': 1924, 'Niels Ferguson': 1965, 'Ron Rivest': 1947, 'Rafail Ostrovsky': 1963, 'Jacques Stern': 1949, 'Wang Xiaoyun': 1966, 'Phil Rogaway': 1962, 'Ivan Damgard': 1956, 'Shai Halevi': 1966, 'Daniel J. Bernstein': 1971, 'Mitsuru Matsui': 1961, 'Ross Anderson': 1956, 'Martin Hellman': 1945, 'Yehuda Lindell': 1971, 'Lars Knudsen': 1962, 'Claus-Peter Schnorr': 1943, 'Ronald Cramer': 1968, 'Victor S. Miller': 1947, 'Douglas Stinson': 1956, 'Antoine Joux': 1967 } s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(('quizz.teaser.insomnihack.ch', 1031)) data = s.recv(1024) print data pattern = 'What is the birth year of (.+) \?' for i in range(10): data = s.recv(1024) print data m = re.search(pattern, data) if m is None: data = s.recv(1024) print data m = re.search(pattern, data) name = m.group(1) ans = str(birth[name]) print ans s.sendall(ans + '\n')
8回答えると、フラグが表示された。
INS{GENUINE_CRYPTOGRAPHER_BUT_NOT_YET_A_PROVEN_SKILLED_ONE}