Aller au contenu principal

Ed25519 Signatures: Why Ackify Uses Modern Cryptography for Your Proof of Reading

Published on November 18, 2025

When you ask an employee to confirm reading a document, that proof must be unfalsifiable. No question of a malicious admin creating fake confirmations, or an employee disputing having validated their reading.

That's why Ackify uses Ed25519 cryptographic signatures—the same algorithm used by Signal, WireGuard, and OpenSSH.

What is Ed25519?

Ed25519 is a digital signature algorithm based on elliptic curves (EdDSA). Designed by Daniel J. Bernstein, it offers:

  • High security: 128 bits of security, equivalent to RSA-3072
  • Performance: ultra-fast signing and verification
  • Compact keys: 32 bytes for public key, 64 for signature
  • Attack resistance: no known vulnerabilities since 2011

How Ackify uses Ed25519

For each read confirmation, Ackify generates a cryptographic signature:

Payload = {
  doc_id: "it-charter-2025",
  user_sub: "oauth2|123456",
  user_email: "john.doe@company.com",
  signed_at_utc: "2025-11-18T14:32:00Z",
  nonce: "a1b2c3d4e5f6..."
}

Hash = SHA-256(Payload)
Signature = Ed25519_Sign(PrivateKey, Hash)

This signature is stored in the database with the payload. It guarantees:

  1. Integrity: any modification to the payload invalidates the signature
  2. Non-repudiation: only the Ackify server can generate this signature
  3. Authenticity: the public key allows signature verification

Why not RSA or ECDSA?

Ed25519 outperforms alternatives on several criteria:

Criteria RSA-2048 ECDSA P-256 Ed25519
Signature size 256 bytes 64 bytes 64 bytes
Signing speed Slow Medium Very fast
Security 112 bits 128 bits 128 bits
Known vulnerabilities Padding attacks Nonce reuse None

Ed25519 is also deterministic: the same input always produces the same signature, eliminating risks related to faulty random generators.

The role of the anti-replay nonce

Each signature includes a nonce (number used once)—a unique random value. This prevents replay attacks: impossible to reuse an old signature to simulate a new confirmation.

Signature verification

At any time, you can verify the authenticity of a confirmation:

# Export public key
curl https://your-instance.com/api/public-key

# Verify a signature
curl https://your-instance.com/api/verify?doc=charter-2025&user=john.doe@company.com

If the payload has been modified (date, user, document), verification fails. Integrity proof guaranteed.

Implications for audit

During an ISO 27001 or GDPR audit, this architecture provides:

  • Cryptographic proofs: not just a modifiable database entry
  • Verifiability: the auditor can verify each signature
  • Immutability: PostgreSQL trigger protects timestamps
  • Traceability: SHA-256 hash of the original document

Private key security

The Ed25519 private key is Ackify's most sensitive secret. Recommendations:

  • Store it in an environment variable or secret manager
  • Never commit it to Git
  • Make a secure backup (loss = invalidation of all signatures)
  • Rotation possible with key history preservation

Conclusion

Cryptography isn't a gimmick—it's the foundation of reliable proof of reading. Ed25519 offers the best trade-off between security, performance, and simplicity.

Ackify natively integrates these cryptographic guarantees, without complex configuration. Your proofs of reading are unfalsifiable by design.

➡️ Discover Ackify — proof of reading with cryptographic integrity.

Ready to secure your proofs of acknowledgment?

Create your account in 30 seconds and start tracking reading of your critical documents.