WHISPERs – A better approach to OTP

A practical approach to OTP encryption
Dipl. Eng. Billian Marinov
Owner, EB”BARIN”
We will skip the historical lesson about OTP, it’s good and bad sides – everyone can look
on the web and learn the basics of OTP in 15 minutes. Presented in this document is an idea. It
was born from the conviction, that everything in cryptography has become too complicated and
out of control for the basic user, that wants his data secure. Traps in algorithms, massive
cryptanalytic agencies, weaknesses in encryption devices, backdoors and intelligent systems,
pretending to be legit and stealing all your data. And among these hundreds of algorithms and
protocols you can find only one, which has no math behind it – the Vernam cipher. Despite all
its negative aspects, if implemented with its three rules, remains the only one forever secure.
Let’s pretend, that we have an error free communication channel between Alice and
Bob. Any errors will break this algorithm. Eve, the eavesdropper, is able to copy all data
exchanged between Alice and Bob. Let’s pretend both Alice and Bob have the ability to
generate very good quality random key material. There goes WHISPER’s:
Prequisite: Alice generates a big library of true randomness and she shares it with Bob before
any communication, securely. In our case it’s a twin pair of 4GB SD cards. They have an error
free clear channel. LIB(x:x) is the value of the random 8 bit word in the library at specific
address x. Example: LIB(4:2) – second byte at address 4 (starting position in the lib - bit
www.bureaubarin.eu * [email protected] * +359 884706189
Bob wants to send Alice some sensitive information.
1) Bob uses his TRNG to generate a 32bit KEY.
2) Bob XOR’s the first 8 bits of the KEY with the first 8 bits of the library LIB, using the value
extracted from address 0 to encrypt his key –
KEY:0 XOR LIB(0:0) = XKEY1
3) Bob XOR’s this KEY with his DATA, encrypting the data –
4) Bob send to Alice XKEY1, then XDATA1.
5) Alice receives XKEY1 and uses the first 8 bits of her library to decrypt the round key –
XKEY1 XOR LIB(0:0) = KEY:0
6) Alice receives XDATA and uses the retrieved KEY to decrypt it to DATA.
7) Alice stores the KEY:0 value in the libadd1 variable.
8) Bob XOR’s the next 8 bits from his key with the next 8 bits of the library LIB, using the
value extracted from address 0 to encrypt his key –
KEY:1 XOR LIB(0:1) = XKEY2
9) Bob XOR’s the second byte from the KEY with his next DATA byte, encrypting the data –
10) Bob send to Alice XKEY2, then XDATA2.
11) Alice decrypts the second byte the same way and stores the extracted KEY:1 in a second
variable libadd2.
After going thru 4 such loops and using up the 32 bits fetched from the library and his key,
Bob generates a new 32 bit key for the next 4 bytes of data. Now Alice has 4 variables libadd1
thru libadd4. She combines them to get the full 32 bit KEY that Bob generated, using it as 32 bit
library address point. 32 bits can address the full 4GB space and because the generated KEY(x:x)
values are properly random and will be used to address and fetch values from a library with
properly random bytes, if the stream is error free, it will be totally secure. She jumps to that
address and gets the new LIB(1:x) value for the next 4 rounds of comms.
This is one full communication round. Key exchange is protected with OTP, with the KEY
itself providing the security. The library data, being random, serves only as a key mask, but a
secure one. Synchronization is provided by the KEY itself, using it to address the library. All Eve
will get is randomness. The key changes every 32 bits. Man in the middle attack is worthless, if
Eve XOR’s the two bytes in the stream with each other, all she’ll get is DATA XOR LIB, which is
random too. If the library is regenerated and updated at small enough intervals, security will be
www.bureaubarin.eu * [email protected] * +359 884706189
While this method sounds secure to us, we are not mathematicians. I hope this algorithm
gets checked by the community and we hope we receive feedback.
WHISPERs TRNG prototype – the test bed for the WHISPERs algorithm.
www.bureaubarin.eu * [email protected] * +359 884706189