* for random lines to be chosen, the file must be in plaintext (ASCII, .txt file) format. Maximum line length is 1000 characters.

What is TRENT?

TRENT is a backronym for "Trusted Random Entropy." The name TRENT comes from cryptography, where he is normally used to represent a mutually trusted third party. That's exactly what our TRENT service is: a third party random number generator for drawings, contests, and lotteries. TRENT allows both the drawing organizer and contestants to be sure that the winner was selected randomly, and that the random numbers were not biased in any way.

To understand how TRENT works, we must understand the problem that TRENT solves. Suppose a person named Chuck runs a website and wants to host a drawing between the users of his website. The lucky winner of the drawing will get a prize of $100. Chuck could pick a random user himself; he could even use radioactive decay as a source of randomness to ensure the drawing is absolutely fair. That would be great, but Chuck has no way of proving to his users that he actually did that instead of picking a friend (or even himself) and saying it was a random choice.

Chuck must be able to generate a random number and prove the following points to his users:

The number is actually random and wasn't biased towards a certain set of values.

Chuck didn't repeat the random number selection over and over until he got the number he wanted.

Everyone was given an equal chance of winning (when the random number is used for a drawing).

Chuck didn't change the meaning of the random number after it had been selected.

TRENT provides a means for Chuck to prove those points. TRENT solves the problem with the following security measures.

TRENT uses /dev/urandom, the ultra-secure cryptographic random number generator built into Linux.

TRENT does not allow Chuck to bias the numbers in any way.

TRENT enforces at least a 24-hour period between when a drawing number is reserved and when the actual drawing takes place. This allows Chuck to publish the drawing number ahead of time to prove he isn't repeating the drawing until he gets the results he wants.

TRENT accepts up to 3 texts files which can be used by Chuck to prove that the user list wasn't altered after the random numbers were selected. TRENT saves the SHA256 checksum of the file, so the checksum calculator can be used to ensure the file Chuck provides to his users is the same as the one Chuck provided to TRENT.

How to Use TRENT for Your Drawings

To use TRENT for your drawings, lotteries, and contests, all you have to do is follow a few simple steps:

Reserve a drawing number.

Give the drawing number to your clients. Provide at least 24 hours to allow them to check that the drawing number has been reserved.

Give your users the link to TRENT's drawing results page so everyone can verify that the drawing was fair.

There are a few important things you have to do to make sure your users can trust the results:

In the description field, provide an easy method to determine the winner from the random numbers.

If the outcome of the drawing depends on some extra data, such as a user list, save it as a plaintext (.txt) file and give it to TRENT. Even if you don't want to pick a random line in the file, giving the extra data to TRENT allows your clients to verify that the data hasn't been altered after the drawing has taken place.

That's all you have to do! TRENT will take care of explaining to your clients how to make sure the drawing was fair. Feel free to run a few practice drawings to get a feel for how TRENT works.

Source Code

You may view TRENT's source code by clicking the following link. Consider it to
be licensed under the Gnu GPL v3.