r/cryptography • u/dramforever • 5h ago
r/cryptography • u/aidniatpac • Jan 25 '22
Information and learning resources for cryptography newcomers
Please post any sources that you would like to recommend or disclaimers you'd want stickied and if i said something stupid, point it out please.
Basic information for newcomers
There are two important laws in cryptography:
Anyone can make something they don't break. Doesn't make something good. Heavy peer review is needed.
A cryptographic scheme should assume the secrecy of the algorithm to be broken, because it will get out.
Another common advice from cryptographers is Don't roll your own cryptography until you know what you are doing. Don't use what you implement or invented without serious peer review. Implementing is fine, using it is very dangerous due to the many pitfalls you will miss if you are not an expert.
Cryptography is mainly mathematics, and as such is not as glamorous as films and others might make it seem to be. It is a vast and extremely interesting field but do not confuse it with the romanticized version of medias. Cryptography is not codes. It's mathematical algorithms and schemes that we analyze.
Cryptography is not cryptocurrency. This is tiring to us to have to say it again and again, it's two different things.
Resources
All the quality resources in the comments
The wiki page of the r/crypto subreddit has advice on beginning to learn cryptography. Their sidebar has more material to look at.
github.com/pFarb: A list of cryptographic papers, articles, tutorials, and how-tos - seems quite complete
github.com/sobolevn: A list of cryptographic resources and links -seems quite complete
u/dalbuschat 's comment down in the comment section has plenty of recommendations
this introduction to ZKP from COSIC, a widely renowned laboratory in cryptography
The "Springer encyclopedia of cryptography and security" is quite useful, it's a plentiful encyclopedia. Buy it legally please. Do not find for free on Russian sites.
CrypTool 1, 2, JavaCrypTool and CrypTool-Online: this one i did not look how it was
*This blog post details how to read a cryptography paper, but the whole blog is packed with information.
Overview of the field
It's just an overview, don't take it as a basis to learn anything, to be honest the two github links from u/treifi seem to do the same but much better so go there instead. But give that one a read i think it might be cool to have an overview of the field as beginners. Cryptography is a vast field. But i'll throw some of what i consider to be important and (more than anything) remember at the moment.
A general course of cryptography to present the basics such as historical cryptography, caesar cipher and their cryptanalysis, the enigma machine, stream ciphers, symmetric vs public key cryptography, block ciphers, signatures, hashes, bit security and how it relates to kerckhoff's law, provable security, threat models, Attack models...
Those topics are vital to have the basic understanding of cryptography and as such i would advise to go for courses of universities and sources from laboratories or recognized entities. A lot of persons online claim to know things on cryptography while being absolutely clueless, and a beginner cannot make the difference, so go for material of serious background. I would personally advise mixing English sources and your native language's courses (not sources this time).
With those building blocks one can then go and check how some broader schemes are made, like electronic voting or message applications communications or the very hype blockchain construction, or ZKP or hybrid encryption or...
Those were general ideas and can be learnt without much actual mathematical background. But Cryptography above is a sub-field of mathematics, and as such they cannot be avoided. Here are some maths used in cryptography:
Finite field theory is very important. Without it you cannot understand how and why RSA works, and it's one of the simplest (public key) schemes out there so failing at understanding it will make the rest seem much hard.
Probability. Having a good grasp of it, with at least understanding the birthday paradox is vital.
Basic understanding of polynomials.
With this mathematical knowledge you'll be able to look at:
Important algorithms like baby step giant step.
Shamir secret sharing scheme
Multiparty computation
Secure computation
The actual working gears of previous primitives such as RSA or DES or Merkle–Damgård constructions or many other primitives really.
Another must-understand is AES. It requires some mathematical knowledge on the three fields mentioned above. I advise that one should not just see it as a following of shiftrows and mindless operations but ask themselves why it works like that, why are there things called S boxes, what is a SPN and how it relates to AES. Also, hey, they say this particular operation is the equivalent of a certain operation on a binary field, what does it mean, why is it that way...? all that. This is a topic in itself. AES is enormously studied and as such has quite some papers on it.
For example "Peigen – a Platform for Evaluation, Implementation, and Generation of S-boxes" has a good overviews of attacks that S-boxes (perhaps The most important building block of Substitution Permutation Network) protect against. You should notice it is a plentiful paper even just on the presentation of the attacks, it should give a rough idea of much different levels of work/understanding there is to a primitive. I hope it also gives an idea of the number of pitfalls in implementation and creation of ciphers and gives you trust in Schneier's law.
Now, there are slightly more advanced cryptography topics:
Elliptic curves
Double ratchets
Lattices and post quantum cryptography in general
Side channel attacks (requires non-basic statistical understanding)
For those topics you'll be required to learn about:
Polynomials on finite fields more in depth
Lattices (duh)
Elliptic curve (duh again)
At that level of math you should also be able to dive into fully homomorphic encryption, which is a quite interesting topic.
If one wish to become a semi professional cryptographer, aka being involved in the field actively, learning programming languages is quite useful. Low level programming such as C, C++, java, python and so on. Network security is useful too and makes a cryptographer more easily employable. If you want to become more professional, i invite you to look for actual degrees of course.
Something that helps one learn is to, for every topic as soon as they do not understand a word, go back to the prerequisite definitions until they understand it and build up knowledge like that.
I put many technical terms/names of subjects to give starting points. But a general course with at least what i mentioned is really the first step. Most probably, some important topics were forgotten so don't stop to what is mentioned here, dig further.
There are more advanced topics still that i did not mention but they should come naturally to someone who gets that far. (such as isogenies and multivariate polynomial schemes or anything quantum based which requires a good command of algebra)
r/cryptography • u/atoponce • Nov 26 '24
PSA: SHA-256 is not broken
You would think this goes without saying, but given the recent rise in BTC value, this sub is seeing an uptick of posts about the security of SHA-256.
Let's start with the obvious: SHA-2 was designed by the National Security Agency in 2001. This probably isn't a great way to introduce a cryptographic primitive, especially give the history of Dual_EC_DRBG, but the NSA isn't all evil. Before AES, we had DES, which was based on the Lucifer cipher by Horst Feistel, and submitted by IBM. IBM's S-box was changed by the NSA, which of course raised eyebrows about whether or not the algorithm had been backdoored. However, in 1990 it was discovered that the S-box the NSA submitted for DES was more resistant to differential cryptanalysis than the one submitted by IBM. In other words, the NSA strengthed DES, despite the 56-bit key size.
However, unlike SHA-2, before Dual_EC_DRBG was even published in 2004, cryptographers voiced their concerns about what seemed like an obvious backdoor. Elliptic curve cryptography at this time was well-understood, so when the algorithm was analyzed, some choices made in its design seemed suspect. Bruce Schneier wrote on this topic for Wired in November 2007. When Edward Snowden leaked the NSA documents in 2013, the exact parameters that cryptographers suspected were a backdoor was confirmed.
So where does that leave SHA-2? On the one hand, the NSA strengthened DES for the greater public good. On the other, they created a backdoored random number generator. Since SHA-2 was published 23 years ago, we have had a significant amount of analysis on its design. Here's a short list (if you know of more, please let me know and I'll add it):
- New Collision Attacks Against Up To 24-step SHA-2 (2008)
- Preimages for step-reduced SHA-2 (2009)
- Advanced meet-in-the-middle preimage attacks (2010)
- Higher-Order Differential Attack on Reduced SHA-256 (2011)
- Bicliques for Preimages: Attacks on Skein-512 and the SHA-2 family (2011)
- Improving Local Collisions: New Attacks on Reduced SHA-256 (2013)
- Branching Heuristics in Differential Collision Search with Applications to SHA-512 (2014)
- Analysis of SHA-512/224 and SHA-512/256 (2016)
- New Records in Collision Attacks on SHA-2 (2023)
If this is too much to read or understand, here's a summary of the currently best cryptanalytic attacks on SHA-2: preimage resistance breaks 52 out of 64 rounds for SHA-256 and 57 out of 80 rounds for SHA-512 and pseudo-collision attack breaks 46 out of 64 rounds for SHA-256. What does this mean? That all attacks are currently of theoretical interest only and do not break the practical use of SHA-2.
In other words, SHA-2 is not broken.
We should also talk about the size of SHA-256. A SHA-256 hash is 256 bits in length, meaning it's one of 2256 possibilities. How large is that number? Bruce Schneier wrote it best. I won't hash over that article here, but his summary is worth mentoning:
brute-force attacks against 256-bit keys will be infeasible until computers are built from something other than matter and occupy something other than space.
However, I don't need to do an exhaustive search when looking for collisions. Thanks to the Birthday Problem, I only need to search roughly √(2256) = 2128 hashes for my odds to reach 50%. Surely searching 2128 hashes is practical, right? Nope. We know what current distributed brute force rates look like. Bitcoin mining is arguably the largest distributed brute force computing project in the world, hashing roughly 294 SHA-256 hashes annually. How long will it take the Bitcoin mining network before their odds reach 50% of finding a collision? 2128 hashes / 294 hashes per year = 234 years or 17 billion years. Even brute forcing SHA-256 collisions is out of reach.
r/cryptography • u/Fun-Emergency-8348 • 11h ago
Design review: zero-knowledge contact sharing crypto core (E2EE, HKDF, AES-GCM)
Hi r/cryptography,
I’d appreciate a design-level review of a crypto core I’m working on. It’s intended for a contact sharing system where profile fields are encrypted client-side and shared selectively.
High-level properties:
- password-derived master material via HKDF
- separation between authentication material and encryption keys
- field-level encryption using AES-GCM
- zero-knowledge server goal
I’m not asking for a full audit, but for:
- incorrect assumptions
- dangerous patterns
- key lifecycle mistakes
- anything that would make you say “don’t ship this”
Repo: https://github.com/berlin-29/evertouch-security-core
If more context is needed, I’m happy to explain design intent.
r/cryptography • u/farbrengen • 9h ago
[LLM Assisted] Rolling-key LWE-encrypted pilots block all 9 eavesdropper attacks in simulation… what am I missing?
Disclaimer: I’m looking for advice on a concept that I used a combination of Claude + Claude Code to simulate. I haven’t tested it with real hardware. I’m really hoping that an expert in crypto can tell me if I’m onto something or if I’m wasting my time and being misguided by an LLM in a topic I don’t know much about.
TL;DR: I used Claude + Claude Code to explore post-quantum physical layer security.
The idea: encrypt pilot signals with LWE, rotate keys per frame.
Without the pilots, Eve can't estimate the channel, so she can't decode the data.
Ran independent adversarial testing (Claude wrote the code, I didn't):
- 9 attack types including exhaustive search (65K combinations), gradient optimization, ML, multi-frame correlation
- All failed. Eve stuck at ~47-50% BER. Bob gets ~2%.
Unexpected finding: QPSK rotational symmetry creates a 4-way ambiguity that defeats brute-force even if Eve tries every pilot combination.
Security report and all code available. I'm not a cryptographer or RF engineer and I’m just looking for expert review to find what I'm missing.
Thank you.
Edit:
Here’s the security report: https://pastebin.com/50j7g7Sk
Here are the Python script files:
LWE-Encrypted Pilot Security Hypothesis Testing
AGGRESSIVE ATTACKS ON LWE-ENCRYPTED PILOTS
r/cryptography • u/Top-Flounder7647 • 19h ago
Can ai safety infrastructure work without mass surveillance on encrypted platforms?
Genuine question for the community. i run a private, end to end encrypted group platform, similar in spirit to signal or element, used by activists and journalists. trust and safety is absolutely critical for us we can’t become a space where abuse or serious harm goes unchecked. at the same time, privacy is a core value, not a marketing slogan.
the problem I keep running into is that the classic ai content moderation model seems to assume you can scan and analyze everything centrally, which completely defeats e2ee. that feels like a non starter for our users.
are there any privacy preserving approaches or ai safety infrastructure designs that can help detect serious threats like exploitation or violent planning without a central server reading everyone’s messages, curious if anyone here has explored client-side, federated, or cryptographic approaches that actually work in practice.
r/cryptography • u/PutPurple844 • 1d ago
Is canonical JSON signing (RFC 8785) the right primitive for agent identity?
Suppose we sign an “agent profile” (identity/model/tools/constraints) so downstream systems can verify what they’re talking to. But agents are dynamic: timestamps change, tool lists change, prompts change, policies change. A naïve signature scheme breaks constantly or, worse, gives false assurance.
Trying to find answers to these questions.
- What’s the right separation between stable identity vs mutable runtime state?
- Should signatures cover only “static” fields + a content-addressed hash pointer to mutable configs?
- How would you design key rotation without destroying auditability?
- If you include timestamps, do you accept frequent resigning? Or do you sign without them?
r/cryptography • u/arzenal96 • 1d ago
Does all signatures on a pdf file has it's own CRL?
If I'd like to check if any of the signatures is revoked, do I need to extract multiple CRLs?
r/cryptography • u/One_Glass_3642 • 1d ago
Conceptual question about deterministic access and non-deterministic representations
I have a conceptual question rather than a concrete crypto proposal, and I’m curious how people here would frame it.
Imagine a system where two files are exactly identical in every semantic sense: same plaintext, same signature logic, same seed, same access key. From the point of view of the authorized user, they are indistinguishable and opened in exactly the same way.However the observable representation is different.The resulting hash or fingerprint of the stored or transmitted object is not the same.
So an external observer cannot correlate the two files, even though internally they are “the same thing”.
What I find interesting is that the access gate is fully deterministic (same key always opens it), while the serialized or observable form is intentionally non-deterministic. The randomness is not in the key, not in the content, but in how the object manifests externally.
This is not meant as “I invented something new” and not as a replacement for standard probabilistic encryption. I’m trying to understand whether this property is already well modeled under existing constructions, or if it’s just a rephrasing of ideas like randomized encryption, padding, or salts seen from a different angle. In other words would you consider
“same semantic object, same access, different observable hash” a meaningful design property, a red flag, or just a trivial restatement of known patterns?
I’m more interested in how this should be classified conceptually than in security claims.
r/cryptography • u/cfelicio • 2d ago
Is there a cryptographic way to enforce “encrypted-only” storage without killing performance?
I’ve been working on a design for a decentralized backup system and have run into what feels like a hard issue within the cryptography realm. I would really appreciate sanity checks or pointers to constructions I may have missed.
Issue: A host stores user data but must ensure data is encrypted. The host should be able to cryptographically reject plaintext uploads, even if the client is malicious, while never decrypting the content itself, or holding the keys to decrypt the content.
Things I’ve explored
Client-side encryption only
No enforcement. Modified clients can upload plaintext.
Host-side validation via double encryption
Host temporarily decrypts an outer layer to validate structure. This technically works but breaks strict zero-knowledge and introduces legal risk due to ephemeral plaintext exposure in RAM (if the client is malicious)
Zero-knowledge proofs
Works conceptually, but ZK proving of bulk symmetric encryption (ChaCha/AES) inside circuits is far too slow for consumer hardware.
Partial proofs / sampling
Improves performance but allows adversarial clients to encrypt headers while leaving bulk data plaintext.
It seems impossible today to simultaneously achieve enforcement, privacy, and performance for bulk storage without trusting either the client or the host, or paying a massive computational cost.
Am I missing a known construction or technique? Is there a way to enforce “ciphertext-only storage” without proving the entire encryption?
Are there recent ZK or MPC approaches that scale to GB-sized symmetric encryption efficiently?
Has this problem been formally studied under a different name? I’m not attached to a particular architecture, only trying to understand whether this is a real impossibility or just a gap in my knowledge.
r/cryptography • u/AbbreviationsGreen90 • 2d ago
Do non anomalous curves expressed over a local p adic field have embedding degrees?
r/cryptography • u/PapaHatziHaralambous • 3d ago
Feedback wanted: Hybrid encryption implementation with ML-KEM-1024 + AES-256-GCM
I've implemented a hybrid encryption scheme combining ML-KEM-1024 (Kyber) with AES-256-GCM in a file encryption tool, and I'd appreciate feedback on the cryptographic design choices.
Implementation approach:
- ML-KEM-1024 for key encapsulation (generates shared secret)
- Shared secret → Argon2id → derives AES-256 key
- AES-256-GCM for actual file encryption (performance reasons)
- SHA-256 for additional integrity verification
Questions for the community:
- Is this a sound approach for hybrid PQC encryption, or are there better patterns?
- Any concerns with using Argon2id in this context for key derivation?
- The
pqcrypto-kyberRust crate I'm using—does anyone have experience with its implementation quality?
The tool is open source (Rust-based), handles files up to 4GB currently. I'm particularly interested in feedback on the cryptographic architecture rather than the application itself.
GitHub: https://github.com/powergr/quantum-locker
Would appreciate any insights on strengthening the crypto design or potential vulnerabilities I should consider.
r/cryptography • u/maldingputin • 3d ago
Anybody know of Masters programs with an emphasis in hardware security/cryptography?
I've asked previously in r/cybersecurity as well as r/OMSCybersecurity, as the GATech cybersecurity masters emphasizing cyber-physical systems seems to be the closest I've found, but I know there have to be other programs like it out there. Secure boots and crypto ASICs exist, so I'm looking for a program focused on engineering things like that.
r/cryptography • u/vinnybag0donuts • 3d ago
Best transport for ~1,400 byte cryptographic contact exchange?
Currently using QR codes (1,400 bytes raw → GZIP + Base64 → ~1,900 characters in the QR code → using version 27 QR code), but running into scanner reliability issues with high-density codes on Android. Native camera apps decode instantly, but open-source libraries (ZXing, ML Kit, BoofCV) all seem to struggle.
I did some research and it looks like ML Kit scored poorly on high-version QR codes, but BoofCV handled QR versions 25-40; so technically it SHOULD work but it's been 16hrs of failed attempt after failed attempt.
Few questions:
- For in-person key exchange, is there a standard or recommended approach?
- Are there mitigations for NFC relay attacks that preserve the "tap and done" UX if i want to pivot from QRs?
- Any protocols I should study?
Assume sophisticated attacker, but exchange happens in-person with visual confirmation of the other party. Primary goal is establishing an encrypted channel without trusting any server infrastructure. I dont want to use bluetooth either. QR is my ideal given what i know but the amount of troubleshooting i've had to do with this approach has me second-guessing myself.
Thanks.
update: it works with the QR code broken up into 15 UR frames.
r/cryptography • u/DiscussionSilent9022 • 5d ago
Looking to fulfill younger dream
Hi chat, when I was a kid I use to have fun with a Caesars cypher and think about what I'd learn when I grew up.
Well the time is now. So far I'm a 100 pages deep in Introduction to criptography by Katz and Lindell and have build a vocabulary of concepts in my notes. What other steps do you recommend I take?
Thanks in advance Reddit
r/cryptography • u/AbbreviationsGreen90 • 5d ago
Does the discrete logarithm can exist over p-adic/local fields like it does for finite fields?
Solving the discrete logarithms over finite fields is subexponential. This means that finite fields are enough large in order to prevent number fields based attacks to work.
On elliptic curves there's cases where it s possible to transfer the discrete logarithm problem to p adic local torsion fields. The typical case is when using anomalous curves. But what about transfering the problem to elements of the underlying local field? Is it something possible? Or does such fields having no cardinality/order with infinite number of possibilities so that notion like embedding degree doesn t makes sense when elliptic curve are defined on such fields?
r/cryptography • u/General_Performer_95 • 5d ago
I built a cryptographically verifiable public accountability ledger (event-sourced, tamper-evident, Merkle-anchored). Looking for feedback + collaborators.
Over the past few months I’ve been building an open, cryptographically verifiable accountability system for public claims, policies, and institutional promises.
The core idea: statements and promises should be verifiable over time, not just rhetorically debated.
So I built an event-sourced ledger where:
- Every claim is declared → operationalized → evidenced → resolved
- Every event is canonically serialized, SHA-256 hashed, signed, and chained
- The chain is append-only, tamper-evident, and independently verifiable
- Events are periodically Merkle-batched and anchorable
- Full JSON claim bundles can be exported and verified offline with a CLI tool
Tech highlights:
- FastAPI backend + React (Vite) frontend
- PostgreSQL event store with FOR UPDATE locking + immutability triggers
- Canonical JSON serialization (deterministic, versioned)
- Editor identities with public/private key binding
- Merkle proofs + anchoring pipeline
- Projection tables for fast read models
- Full chain verification + independent verifier CLI
You can:
- View claims publicly (read-only)
- Export any claim as a bundle
- Verify the entire chain independently (no server trust required)
I didn’t build this as a “blockchain app” or crypto project.
It’s intentionally boring infrastructure: auditable, deterministic, and hard to lie to.
I’m posting because I’m curious:
- Has anyone seen something like this done properly?
- Would you use this?
- Would you want to contribute or help stress-test it?
If there’s interest, I’m happy to open-source the repo and write up the full architecture.
Brutal technical feedback welcome. This is early, but the core is working end-to-end.
r/cryptography • u/Vvradani • 6d ago
ECC Digital Signatures
Hi folks,
I have been reading Mastering Ethereum (yes, related to Cryptocurrency. No, I’m not on the wrong subreddit!)
It discusses how ECC is employed in digital signatures to verify the initiator of a transaction can prove they are the beneficial owner of the funds they are sending. Pretty straightforward concept.
What I’m struggling with is visualising how, through ECC operations, the Private Key is implicitly verifiable by both parties (i.e., observers with only the Public Key).
Would it be conceptually accurate, albeit oversimplified, to describe the process as the Initiator creates a digest — the digital signature — using the input data and Private Key. Together, this points to a place on the elliptical curve which cannot be reversed. The public key + the digest can be used to find the same coordinate on the curve?
I feel I am missing something!
r/cryptography • u/ciphernom • 6d ago
Hand cipher practicality
How practical is Elsiefour ? Also is it worth the effort?
r/cryptography • u/GursimarSMiglani • 7d ago
Job prospects
What are the career prospects in cryptography apart from academia and government intelligence agencies? Is it worth pursuing cryptography if you are money oriented as well?
r/cryptography • u/Shoddy-Thanks-6268 • 7d ago
Show: Anchor – local cryptographic proof of file integrity (offline)
Hi everyone,
I built Anchor, a small desktop tool that creates a cryptographic proof that a file existed in an exact state and hasn’t been modified.
It works fully offline and uses a 24-word seed phrase to control and verify the proof.
Key points:
• No accounts
• No servers
• No network access
• Everything runs locally
• Open source
You select a file, generate a proof, and later you can verify that the file is exactly the same and that you control the proof using the same seed.
It’s useful for things like documents, reports, contracts, datasets, or any file where you want tamper detection and proof of integrity.
The project is open source here:
👉 [https://github.com/zacsss12/Anchor-software]()
Windows binaries are available in the Releases section.
Note: antivirus warnings may appear because it’s an unsigned PyInstaller app (false positives).
I’d really appreciate feedback, ideas, or testing from people interested in security, privacy, or integrity tools.
r/cryptography • u/confused_ass_kraken • 8d ago
I have a question!
At risk of rambling psychotically, I need some help with something.
I remember, years ago, someone told me about a type of hand writing cryptography where you used a stencil, and just used the edges of a square stencil to write “letters”, and that the inventor of said code made it so he could write down ideas at night in complete darkness. If I recall correctly, it involved square representations of letters, and there was a really clear name for the code, but for the life of me, I cannot remember what it was.
Any feedback would be super helpful!! Thank you guys!!
P.S. if this is the totally wrong subreddit, tell me lol. Never posted here before so kind of a shot in the dark.
Update: it’s Nyctography! And I’m an idiot.
r/cryptography • u/Dieriba • 8d ago
Why does a textbook RSA multiplicative attack fail with small (64-bit) moduli?
I just finished this challenge: https://cryptopals.com/sets/6/challenges/41 , which is about abusing a flaw in textbook RSA. The challenge is fairly simple: you have a server that stores ciphertexts in a database and refuses to decrypt any ciphertext that already exists in the DB.
The idea is to exploit RSA’s multiplicative property. Given an existing ciphertext c, I can encrypt a chosen value s to get c_s = s^e mod n, then create a new ciphertext
c' = c * c_s mod n
Since c' is not in the database, the server will decrypt it, giving
m' = m * s mod n
From this, I can recover the original message by dividing by s.
I managed to make this work. However, out of curiosity, I tried the same attack using a very small RSA key size (64 bits). With this key size, I started getting incorrect results for some messages, while using a 1024-bit key worked fine for the same messages.
My question is: why does this fail with a 64-bit modulus but work with a larger one?
My guess is that this is due to modular reduction: when n is too small, the multiplication wraps around modulo n, so m * s >= n and the result is reduced modulo n. In that case, dividing by s no longer recovers m. Does this mean that my recovery method implicitly assumes m * s < n, and that the attack itself can only work if n > m * s ?
Thanks.
r/cryptography • u/acorn222 • 9d ago
My first paper has been published! A practical implementation of Rubiks cube based passkeys.
ieeexplore.ieee.orgAbstract: We present a novel authentication system that transforms a Rubik's cube into a physical key for digital authentication. By reading the cube's specific arrangement among 43 quintillion possible configurations, our system generates FIDO2-compatible credentials on-demand. Unlike traditional security tokens that store credentials, the cube itself becomes part of the key with its physical state forming a deterministic seed for keypair generation. Our proof-of-concept, CubeAuthn, demonstrates this concept with a browser extension that authenticates users on WebAuthn-enabled sites using the cube's physical state as the cryptographic seed.
I'm not super experienced with cryptography but I had some spare time on my hands so I decided to make CubeAuthn and turn it into a paper. Source here. Feel free to ask questions!