Dan149/noice
OTP (one-time pad) encryption CLI tool.
Noice is a command-line interface (CLI) tool designed to implement One-Time Pad (OTP) encryption. Written in the Zig programming language, Noice provides a fast, secure, and reliable way to cipher and decipher messages using the OTP encryption scheme. It also includes a token generator to facilitate the secure sharing of the encryption key, which is crucial for the OTP method.
One-Time Pad (OTP) is a symmetric encryption technique where a plaintext message is combined with a random key (or pad) of the same length. Each character in the plaintext is XORed with the corresponding character in the key, resulting in ciphertext that is completely random and theoretically unbreakable, provided certain conditions are met:
OTP encryption provides perfect secrecy and has been proven mathematically to be secure if the above conditions are met.
Zig is a systems programming language designed for simplicity, safety, and performance. Choosing Zig to implement Noice provides several benefits:
By using Zig, Noice leverages the power of a low-level language while benefiting from strong safety features, speed, and portability.
Since OTP encryption relies on the secrecy of the key, it is essential that the key is never transmitted in plaintext over insecure channels. Use secure methods (e.g., physical transfer, encrypted communication) to share the one-time pad between the sender and the recipient.