from hashlib import sha512 # Des. Codes Cryptogr. 33(2) a = "Mark Goresky and Andrew Klapper: Periodicity and Correlation Properties of d-FCSR Sequences. (2004)" # TCC (2) 2015 b = "Ran Canetti, Yael Tauman Kalai and Omer Paneth: On Obfuscation with Random Oracles. (2015)" # Cryptologia 10(1) c = "David Kahn: Secrets of the Codebreakers. (1986)" # CT-RSA 2007 d = "Mario Lamberger, Norbert Pramstaller, Christian Rechberger and Vincent Rijmen: Second Preimages for SMASH. (2007)" # EUROCRYPT 2013 e = "Patrick Derbez, Pierre-Alain Fouque and Jérémy Jean: Improved Key Recovery Attacks on Reduced-Round AES in the Single-Key Setting. (2013)" # Financial Cryptography 2003 f = "Javier Herranz and Germán Sáez: Verifiable Secret Sharing for General Access Structures, with Application to Fully Distributed Proxy Signatures. (2003)" # C2SI 2019 g = "Yongge Wang and Qutaibah M. Malluhi: Reusable Garbled Turing Machines Without FHE. (2019)" # CRYPTO 2000 h = "Masayuki Abe and Tatsuaki Okamoto: Provably Secure Partially Blind Signatures. (2000)" # Cryptologia 38(2) i = "Chris Christensen: The National Cash Register Company Additive Recovery Machine. (2014)" # ICISC 2003 j = "Jonathan Katz: Binary Tree Encryption: Constructions and Applications. (2003)" # CRYPTO 1994 k = "Olivier Delos and Jean-Jacques Quisquater: An Identity-Based Signature Scheme with Bounded Life-Span. (1994)" # J. Mathematical Cryptology 9(2) l = "Shlomi Dolev, Juan A. Garay, Niv Gilboa, Vladimir Kolesnikov and Yelena Yuditsky: Towards efficient private distributed computation on unbounded input streams. (2015)" def H(s): 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