quadratic_residue

SecurinetsQuals2k21 | Shilaformi

#securinetsquals2k21 import signal from secret import flag from Crypto.Random import random from Crypto.Util.number import getPrime #Odds and evens (hand game) #https://en.wikipedia.org/wiki/Odds_and_evens_(hand_game) def pad(choice, n): r…

Sagemath Reference

sage GF == FiniteField 有限体。Field = GF(13) みたいな感じで作って、 Field(9) みたいな感じでインスタンス化する。 Field(9) * 200 == 9とかになる PolynomialRing 多項式環。整数上の多項式だったり有限体上の多項式だったするので、 PR.<x> = Polynomial</x>…

Pwn2Win 2020 | Omni Crypto

#RSA #quadratic_residue (mon でのquadratic residue) #univariate_coppersmith_method #Suspicious_Prime https://furutsuki.hatenablog.com/entry/2020/06/01/023111#crypto-Omni-Crypto LSB と MSBがあわせて1024bitくらいわかるので解ける

Quadratic residuosity problem

和訳すると「平方剰余問題」? ある が与えられたときに が の平方剰余か、すなわち、なるが存在するかを判定する問題。通常 で、不明 なんか難しいらしい。(直感的には平方剰余である数とそうでない数の数に偏りがあるような気がするが、その実1 : 1) 当…

PlaidCTF2021 | leaky block cipher

#good_challenges_2021 #PlaidCTF2021 import flag import hashcash import secrets from Crypto.Cipher import AES def gf128(a, b): a = int.from_bytes(a, byteorder="big") b = int.from_bytes(b, byteorder="big") R = 128 P = sum(1 << x for x in [R,…

Blum-goldwasser cryptosystem

Goldwasser-Micali cryptosystemの拡張? みたいな感じ 鍵生成 と を選ぶ(秘密鍵) (公開鍵) 暗号化 (ブロックサイズ) 平文 をサイズ のブロック に分割する をランダムに選ぶ for from to 暗号文 復号 extended euclidean algorithm で なる と を計算…

corCTF 2021 | dividing secrets

#corctf2021 from Crypto.Util.number import bytes_to_long, getStrongPrime from random import randrange from secret import flag LIMIT = 64 def gen(): p = getStrongPrime(512) g = randrange(1, p) return g, p def main(): g, p = gen() print("g:"…

CyberSecurityRumble | PADY McPADaFACE

#!/usr/bin/env python3 from random import SystemRandom from config import p,q,e,flag print("="*50) print(open(__file__).read()) print("~"*50) random = SystemRandom() flag = int.from_bytes(flag,"big") n = p*q assert(p

zer0pts CTF 2021 | janken vs yoshiking

#zer0ptsCTF2021 import random import signal from flag import flag from Crypto.Util.number import getStrongPrime, inverse HANDNAMES = { 1: "Rock", 2: "Scissors", 3: "Paper" } def commit(m, key): (g, p), (x, _) = key r = random.randint(2, p-…

平方剰余

quadratic residue