HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
google
paranoid_crypto
Python2022–2026
google / paranoid_crypto

paranoid_crypto

Paranoid's library contains implementations of checks for well known weaknesses on cryptographic artifacts.

7Distinct people
15Mentions
0Explicit recommenders
913GitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

Paranoid's library contains implementations of checks for well known weaknesses on cryptographic artifacts.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 3:03:16 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year15 dated mentions

Observed mentions: 2022-08-26 15:38:29 UTC to 2026-11-01 23:09:18 UTC.

02462022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments20222023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 4 mentions; 0 submissions, 4 comments20242025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 7 mentions; 1 submissions, 6 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC110
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC101
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC404
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC202
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC716

What Hacker News says

15 sources
> eMudhra. you know, the company who had their CA private key as the number Four. this wasn't found by an ai, but just a human using a old ass library made by google called paranoid_crypto to scan through keys for fun out of curiosity https://github.com/google/paranoid_crypto > The goal is to increase the confidence in cryptography use cases inside and outside Google. With Paranoid, any cryptographic artifact can be tested, but its primary motivation is to detect the usage of weak third party hardware or software black boxes. So google didn't use their own paranoid_crypto lib to check the key before adding it to the Chrome trusted certs.
In So I guess everyone uses LLMs to think now
The researcher in question has publicly stated[0] that he wanted to try Google's paranoid_crypto tool[1], so he ran it on some roots as a quick proof-of-concept, and the first thing that happened was that it detected these intermediates. He also states he's been running a lot of certificate linters so this was just the next logical step I guess. [0]: https://groups.google.com/a/mozilla.org/g/dev-security-polic... [1]: https://github.com/google/paranoid_crypto
In CVE-2026-111943: Compromised Intermediate Certificate Authority
new email from wayne, who is the original reporter: "I've had more than a few emails asking on how this was discovered. The simple answer is: https://github.com/google/paranoid_crypto Yeah, out of the box. CCADB was intended to be a quick corpus test before looking at subscriber certificates... I've done a far more thorough check of all existing CCADB certificates, thankfully no more hits. Most of my time has been spent going over the basics that everyone assumed someone else had already done - a critical mistake to ever make near security. So unless someone has significantly more computational resources or access to more cryptanalysis research the low-hanging fruit has been caught so far." https://groups.google.com/a/mozilla.org/g/dev-security-polic...
In Eight Bits of Trust: eMudhra's CA keys cracked in milliseconds
Randomness test > Specific tests for randomness: https://en.wikipedia.org/wiki/Randomness_test Which NIST SP-800-22 implementation instead of the now-archived paranoid_crypto randomness tests? paranoid_crypto/docs/randomness_tests.md : https://github.com/google/paranoid_crypto/blob/main/docs/ran... /? NIST SP-800-22 Rust: https://www.google.com/search?q=NIST+SP-800-22+rust&oq=NIST+... Sometimes it's possible to whiten random to make it uniform random or normal random; Whitening transformation: https://en.wikipedia.org/wiki/Whitening_transformation
In When random is not actually random enough
What about if you then feed that into a DRBG? TRNG based on quantum vacuum: From https://news.ycombinator.com/item?id=44371059 : > "100-Gbit/s Integrated Quantum Random Number Generator Based on Vacuum Fluctuations" https://link.aps.org/doi/10.1103/PRXQuantum.4.010330 From .. https://news.ycombinator.com/item?id=43497414 : >>> google/paranoid_crypto.lib.randomness_tests There are NIST randomness tests, for example; https://github.com/google/paranoid_crypto/tree/main/paranoid... https://github.com/google/paranoid_crypto/blob/main/examples... "Traceable random numbers from a non-local quantum advantage" (2025) https://www.nature.com/articles/s41586-025-09054-3 : > Here we demonstrate a fully traceable random number generation protocol based on device-independent techniques. Our protocol extracts randomness from unpredictable non-local quant
Read the rest
um correlations, and uses distributed intertwined hash chains to cryptographically trace and verify the extraction process. This protocol forms the basis for a public traceable and certifiable quantum randomness beacon that we have launched. FWIU also there are already QRNG or QTRNG based upon photonic speckle pattern interference; LEDs and a photodiode and an FPGA or an RP2040 or better.
In Beyond Traditional Pseudorandomness, Tsotchkes' Quantum Random Number Generation
Another source of random entropy better than a wall of lava lamps: >> "100-Gbit/s Integrated Quantum Random Number Generator Based on Vacuum Fluctuations" https://link.aps.org/doi/10.1103/PRXQuantum.4.010330 But is that good enough random for rngd to continually re-seed an rng with? (Is our description of such measurable fluctuations in the quantum foam inadequate to predict what we're calling random?) > google/paranoid_crypto.lib.randomness_tests: https://github.com/google/paranoid_crypto/tree/main/paranoid... .. docs: https://github.com/google/paranoid_crypto/blob/main/docs/ran...
In Cloudflare: New source of randomness just dropped
TLA+, Formal Methods in Python: FizzBee, Nagini, Deal-solver, Dafny: https://news.ycombinator.com/item?id=39938759 : > Python is Turing complete, but does [TLA,] need to be? Is there an in-Python syntax that can be expanded in place by tooling for pretty diffs; How much overlap between existing runtime check DbC decorators and these modeling primitives and feature extraction transforms should there be? (In order to: minimize cognitive overload for human review; sufficiently describe the domains, ranges, complexity costs, inconstant timings, and the necessary and also the possible outcomes given concurrency,) From "S2n-TLS – A C99 implementation of the TLS/SSL protocol" https://news.ycombinator.com/item?id=38510025 : > But formal methods (and TLA+ for distributed computation) don't eliminate side channels. [in CPUs e.g. with branch predict
Read the rest
ion, GPUs, TPUs/NPUs, Hypervisors, OS schedulers, IPC,] Still though, coverage-based fuzzing; From https://news.ycombinator.com/item?id=30786239 : > OSS-Fuzz runs CloudFuzz[Lite?] for many open source repos and feeds OSV OpenSSF Vulnerability Format: https://github.com/google/osv#current-data-sources From "Automated Unit Test Improvement using Large Language Models at Meta" https://news.ycombinator.com/item?id=39416628 : > "Fuzz target generation using LLMs" (2023), OSSF//fuzz-introspector* > gh topic: https://github.com/topics/coverage-guided-fuzzing The Fuzzing computational task is similar to the Genetic Algorithm computational task, in that both explore combinatorial Hilbert spaces of potentially infinite degree and thus there is need for parallelism and thus there is need for partitioning for distributed computation. (But there is no computational oracle to predict that any particular sequence of combinations of inputs under test will deterministically halt on any of the distributed workers, so second-order methods like gradient descent help to skip over apparently desolate territory when the error hasn't changed in awhile) The Fuzzing computational task: partition the set of all combinations of inputs for distributed execution with execute-once or consensus to resolve redundant results. DbC Design-By-Contract patterns include Preconditions and Postconditions (which include tests of Invariance) We test Preconditions to exclude Inputs that do not meet the specified Ranges, and we verify the Ranges of Outputs in Postconditions. We test Invariance to verify that there haven't been side-effects in other scopes; that variables and their attributes haven't changed after the function - the Command - returns. DbC: https://en.wikipedia.org/wiki/Design_by_contract : > Design by contract has its roots in work on formal verification, formal specification and Hoare logic. TLA+ > Language: https://en.wikipedia.org/wiki/TLA%2B#Language Formal verification: https://en.wikipedia.org/wiki/Formal_verification From https://news.ycombinator.com/item?id=38138319 : > Property testing: https://en.wikipedia.org/wiki/Property_testing > awesome-python-testing#property-based-testing: https://github.com/cleder/awesome-python-testing#property-ba... > Fuzzing: https://en.wikipedia.org/wiki/Fuzzing Software testing > Categorization > [..., Property testing, Metamorphic testing] https://en.wikipedia.org/wiki/Software_testing#Categorizatio... -- From https://news.ycombinator.com/item?id=28494885#28513982 : > https://github.com/dafny-lang/dafny #read-more > Dafny Cheat Sheet: https://docs.google.com/document/d/1kz5_yqzhrEyXII96eCF1YoHZ... > Looks like there's a Haskell-to-Dafny converter. haskell2dafny: https://gitlab.doc.ic.ac.uk/dcw/haskell-subset-to-dafny-tran... -- Controlled randomness: tests of randomness, random uniform not random norm, rngd, tests of randomness: From https://news.ycombinator.com/item?id=40630177 : > google/paranoid_crypto.lib.randomness_tests: https://github.com/google/paranoid_crypto/tree/main/paranoid... docs: https://github.com/google/paranoid_crypto/blob/main/docs/ran...
In The sad state of property-based testing libraries
python has random.shuffle() and random.sample() with an MT Mersenne Twister PRNG for random. https://docs.python.org/3/library/random.html#random.shuffle Modules/_randommodule.c: https://github.com/python/cpython/blob/main/Modules/_randomm... , Library/random.py: https://github.com/python/cpython/blob/main/Lib/random.py#L3... From "Uniting the Linux random-number devices" (2022) https://news.ycombinator.com/item?id=30377944 : > > In 2020, the Linux kernel version 5.6 /dev/random only blocks when the CPRNG hasn't initialized. Once initialized, /dev/random and /dev/urandom behave the same. [17] From https://news.ycombinator.com/item?id=37712506 : > "lock-free concurrency" [...] "Ask HN: Why don't PCs have better entropy sources?" [for generating txids/uuids] https://news.ycombinator.com/item?id=30877296 > "100-Gbit/s Integrated Quantum Rand
Read the rest
om Number Generator Based on Vacuum Fluctuations" https://link.aps.org/doi/10.1103/PRXQuantum.4.010330 google/paranoid_crypto.lib.randomness_tests: https://github.com/google/paranoid_crypto/tree/main/paranoid...
In Zero Tolerance for Bias
/? Knuth's 4A volume of The Art of Computer Programming site:github.com : https://www.google.com/search?q=Knuth%27s+4A+volume+of+The+A... : > Generate {n-tuples, permutations, combinations, partitions, set partitions, trees,} with combinatorial patterns Combinatorics: https://en.wikipedia.org/wiki/Combinatorics - Exercise: Permutations [& Combinations]: https://rosettacode.org/wiki/Permutations#Python https://rosettacode.org/wiki/Combinations_and_permutations#P... - Exercise: Rewrite itertools.product as a generator that yields in a different order than itertools.product; write a different graph traversal that also covers without repetition - Exercise: The Birthday problem and actual probability of cryptographic hash collision given hash length n: https://en.wikipedia.org/wiki/Birthday_problem - Exercise: The Gambler's Fallacy: Given a
Read the rest
sequence of random values that satisfy many of the tests in e.g. Google/paranoid_crypto.lib.randomness_tests, where would Gambler's Fallacy have caused loss? https://en.wikipedia.org/wiki/Gambler%27s_fallacy https://github.com/google/paranoid_crypto/tree/main/paranoid... Combinatorics and physics: https://en.wikipedia.org/wiki/Combinatorics_and_physics /?hnlog Ctrl-f Hilbert : "Matrices and Graph" https://news.ycombinator.com/item?id=36739579 : > [ Multigraph, networkx.MultiDiGraph , RDF Linked Data ] > Tensor product of graphs: https://en.wikipedia.org/wiki/Tensor_product_of_graphs > Hilbert space: https://en.wikipedia.org/wiki/Hilbert_space : >> In mathematics, Hilbert spaces (named after David Hilbert) allow the methods of linear algebra and calculus to be generalized from (finite-dimensional) Euclidean vector spaces to spaces that may be infinite-dimensional. Hilbert spaces arise naturally and frequently in mathematics and physics, typically as function spaces. Formally, a Hilbert space is a vector space equipped with an inner product that induces a distance function for which the space is a complete metric space. >> [...] The inner product between two state vectors is a complex number known as a probability amplitude. Wave interference > Quantum interference: https://en.wikipedia.org/wiki/Wave_interference#Quantum_inte... EM waves have amplitude in the interval [-1,1] or [-inf, +inf]. With EM waves we typically model constructive interference and destructive interference. There is also a particle-like phononic quantum wave interpretation of EM waves. Quantum waves are in the interval [0,1]. Quantum embedding is the process and study of encoding data as wave functions with e.g. phase. https://news.ycombinator.com/item?id=38255569 : > How many ways are there to roll a {2, 8, or 6}-sided die with qubits and quantum embedding? Quantum superposition and combinatorics; why can't the quantum simulator run this code like an actual QC? "Where does energy go during destructive interference?" (2018) https://news.ycombinator.com/item?id=32421509 : > From Conservation_of_energy#Quantum_theory https://en.wikipedia.org/wiki/Conservation_of_energy#Quantum... : >> In quantum mechanics, energy of a quantum system is described by a self-adjoint (or Hermitian) operator called the Hamiltonian, which acts on the Hilbert space (or a space of wave functions) of the system. If the Hamiltonian is a time-independent operator, emergence probability of the measurement result does not change in time over the evolution of the system. Thus the expectation value of energy is also time independent [If the Hamiltonian is a time-independent operator] {Employee, Conference, Computational resource} Scheduling with priority: https://news.ycombinator.com/item?id=22589911 : > https://en.wikipedia.org/wiki/Hilbert_curve_scheduling : >> [...] the Hilbert curve scheduling method turns a multidimensional task allocation problem into a one-dimensional space filling problem using Hilbert curves, assigning related tasks to locations with higher levels of proximity.[1] Other space filling curves may also be used in various computing applications for similar purposes. [2] And then fluids. Computational Fluid Dynamics is still one of the harder problems in classical high performance computing and quantum computing because it is a combinatorically hard problem to model every possible fluid outcome in order to predict the most likely outcome(s). /?hnlog Navier [e Euler, Stokes,] : - "Deep Learning Poised to ‘Blow Up’ Famed Fluid Equations" https://news.ycombinator.com/item?id=31049608 : > [awesome-fluid dynamics, jax-cfd,] And then Evolutionary Algorithms, - Infinite Monkey Theorem: https://en.wikipedia.org/wiki/Infinite_monkey_theorem - https://news.ycombinator.com/item?id=39110110#39139198 : > Holman's "elegant normal form", Evolutionary Algorithms > Convergence: https://en.wikipedia.org/wiki/Evolutionary_algorithm#Converg... : > For EAs in which, in addition to the offspring, at least the best individual of the parent generation is used to form the subsequent generation (so-called elitist EAs), there is a general proof of convergence under the condition that an optimum exists. Without loss of generality, a maximum search is assumed for the proof: [...]
In Unscrambling the hidden secrets of superpermutations
"Discrete uniform distribution" https://en.wikipedia.org/wiki/Discrete_uniform_distribution Randomness test: https://en.wikipedia.org/wiki/Randomness_test Google/paranoid_crypto > docs/randomness_tests.md > Tests: https://github.com/google/paranoid_crypto/blob/main/docs/ran... "10 Tbit/s physical random bit generation with chaotic microcomb" (2023) https://news.ycombinator.com/item?id=38044587 ; without DRBG, too
In Scientists Destroy Illusion That Coin Toss Flips Are 50–50
I encourage one to merge into e.g. {NumPy, SciPy, }; are there PRs? Though SymPy.physics only yet supports X,Y,Z vectors and doesn't mention e.g. "jaccard"?, FWIW: https://docs.sympy.org/latest/modules/physics/vector/vectors... https://docs.sympy.org/latest/modules/physics/vector/fields.... #cfd include/simsimd/simsimd.h: https://github.com/ashvardanian/SimSIMD/blob/main/include/si... conda-forge maintainer docs > Switching BLAS implementation: https://conda-forge.org/docs/maintainer/knowledge_base.html#... : conda install "libblas=*=*mkl" conda install "libblas=*=*openblas" conda install "libblas=*=*blis" conda install "libblas=*=*accelerate" conda install "libblas=*=*netlib" numpy-feedstock: https://github.com/conda-forge/numpy-feedstock/blob/main/rec... scipy-feedstock: https://github.com/conda-forge/scipy-feedstock/blob/ma
Read the rest
in/rec... pysimdjson-feedstock: https://github.com/conda-forge/pysimdjson-feedstock/blob/mai... simdjson-feedstock: https://github.com/conda-forge/simdjson-feedstock/blob/main/... mkl_random-feedstock: https://github.com/conda-forge/mkl_random-feedstock https://github.com/google/paranoid_crypto/tree/main/paranoid... : > NumPy-based implementation of random number generation sampling using Intel (R) Math Kernel Library, mirroring numpy.random, but exposing all choices of sampling algorithms available in MKL blas: https://github.com/conda-forge/blas-feedstock/blob/main/reci... xtensor-blas-feedstock: https://github.com/conda-forge/xtensor-blas-feedstock xtensor-fftw (FFT with xtensor (c++)) could probably be AVX-512 and SVE -optimized as well? https://github.com/xtensor-stack/xtensor-fftw ggml_cpu_has_avx512() https://github.com/search?q=repo%3Aggerganov%2Fggml%20AVX&ty... https://github.com/search?q=repo%3Aggerganov%2Fllama.cpp%20a... CuPy would also be an impactful place to merge and defend these optimizations; though no GPUs have AVX-512 or SVE? cupyx.scipy.spatial.distance: https://docs.cupy.dev/en/stable/reference/scipy_spatial_dist... https://docs.cupy.dev/en/stable/reference/comparison.html
In Show HN: SimSIMD vs SciPy: How AVX-512 and SVE make SIMD nicer and ML 10x faster

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.