elgamal暗号

Crypto CTF 2021 | Linda

#cryptoctf2021 #!/usr/bin/env python3 from Crypto.Util.number import * from math import gcd from flag import flag def keygen(p): while True: u = getRandomRange(1, p) if pow(u, (p-1) // 2, p) != 1: break x = getRandomRange(1, p) w = pow(u, …

楕円ElGamal暗号

ElGamal暗号 楕円離散対数問題を利用した暗号 楕円曲線上の点Pとある整数xから Q = xP を計算する。 公開鍵 秘密鍵 暗号化 乱数を持ってきて 復号

Ballare-Micali OT

1-out-of-n Oblivious Transferを構成するプロトコル。すなわち、n個のメッセージを送信し、受信者はそのうち1つだけを受信するが、送信者には、受信者がどれを受信したかわからない 準備 素数位数pを持つ巡回群 のgenerator である、何かしらのハッシュ、SH…

TokyoWesterns CTF 6th 2020 | The Melancholy of Alice

from Crypto.Util.number import getStrongPrime, getRandomRange N = 1024 def generateKey(): p = getStrongPrime(N) q = (p - 1) // 2 x = getRandomRange(2, q) g = 2 h = pow(g, x, p) pk = (p, q, g, h) sk = x return (pk, sk) def encrypt(m, pk): (…

ASIS CTF Finals 2021 | mDLP

#asisctffinals2021 #!/usr/bin/env sage from sage.all import * from Crypto.Util.number import * from secret import gen_prime, gen_base_matrix, flag def keygen(nbit, l): # ## Create the n-bit prime and base square matrix of size l over Ring …

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-…

Imaginary CTF 2021 | lines

#imaginaryctf2021 from Crypto.Util.number import bytes_to_long import random flag = bytes_to_long(open("flag.txt", "rb").read()) msg = bytes_to_long(b":roocursion:") p = 828208757675404802784998591016022506443991176995496942317967203886469…

Elgamal署名

ElGamal暗号を用いた署名。劣化DSAという感じ 鍵 として公開鍵、秘密鍵 署名 where として署名 検証 が と等しいかをみる