• Stars
    star
    153
  • Rank 243,368 (Top 5 %)
  • Language
    C
  • License
    Creative Commons ...
  • Created over 4 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

SHISHUA – The fastest PRNG in the world

SHISHUA – The Fastest PRNG In The World

The announcement and explanation blog post is here.

Note: please do not use this for cryptographic purposes. If you need security, a recommended option is ChaCha20.

Implementations:

Comparison

Name Intel Performance ARM Performance Quality Seed correlation
SHISHUA 52.93 GB/s 8.78 GB/s >32 TiB >32 TiB
xoshiro256+x8 40.18 GB/s 3.69 GB/s 1 KiB 0 KiB
RomuTrio 8.62 GB/s 4.76 GB/s >32 TiB 1 KiB
xoshiro256+ 7.88 GB/s 4.31 GB/s 512 MiB 1 KiB
wyrand 7.00 GB/s 2.53 GB/s >32 TiB 32 KiB
Lehmer128 6.14 GB/s 1.83 GB/s >32 TiB 1 KiB
ChaCha8 6.28 GB/s 1.72 GB/s >32 TiB? >32 TiB?
RC4 0.35 GB/s 0.15 GB/s 1 TiB 1 KiB
  1. Performance: in number of CPU cycles spent per byte generated, on N2 GCP instances. On N2D (AMD), the order is the same.
  2. Quality: level at which it fails PractRand. We show a > if it did not fail. We put a question mark if we have not proved it.
  3. Seed correlation: PractRand on interleaving of bytes from eight streams with seeds 1, 2, 4, 8, 16, 32, 64, 128. We use PractRand with folding 2 and expanded tests.

On the subject of seed correlations, the ./bin/sample-seed-fingerprints.sh program highlights additional anomalies:

  • RC4 has weak seeds with heavy artefacts visible in the fingerprints.
  • RomuTrio's fingerprints start with the same first character for all seeds.

Commands

  • make: build ./shishua.
  • make test: run performance tests, PractRand, and BigCrush on SHISHUA.
  • make test/benchmark-seed: run seed correlation test.
  • make test/benchmark-perf: run performance comparison locally.
  • make benchmark-intel: run performance comparison on a GCP Intel chip.
  • make benchmark-amd: run performance comparison on a GCP AMD chip.
  • make benchmark-arm: run performance comparison on an AWS Graviton ARM chip.

The SHISHUA and SHISHUA-half are under the CC0 license.

More Repositories

1

succinct-cybernetics

Computer Science Cheatsheets.
JavaScript
1,604
star
2

New-In-A-Spec

What's new in <insert spec here>?
HTML
95
star
3

json-diff

Compute the difference between two JSON-serializable Ruby objects.
Ruby
70
star
4

aulx

Aulx is an autocompleter for Web code.
JavaScript
62
star
5

localeval

Safe ES5 eval() that doesn't leak globals.
JavaScript
33
star
6

AsciiDocBox

Live AsciiDoc Editor.
JavaScript
27
star
7

opera

Opera's Source Code. A mirror.
19
star
8

queread

Read natural language interactive queries. Great for bots.
JavaScript
18
star
9

sc

Node.js Web server framework, emphasized distinction between serving pages and XHR
JavaScript
13
star
10

nmt

Not My Territory (Yet). A multiplayer game of exploration, construction and simulation.
JavaScript
12
star
11

dotset

Dotset, The Settings File Format.
JavaScript
9
star
12

ace2cm

Convert Ace highlight rules to the CodeMirror format.
JavaScript
9
star
13

email-login

Passwordless login management through emails
JavaScript
9
star
14

canop

Centralized data synchronization through total order
JavaScript
8
star
15

base256

JavaScript
6
star
16

passphrase

Generate cryptographically secure passphrases at a set entropy.
JavaScript
6
star
17

base32check

A checksum library for base32 visual or audio transcription errors.
JavaScript
5
star
18

WebJson

You know how to store data. JSON, right? With WebJson, now you can modify it - or let your users modify it - inside the browser. Click, drag, select: the easy way.
JavaScript
4
star
19

travelbot

Bot to search for journeys
JavaScript
3
star
20

travel-scrapper

Scrap travel data. Search for journeys.
JavaScript
3
star
21

optimal-wordle

Various optimality assessment algorithms to solve the Wordle game: https://www.powerlanguage.co.uk/wordle/
Rust
3
star
22

espadrine.github.com

Random data (formatted and raw) about me.
HTML
3
star
23

dev

collaborative editor
JavaScript
3
star
24

iDoc

The Internet In-Page Editor. Edit any web page freely and save them.
JavaScript
3
star
25

fleau

Fléau is an extensible, readable, streamed, safe templating language.
JavaScript
2
star
26

json-api-vanilla

Deserialize JSON API formats into vanilla Ruby objects.
Ruby
2
star
27

CustomSearch

Google Search enhanced - keyboard shortcuts and infinite scrolling.
JavaScript
2
star
28

shishua-python

SHISHUA: Python bindings to the fastest PRNG.
C
2
star
29

fsos

A file system object storage for Node.js.
JavaScript
2
star
30

ServerScript

A few niceties to help run the shields server
1
star
31

spider

HTML comparative text editor.
JavaScript
1
star
32

random-sampling-benchmark

Go
1
star
33

shishua-nodejs

SHISHUA: The fastest PRNG. A seedrandom-compatible random number generator.
C
1
star
34

email-login-website

Website for email-login https://github.com/espadrine/email-login
HTML
1
star
35

multilog

A fun and collateral way to print logs!
JavaScript
1
star
36

moz-patches

Patches to the Mozilla fx-team branch.
1
star
37

latexmarkdown

An academic tool for writing papers easily. Converts LaTeX + Markdown source to publishable webpages.
JavaScript
1
star
38

color-texture

Make textures based on a color.
1
star
39

json-autosave

Access and modify a JSON-serializable object that automatically gets saved to disk.
JavaScript
1
star
40

email-login-example

Example for email-login (https://github.com/espadrine/email-login)
JavaScript
1
star
41

Markdawn

Markdown with more features, suitable for troff, etc.
1
star
42

storygen

Procedural generation of stories
JavaScript
1
star
43

jsonsync

Transport-agnostic operation-rich peer-to-peer JSON synchronization
JavaScript
1
star
44

test-travis

This is for testing purposes. Give it all your stars!
JavaScript
1
star
45

combit

The COMBIT pseudo-random number generators.
C
1
star