On the topic of encryption much has been developed, said, written, implemented and available. You can find tons of info on the web, read thousands of pages and try to grasp the complicated matter of protecting sensitive information on open channels. Here at Engineering Bureau Barin we work on a novel type of hardware encryption device, based around the only known to be practically unbreakable cyphers – the One Time Pad (Vernam) cypher. The one-time pad, which is a provably secure cryptosystem, was developed by Gilbert Vernam in 1918. The message is represented as a binary string (a sequence of0’s and 1’s using a coding mechanism such as ASCII coding. The key is a truly random sequence of 0’s and 1’s of the same length as the message. The encryption is done by adding the key to the message modulo 2, bit by bit. This process is often called exclusive or, and is denoted by XOR.

Example: Let the message be IF then its ASCII code be (1001001 1000110) and the key be (1010110 0110001). The ciphertext can be found by xoring message and key bits.

1001001 1000110 plaintext
1010110 0110001 key
0011111 1110110 ciphertext
0011111 1110110 ciphertext
1010110 0110001 key
1001001 1000110 plaintext

The security depends on the randomness of the key, but
• It is hard to define randomness.
• In cryptographic context, we seek two fundamental properties in a binary random key sequence:
1. Unpredictability: Independent of the number of the bits of a sequence observed, the probability of guessing the next bit is not better than ½. Therefore, the probability of a certain bit being 1 or 0 is exactly equal to ½.
2. Balanced (Equal Distribution): The number of 1’s and 0’s should be equal.

The probability of a key bit being 1 or 0 is exactly equal to ½. The plaintext bits are not balanced. Let the probability of 0 be x and then the probability of 1 turns out to be 1-x. We find out the probability of a ciphertext bit being 1 or 0 is equal to (½)x + (½)(1-x) = ½. Ciphertext looks like a random sequence. This means, that anything meaningful will be masked as random.

The drawbacks are very serious. First of all, it’s hard to generate truly random bitstreams. How will you measure the randomness, when it’s hard even to define it because it’s unmathematical? Can you ever be sure there is no hidden artifact, that will give away your TRNG (truly random number generator) characteristics, allowing an eavesdropper to characterize your encryption devise and find a way to brake your code? There is no way. But looking at the bright side of things, following several important rules in TRNG design and testing your keying material using several tests (like the Diehard tests), will allow you to generate keying material with sufficient quality. Secondly, you will have to generate the same amount of key bits as the databits. This poses great key distribution problems. The exchange has to precede the communication session, it has to be over a totally secure channel (personal meeting maybe) and it has to be done regularly, otherwise you and your correspondent will run out of key. Thinking about reusing keys? The Germans did the same mistake in WW2 and the fellows at Betchley Park in the UK loved it. They even developed the first computer to exploit this error and changed history. Keying material for OTP has to be disposed of once used. This puts OTP in the “impractical” group of cyphers.

The key to solve OTP’s problems lies in the OTP itself. We have focused on the key distribution problem, harnessing the speed of modern communications. We have developed a feedback-based TRNG and we have collected large amount of test sequences showing very good distribution and randomness. The developed crypto module prototype shows promising results and work will continue as planned.


Read it, try it, use it – the perfect secrecy for anyone. Governments have used it for ages – number stations have been beaming their codes to their field agents on the shortwaves from 1945 up until today. Information is more valuable than goods, as it has always been. PC based methods like DES, RSA and many more, used for end-user encryption,  will always be one step behind the technology and knowledge of the prepared professional code breaker. Your information will never be safe, because it is hidden behind some mathematical hard-to-solve problem. That is all it is – hard, nothing more. Do not forget – quantum computers are here. Not behind the corner.

OTP can user unfriendly, but offers complete secrecy – something everyone deserves. If you have low volume of data, you can use 10 sided dices to get random numbers (NEVER use 6 sided dices, you will get a pattern in the numbers that will make it easy for a codebreaker to crack your code), pencil and paper and protect your data from ANYONE. You can get these dices cheaply on the eBay. Never  use a computer for encrypting your data. The only absolutely secure computer is a physically separated computer, with restricted input/output peripherals, never connected to a network and securely stored with controlled access. Any other computer configuration will never guarantee absolute security.

Written by Dirk Rijmenants in 2012, a great and very well written piece of work. The updated 2014 version is here!

Abstract: This paper provides standard instructions on how to protect short text messages with one-time pad encryption. The encryption is performed with nothing more than a pencil and paper, but provides absolute message security. If properly applied, it is mathematically impossible for any eavesdropper to decrypt or break the message without the proper key.

Material sourced from http://users.telenet.be/d.rijmenants/en/otp.htm Please visit this site, it has tons of great material on cypher machines and cryptology!


IETF’s RFC 1750 – Randomness Recommendations for Security

(local link with PDF file, if the one above is broken)


WHISPERs encryption algorithm

This paper describes an idea. Following the KISS principle we have looked back to basics and came up with a fresh look at the OTP. The proposed practical way of using it is VERY easy to implement, both in hardware and in software. The only perquisite is a GOOD TRNG. Although considered to be used in a totally transparent serial interface cryptomodule , it can be applied to all kinds of data and environments. Feel free to send us your feedback on the office email.

Please use our contact form to request your copy of WHISPERs protocol.

Von Neumann’s Corrector
One of the simplest methods (with many drawbacks) of improving entropy in random bit streams is John Von Neumann’s correction method. It’s darn simple. Take every two consecutive bits and if they are equal discard them. If they are different, use the first (or the second) only. On a very basic level, this should leave you with a perfectly balanced in 1’s and 0’s bit stream. Beautiful, isn’t it? This method does have some flaws. In particular, it will discard (on average) 75% of all input bits. This leads to the RNG having a variable output bitrate, which complicates the implementation. Also, it does not remove many other forms of bias – for example, an endless string of 01010101… will be happily accepted, producing 00000… in the output, and other more obscure problems will also avoid the corrector. One way of improving the corrector is to force it to miss one in every three bits. This means check two bits, miss one, check two and so on. This will reduce bit-pair correlation.

This is the classic corrector implementation in hardware.

This is the improved version. The squared off bottom section is the Modulus 2 counter (it counts 0-1-2-0-1-2…).
Anyway, this corrector is interesting from historical point of view. In certain applications it may even make things worse. There are other methods, including the parity-check polynomial method (modular polynomial reduction), which give far better results in distribution and in masking some flaws of the noise source itself.


The story of Jonh Von Neumann


WHISPERs TRNG Test Results