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

Modular Arithmetic

Last updated 1 year ago

Notation
Meaning

floor function: largest integer not larger than x

Examples

divides

does not divide

, that is, as divides , and have the same remainder when divided by

(binary operator) remainder of when divided by ( is called the modulus, which we assume here to be a positive integer). Equal to . Note that . In C, Python, Java, and pari-gp, it can be computed using using the % binary operator (applied to unsigned integers).

gratest common divisor of and .

least common multiple of and ; equal to .

set of equivalence classes modulo ; slightly abusing the mathematical notation for equivalence classes, .

m∣nm \mid nm∣n
mmm
nnn
m∤nm \nmid nm∤n
mmm
nnn
n≡r(modm)n \equiv r (mod m)n≡r(modm)
m∣(n−r)m \mid (n-r)m∣(n−r)
mmm
n−rn-rn−r
nnn
rrr
mmm
⌊x⌋\lfloor x \rfloor⌊x⌋
nmodmn mod mnmodm
nnn
mmm
mmm
n−m⌊nm⌋n-m \lfloor \frac{n}{m} \rfloorn−m⌊mn​⌋
0≤r<m0 \le r \lt m0≤r<m
gcd(a,b)gcd(a,b)gcd(a,b)
aaa
bbb
lcm(a,b)lcm(a,b)lcm(a,b)
aaa
bbb
ab/gcd(a,b)ab/ gcd(a,b)ab/gcd(a,b)
Zm\mathbb{Z}_mZm​
mmm
Zm={0,1,...,m−1}\mathbb{Z}_m = \lbrace 0, 1, ..., m-1 \rbraceZm​={0,1,...,m−1}