• 2025-04-30

Example: ECDH with curve x25519 – Elliptic Curves

8.5.8 Example: ECDH with curve x25519 RFC 7748 [86] specifies how Alice and Bob must perform ECDH using curve 25519. The protocol is illustrated in Figure 8.12 and we will follow the notation in RFC 7748 in case you want to look into that standard for more detailed information. Figure 8.12: ECDHE with curve 25519…

Explore More

General considerations – Digital Signatures

9.1 General considerations Assume Alice has generated herself a key pair (PKAlice,SKAlice) within some asymmetric cryptosystem. If Alice uses her private key SKAlice to compute some output s = sigAlice(x) based on an input x, this is an operation that can, at least in principle, only be performed by Alice because she is the only…

Explore More

RSA-based signatures – Digital Signatures

9.2 RSA-based signatures An RSA-based signature is generated by applying the private key part of the RSA key pair to the hash value of the message m to be signed. To recap from Chapter 7, Public-Key Cryptography, Alice’s RSA key pair has the public key part PKAlice = (e,n), where n is the product of…

Explore More

Digital signatures based on discrete logarithms 2 – Digital Signatures

To generate her signing key, Alice performs the following steps: To sign a message m, Alice takes the following steps: 3. Finally, Alice finds an integer s such that or equivalently, Her signature is the pair sigAlice(m) = (r,s). She sends (m,sigAlice(m)) = (m,(r,s)) to Bob. To verify Alice’s signature, Bob first obtains an authentic…

Explore More

Digital signatures based on discrete logarithms – Digital Signatures

9.3 Digital signatures based on discrete logarithms Other than for RSA signatures, we cannot create a signature based on discrete logarithms simply by encrypting the message m with a private key. This is because in the Diffie-Hellman protocol, we only agree on a shared secret between Alice and Bob. In the ElGamal scheme, Alice uses…

Explore More

Elliptic Curve Digital Signature Algorithm (ECDSA) – Digital Signatures

9.3.2 Elliptic Curve Digital Signature Algorithm (ECDSA) When transferring the DSA algorithm to an elliptic curve E, we just switch the group from 𝔽p∗ to E, so the basic steps will stay the same. We just have to ensure that we switch the objects correctly: Bearing this in mind, formulating the ECDSA is not very…

Explore More

Digital signatures in TLS 1.3 – Digital Signatures

9.4 Digital signatures in TLS 1.3 To agree upon the signature algorithms they want to use during their TLS session, Alice and Bob use two TLS 1.3 extensions. The algorithms for verifying digital signatures in certificates – a topic we will cover in detail in Chapter 10, Digital Certificates and Certification Authorities – are transmitted…

Explore More

RSASSA-PKCS1-v1_5 algorithms 2 – Digital Signatures

These attacks illustrate why the input to the RSA signature generation function must be constructed in a secure manner and why the EMSA-PKCS1-v1_5 encoding uses a cryptographically secure hash function. More precisely, the EMSA-PKCS1-v1_5 encoding is computed as follows: 5. Output m. With the EMSA-PKCS1-v1_5 encoding function and the RSASP1 function in place, Alice can…

Explore More

RSASSA-PKCS1-v1_5 algorithms – Digital Signatures

9.4.1 RSASSA-PKCS1-v1_5 algorithms The RSASSA PKCS1 version 1.5 algorithms rsa˙pkcs1˙sha256, rsa˙pkcs1˙sha384, and rsa˙pkcs1˙sha512 are defined in RFC 8017 PKCS #1: RSA Cryptography Specifications Version 2.2. The hash functions – SHA-256, SHA-384 and SHA-512 – are definded in FIPS 180-4 Secure Hash Standard [129]. RFC 8017 specifies public-key cryptography algorithms – including so-called signature schemes with…

Explore More

RSASSA-PSS algorithms – Digital Signatures

9.4.2 RSASSA-PSS algorithms The TLS 1.3 SignatureScheme data structure defines two types of RSASSA-PSS algorithms: algorithms with public key OID rsaEncryption and algorithms with public key OID RSASSA-PSS. An Object Identifier (OID) is a unique number standardized by the International Telecommunication Union (ITU) and ISO/IEC to globally and unambiguously identify an object, attribute, or concept.…

Explore More