Overview
Generate true random numbers from within your cloud deployment.
True random numbers can help you generate secure encryption keys, run simulations without worrying about bias, and protect games and contests against cheaters.
The instance is equipped with FPGA hardware that is responsible for generating random numbers. The Arbitrand TRNG is different than most hardware random number generators: our individual entropy sources generate numbers with nearly full entropy, and we combine the outputs of hundreds of entropy sources to create a high-throughput full-entropy bitstream for your use.
The resulting bitstream passes the most stringent randomness tests available today: our qualification process involves testing over 100 TB of random numbers from many different FPGA devices with BigCrush from TestU01 and the PractRand test suite (up to 16 TB). This lets us ensure that our FPGA image will generate full entropy regardless of operating conditions.
Most true random number generators use cryptographic post-processing in order to achieve full entropy. This can result in losses of entropy if keys are compromised or encryption protocols are broken. Like a quantum TRNG, the Arbitrand TRNG does not need cryptographic post-processing for quality, and does not use it.
The AMI provides an open-source server that makes entropy available remotely using HTTP and HTTPS (if you provide certificates), and provides a high-throughput TCP protocol for heavy users. Entropy is available locally through Linux file descriptors.
Highlights
- High quality: passes the hardest tests run on over 100 TiB of random data
- Fast: 4.5 Gbps per FPGA, up to 36 Gbps of true random numbers from one machine
- Quantum ready: full entropy with no reliance on cryptographic post-processing
Details
Typical total price
$11.65/hour
Features and programs
Financing for AWS Marketplace purchases
Pricing
Instance type | Product cost/hour | EC2 cost/hour | Total/hour |
---|---|---|---|
f1.2xlarge Recommended | $10.00 | $1.65 | $11.65 |
f1.4xlarge | $20.00 | $3.30 | $23.30 |
f1.16xlarge | $50.00 | $13.20 | $63.20 |
Additional AWS infrastructure costs
Type | Cost |
---|---|
EBS General Purpose SSD (gp2) volumes | $0.10/per GB/month of provisioned storage |
Vendor refund policy
Contact support@arbitrand.com
Legal
Vendor terms and conditions
Content disclaimer
Delivery details
64-bit (x86) Amazon Machine Image (AMI)
Amazon Machine Image (AMI)
An AMI is a virtual image that provides the information required to launch an instance. Amazon EC2 (Elastic Compute Cloud) instances are virtual servers on which you can run your applications and workloads, offering varying combinations of CPU, memory, storage, and networking resources. You can launch as many instances from as many different AMIs as you need.
Version release notes
Hardware build: https://arbitrand.com/builds.html Software build: https://gitlab.com/arbitrand/arbitrand-public released at commit number f8cfab13cf8b94fcb25a89f74ea8f4543e89fd00
Additional details
Usage instructions
Launch the instance and access the server with SSH with the username "ec2-user" and your SSH key to set up.
Access random numbers by reading /dev/arbitrand[n] (for the nth FPGA)
To run tests:
- Use "./arbitrand_testu01 [test size]" to run TestU01. Test sizes are "small" (quick), "crush" (1 hour), and "big (4 hours). You can specify which FPGA is tested by adding a second argument.
- Use "cat /dev/arbitrand[n] | practrand stdin" to test using practrand. Ctrl-C to cancel the test when you are done (uninterrupted, it will run for 8 days and crunch 32 TB of data).
To set up the HTTP/TCP server:
- Choose the appropriate config JSON for your instance type, and rename it to "config.json" (the default is for f1.2xlarge, and only configures for one FPGA)
- (Optional) if you want HTTPS, issue HTTPS certificates for the server
- (Optional) edit the configuration file to change port numbers, enable/disable interfaces, and enter the path of HTTPS certificates
- Set AWS security rules to enable access to the random number service from your other servers. The default ports are 4900 (HTTP), 4901 (HTTPS), and 4902 (high-throughput TCP).
- Launch the server by running "./arbitrand-server" or "sudo systemctl start arbitrand-server"
- Configure the server to run on startup with "sudo systemctl enable arbitrand-server"
The arbitrand-server service uses the binary and config JSON in /home/ec2-user and runs as ec2-user.
To use the server:
Send GET requests to [host}:4900/num to get a random number (ASCII encoded) from a range. Arguments:
- "floor" sets the floor (inclusive) for the range of random numbers.
- "limit" sets the limit (exclusive) on the range of random numbers.
- "base" sets the base to use (if not base 10). Acceptable values: 2-36. For example, to simulate a 6-sided die roll, send a GET request to: [host]:4900/num?floor=1&limit=7
Send GET requests to [host]:4900/data to get raw random data. Arguments:
- "len" sets the length of data requested (default 64 bytes).
- "encoding" sets the requested encoding - you can choose either base64, hex, or raw binary (default is base64). For example, to get 32 bytes of random data encoded in hexadecimal, send a GET request to: [host]:4900/data?len=32&encoding=hex
For more information and examples, refer to the documentation in the arbitrand-public/doc folder of our gitlab site.
Resources
Support
Vendor support
Basic email support only support@arbitrand.com
AWS infrastructure support
AWS Support is a one-on-one, fast-response support channel that is staffed 24x7x365 with experienced and technical support engineers. The service helps customers of all sizes and technical abilities to successfully utilize the products and features provided by Amazon Web Services.