Notes - MCS
Applied Cryptography
Notes - MCS
Applied Cryptography
  • Applied Cryptography
  • Classical (Symmetric) Cryptography
    • Terminology
    • The Players
    • Use Cases
    • Information-Theoretic Security
    • Computational Security
    • Cryptanalysis
    • Practical Approaches
    • Cryptographic Robustness
    • Ciphers
      • Mono-Alphabetic
      • Polylphabetic
    • Rotor Machines
    • Stream Ciphers
  • Modern Symmetric Cryptography
    • Types
    • Symmetric Ciphers
    • Symmetric Block Ciphers
    • Feistel Networks
    • DES (Data Encryption Standard)
    • AES (Advanced Encryption Standard)
    • Stream Ciphers
    • Uniform Random Access
    • Linear Feedback Shift Register (LFSR)
  • Cipher Modes
    • Deployment of (Symmetric) Block Ciphers
    • Stream Cipher Modes
    • Security Reinforcement
  • Cryptographic Hashing
    • Digest functions
    • Rainbow Tables
    • Message Authentication Codes (MAC)
    • Authenticated Encryption
    • Encryption + Authentication
  • RSA & Related Subjects
    • Modular Arithmetic
    • Fast Modular Multiplication
    • The Extended Euclid's Algorithm
    • Linear Maps
    • Fermat's Little Theorem
    • Chinese Remainder Theorem
    • Fermat's Little Theorem
    • Modular Exponentiation
    • Multiplicative Order
    • The Discrete Logarithm Problem
    • Primality tests
    • The Diffie-Hellman Key Exchange Protocol
    • ElGamal Public Key Cryptosystem
    • The Rivest-Shamir-Adleman Cryptosystem
    • Finite Fields
    • Elliptic Curves
    • Diffie-Hellman using elliptic curves
    • Can we do RSA-like things with elliptic curves?
    • The discrete logarithm problem for elliptic curves
    • Secret sharing
    • Quadratic Residues
    • Zero-Knowledge proofs
      • One of two oblivious transfer
      • Coin flipping
      • Zero-knowledge proofs of identity
    • Homomorphic encryption
  • Asymmetric Key Management
    • Design Principles
    • Exploitation of private keys
    • Distribution of public keys
    • Public key (digital) certificates
    • Key pair usage
    • Certification Authorities (CA)
    • Certification Hierarchies
    • Refreshing of asymmetric key pairs
    • Certificate revocation lists (CRL)
    • Validity of signatures
    • Distribution of public key certificates
    • Time Stamping Authority (TSA)
    • PKI (Public Key Infrastructure)
  • Digital Signatures
    • Fundamental Approach
    • Signature Schemes
    • Key Elements
    • The document to sign
    • The signature date
    • The identity of the signatory
    • Optional elements of a digital signature
    • Algorithms
    • RSA signatures
    • ASN.1 digest algorithm prefixes
    • Digital Signature Standard (DSS)
    • Blind Signatures
    • Chaum Blind Signatures
    • Qualified electronic signature
      • Signature devices
    • PKCS #11
    • Microsoft Cryptographic API (CAPI)
    • Long-Term Validation (LTV)
    • LTV Advanced Electronic Signatures (AdES)
Powered by GitBook
On this page
  1. RSA & Related Subjects
  2. Zero-Knowledge proofs

One of two oblivious transfer

Last updated 1 year ago

Alice holds two items of information, say m0m_0m0​ and m1m_1m1​. Bob wants to know on tof these two items of information, but does not want Alice to know which one he wants.

This problem is known as the oblivious transfer problem. It can be solved in several ways. We will do it using RSA techniques.

  1. NNN is Alice's public RSA modulus and eee is the corresponding public exponent; ddd is the corresponding private decryption exponent.

  2. At Bob's request, Alice generates two random messages x0x_0x0​ and x1x_1x1​ (random numbers smaller than NNN) and sends them to Bob.

  3. Bob wants mbm_bmb​, where b∈{0,1}b \in \lbrace 0,1 \rbraceb∈{0,1}. So, Bob generates a random kkk and computes and send to Alice v=(x0+ke)modNv = (x_0 + k^e)mod Nv=(x0​+ke)modN.

  4. Alice computes m0′=m0+(v−x0)dmodNm'_0 = m_0 + (v - x_0)^d mod Nm0′​=m0​+(v−x0​)dmodN and m1′=m1+(v−x1)dmodNm'_1 = m_1 + (v - x_1)^d mod Nm1′​=m1​+(v−x1​)dmodN and sends both to Bod. Either (v−x0)dmodN(v - x_0)^d mod N(v−x0​)dmodN or (v−x1)dmodN(v - x_1)^d mod N(v−x1​)dmodN will be equal to kkk, but Alice has no way of knowing which one is the case.

  5. Bob computes mb=mb′−kmodNm_b = m'_b - k mod Nmb​=mb′​−kmodN. He cannot infer m1−bm_{1-b}m1−b​ from m1−b′m'_{1-b}m1−b′​.