Menu

Tree [dfd04d] main /
 History

HTTPS access


File Date Author Commit
 challenge 2024-02-16 Karl Zander Karl Zander [e82e51] v0.3.1
 docs 2024-02-10 Karl Zander Karl Zander [70e088] v0.3
 example 2024-02-16 Karl Zander Karl Zander [e82e51] v0.3.1
 src 2024-02-23 Karl Zander Karl Zander [b7c113] one bug down
 BUGS 2024-02-23 Karl Zander Karl Zander [292afe] clear bugs
 README.md 2024-02-29 Karl Zander Karl Zander [dfd04d] any version of libssl-dev

Read Me

DarkTomb

*** For educational use only

DarkTomb is an authenticated file encryption program designed to allow two parties to exchange a file message using the public key algorithm QloQ and the symmetric algorithm AKMS in CBC mode (Advanced KryptoMagick Standard).  It works on Unix and Unix-like operating systems such as, Linux, FreeBSD and MacOS.  This document outlines the design of the program.

Flow

File encryption (AKMS-CBC) → KDF (QX) → HMAC (QX) → Key Exchange (QloQ) → Signing (QloQ)

Design

The design of DarkTomb is meant to be feature full without being too complex to follow.  Each message has a random key generated through the operating system URANDOM PRNG and is encrypted for key exchange using QloQ.  The file contents are then encrypted using the random key.  The random key is run through the QX KDF function to produce a key suitable for the QX HMAC function.  HMAC is run and the MAC is appended to the file.  Lastly, the message is hashed and the hash used in QloQ public signing showing that the message comes from the originator.

Operation

QloQ public key pairs must be generated by each party in order to allow them to communicate securely.  The .sk file must be kept secret at all times.  The .pk file is meant to be exchanged between the two parties and may be kept public at all times.

Key Generation: tomb-keygen username

DarkTomb is executed using the following commands.  Suppose Alice wants to send a message to Bob.  Alice uses Bobs public key pair and her secret key pair to encrypt the message.  Upon decryption, Bob uses Alices public key pair and his secret key pair to decrypt the message.

Encryption: tomb akms-cbc -e msg msg.enc bob.pk alice.sk
Decryption: tomb akms-cbc -d msg.enc msg.dec alice.pk bob.sk