from hashlib import sha512 # FSE 2011 a = "Simon Knellwolf and Willi Meier: Cryptanalysis of the Knapsack Generator. (2011)" # ASIACRYPT 2017 b = "Ran Canetti, Oxana Poburinnaya and Mariana Raykova: Optimal-Rate Non-Committing Encryption. (2017)" # CRYPTO 2019 c = "Muhammed F. Esgin, Ron Steinfeld, Joseph K. Liu and Dongxi Liu: Lattice-Based Zero-Knowledge \ Proofs: New Techniques for Shorter and Faster Constructions and Applications. (2019)" # FSE 2009 d = "Martijn Stam: Blockcipher-Based Hashing Revisited. (2009)" # EUROCRYPT 1990 e = "Cees J. A. Jansen: On the Construction of Run Permuted Sequences. (1990)" # EUROCRYPT 2013 f = 'Charles Bouillaguet, Pierre-Alain Fouque and Amandine Véber: Graph-Theoretic Algorithms for the \ "Isomorphism of Polynomials" Problem. (2013)' # CRYPTO 2017 g = "Prabhanjan Ananth, Arka Rai Choudhuri and Abhishek Jain: A New Approach to Round-Optimal Secure \ Multiparty Computation. (2017)" # EUROCRYPT 2001 h = "William Aiello, Yuval Ishai and Omer Reingold: Priced Oblivious Transfer: How to Sell Digital \ Goods. (2001)" # CRYPTO 2019 i = "Navid Alamati, Hart Montgomery and Sikhar Patranabis: Symmetric Primitives with Structured \ Secrets. (2019)" # CRYPTO 2019 j = "Shweta Agrawal, Monosij Maitra and Shota Yamada: Attribute Based Encryption (and more) for \ Nondeterministic Finite Automata from LWE. (2019)" # EUROCRYPT 1986 k = "Christoph G. Günther: On Some Properties of the Sum of Two Pseudorandom Sequences. (1986)" # CRYPTO 2009 l = "Susan Hohenberger and Brent Waters: Short and Stateless Signatures from the RSA Assumption. (2009)" def H(s : str) -> int: """Returns the hash (SHA-512) of the string s as a 512-bit integer.""" return int.from_bytes(sha512(s.encode('utf8')).digest(), byteorder='big') assert (H(a) & H(b) & H(c) & H(d)) ^ (H(e) & H(f) & H(g) & H(h)) ^ (H(i) & H(j) & H(k) & H(l)) == 0