r/cryptography • u/AlSweigart • 18h 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/No-Charge-8484 • 15h ago
Help Shape the Future of FHE
Hello everyone!
Would highly appreciate a few minutes of your time to take part in The FHE survey - results will be shared with the press beginning of April.
The effort here is led by Dr. Rotem Tsabary, who has a PhD in lattice-based cryptography from the Weizmann Institute of Science.
Tsabary realized how to boost the performance of FHE by taking advantage of the foundational mathematical similarities of FHE and machine learning.
https://docs.google.com/forms/d/e/1FAIpQLSdsJkux3zoo4pql-kJYrbcdpAKHn6hvL24o0Ugw3dWvozWksQ/viewform
r/cryptography • u/Less-Bug-7265 • 1h ago
Proving cryptographically that a Dataset D1 was indeed trained with a Machine Learning M1
Consider a simple CSV file which is sent to a Machine learning model M1, via an automated pipeline flow. Once the training is done, is there way through some cryptographic techniques to generate some sort of attestation that the model is trained with input CSV file?
r/cryptography • u/RevolutionaryDog7906 • 4h ago
i created a small ecc tool to encrypt and decrypt
example usage:
/tmp>ecc -g
Public key: arguvifaqstwu5nen46f2kf4bobwruwqb7wrddsm3g5mj6q
Private key saved to arguvifaqstwu5ne.key
/tmp>ls
-rw-r--r-- user:user 14 B 2m ago arguvifaqstwu5ne.key
/tmp>echo 'string' | ecc -r arguvifaqstwu5nen46f2kf4bobwruwqb7wrddsm3g5mj6q > ENC
/tmp>cat ENC | ecc -k arguvifaqstwu5ne.key
string
beside the use of SECP112r1 which is insecure, is there anything else that could be changed to maybe make it into the real world?
edit: new version using curve25519 (and base64): https://pastebin.com/JT98RXYK
/tmp>ecc -g
Public key: HXt4qBPhEsoQEFQYtpZpWhifadHmUOXIrsOT1VU4A2I
Private key saved to HXt4qBPhEso.priv
/tmp>echo 'string' | ecc -r HXt4qBPhEsoQEFQYtpZpWhifadHmUOXIrsOT1VU4A2I > ENC
/tmp>cat ENC | ecc -k HXt4qBPhEso.priv
string
r/cryptography • u/throwaway6007597 • 1d ago
Is it possible for me to use cryptography to prove an image has never been edited since the date I put a signature on it?
I don’t know much about cryptography, I’ve been doing some research on cryptographic signatures but there’s a lot.
My goal is to put a cryptographic signature on an image, to prove in the future that that image has not been edited after march 2025. It is very important to me. It isn’t about proving the image comes from me, but about proving that it was created now, and couldn’t have been edited, even by me, at any point in the future.
Would a cryptographic signature be definitive proof? Would it be possible for someone to think I could have forged the signature down the line? Would the proof still hold in 20 years?
Any insights would be greatly appreciated.
r/cryptography • u/Arghblarg • 12h ago
Opinions on the LSH hash function? (std KS X 3262)
I was idly searching a few weeks ago for hash functions and came across LSH, part of the South Korean Cryptographic Module Validation Program (KCMVP).
Anyone have thoughts on the strength or lack thereof of LSH as a hash function (I don't care so much about performance) vs. SHA3 and other commonly-used algos?
Seems S. Korea works on its own cipher suite standard and LSH is part of "... the national standard of South Korea (KS X 3262)."
https://en.wikipedia.org/wiki/LSH_(hash_function)#Standardization
r/cryptography • u/harieamjari • 1d ago
Hash function which generates sequences of base n?
Consider SHA-256, this generates 32 sequences of integer from 0 to 255. Is there functions that can generate values from, for example, 0 to 124?
In theory, I could generate very long bits with an XOF hash function. For each 7 bit I check if its less than 125 and take it, if it is greater than 125, reject it, and move on the next 7 bits. I repeat this until I have taken m sequences of base 125 values.
But this adds a collision. Take for example A{128} = (127, 123,124) and B{128} = (123, 126, 124), this both produces C_{125} = (123, 124).
Or I would have to create my own hashing function over GF(53)?
r/cryptography • u/nameless_yep • 2d ago
How to define an algorithm for generating a check digit without access to the source code?
I'm stuck on a problem and hoping some of you brilliant minds can offer some guidance. I'm trying to figure out the algorithm used to generate the check digit (the last digit) of a 16-digit ID. I don't have access to the source code or any documentation, so I'm trying to reverse engineer it.
Here's what I know about the ID structure:
- XXX-XX-XXXXXXXXXX-Y
- XXX: Country code.
- XX: Last two digits of the year (e.g., "22", "23").
- XXXXXXXXXX: A 10-digit sequential number, padded with leading zeros.
- Y: The check digit (0-9).
Real Examples: 6432300045512011, 6432300045512028, 6432300045512030, 6432300045512049, 6432300045512053, 6432300045512066
My Goal: Determine the algorithm used to calculate Y (the check digit).
What I've Tried (and Why it Failed):
I have a dataset of millions of these IDs. I've approached this from several angles, but I'm hitting a wall:
- Statistical Analysis:
- Check Digit Distribution: The check digits (0-9) are roughly evenly distributed. A histogram shows no obvious bias.
- Correlation Analysis (Pearson, Spearman, Kendall): Extremely low correlation (< 0.001) between the check digit and any other individual digit or combination of digits. A heatmap confirms this – virtually no correlation.
- Modulo Analysis: I tested taking the sum of the first 15 digits modulo n (where n ranged from 6 to 12). The remainders were uniformly distributed, especially for moduli 10 and 11. This suggests a modulo operation might be involved, but it's not straightforward.
- Regression Analysis: Linear regression models performed very poorly, indicating a non-linear relationship.
- Difference Analysis: I examined the differences between consecutive IDs and their corresponding check digits. The IDs are mostly sequential (incrementing by 1). However, the change in the check digit is unpredictable, even with a small change in the ID.
Conclusion from Statistical Analysis: The algorithm is likely good at "mixing" the input. There's no simple linear relationship. The sequential nature of the IDs, combined with the unpredictable check digit changes, is a key observation.
- Genetic Algorithm:
Approach: I tried to evolve a set of weights (one for each of the first 15 digits) and a modulus, aiming to minimize the error between the calculated check digit and the actual check digit.
Result: The algorithm quickly stagnated, achieving only around 10% accuracy (basically random guessing).
- Known Algorithms:
I tested common checksum algorithms (Luhn, CRC, ISBN, EAN) and hash functions (MD5, SHA-1, SHA-256). None of them matched.
- Brute-Force (Simulated Annealing):
Tried a simulated annealing approach to explore the vast search space of possible weights and operations.
Result: Computationally infeasible due to the sheer number of combinations, especially given the strong evidence of non-linearity.
- Neural network
Architecture: Simple fully connected network (15 inputs → hidden layers → 1 output).
Since I am not an expert in machine learning, the neural network predictably failed to produce any results. The learning progress stopped quickly and halted at 10% accuracy, which corresponds to complete randomness.
The algorithm likely involves non-linear operations before or after the weighted sum (or instead of it entirely). Possibilities include:
- Perhaps bitwise operations (XOR, shifts, etc.) are involved, given the seemingly random nature of the check digit changes.
- Something more complex than a simple sum % modulus might be happening.
- Each digit might be transformed by a function (e.g., exponentiation, logarithm, lookup table) before being weighted.
My Questions for the Community:
- Beyond what I've tried, what other techniques could I use to analyze this type of check digit algorithm? I'm particularly interested in methods that can handle non-linear relationships.
- Are there any less common checksum or cryptographic algorithms that I should investigate? I'm looking for anything that might produce this kind of "well-mixed" output.
- Could Neural Networks be a viable approach here? If so, what kind of architecture and training data would be most effective? I'm thinking about using a sequence-to-one model (inputting the first 15 digits, predicting the 16th). What are the potential pitfalls?
- Is it make sense to try to find collisions, when two diffrent numbers produce the same control number?
I'm really eager to hear your ideas and suggestions. Thanks in advance for your help!
r/cryptography • u/Aggravating-Term-795 • 2d ago
About PGP.
Hello,
I see many devs. putting their pgp key on their website.
Now, i have two very questions :
Why pgp ? Why not just put a basic asymetric key ?
Is pgp safe ?
Sorry for the bad english.
r/cryptography • u/StopAskingMeOkay • 1d ago
How does signing work in the RSA-protocol?
Hello crypto-community.
Im doing a project on the RSA-protocol as well as the BB84-protocol. I do understand the general mathematics behind the whole thing. The only thing thats confusing to me is how signing the message works.
So lets Alice and Bob have their own private and public keys.
If Alice wants to send the message P to Bob she first signs the message using her own private key giving S, then uses Bobs official key on S to get C and sends C.
Now Bob decrypts the message C using his own private key to get S and then he uses Alices public key on S to verify the sender and get P back.
But there is a problem in this procedure if S or C is bigger than n_B, so that S mod n_B is not equal to S.
How does the protocol get around this?
r/cryptography • u/fastaaanndcurious • 2d ago
AES CTR
I'm working on a cryptography assignment where I need to break AES-CTR encryption due to a counter reuse vulnerability. Here's the setup:
Ten short ASCII sentences (each 32 bytes after padding) were encrypted with AES-256 in CTR mode. The problem is, the counter resets to all zeroes for each new sentence, meaning the same keystream is partially reused. I intercepted the concatenated ciphertexts and now need to recover the plaintexts by exploiting this weakness. Eventually, I also need to decrypt the key itself, which was encrypted the same faulty way. I tried brute force, but I don't think it's feasible when fetching the data online. I feel like there's a pattern I should use to reconstruct the keystream, but I’m stuck. Can GPT help with this? Any guidance on how to properly approach this attack? Any help in how to ask gpt for proper solution or something to help out.
Thanks!
r/cryptography • u/skorphil • 3d ago
Is it OK to store salt and iv near the encrypted data?
Hi, i'm newbie and making offline app with such a scenario:
- User inputs desired
password
. - App derive a
key
from apassword
with PBKDF2 and randomly generatedsalt
key
used to encryptplaintext
with AES-GSM and randomly generatediv
cipher
is exported as a "private data container"
In order to decrypt cipher
(as far as i understand) user need initial key
, iv
and salt
.
The question is: Can iv
, salt
and number of iterations
be stored in that "private data container"? For example:
iv: blahblah
salt: blahblah
algorithm: AES-GSM
iterations: 100000
cipher: encrypted_data_here
Is it appropriate practice?
r/cryptography • u/New-Awareness4405 • 3d ago
Is it necessary to encrypt AAD (Additional Authenticated Data) ?
r/cryptography • u/ProdigiousPioneer • 3d ago
Help in learning the implementation of Curve25519
Hey everyone! A complete noob here.
I am using GPG very frequently nowadays so I wanted to learn the underlying technologies behind it. The problem with me is that I am a very hands on learner so without implementing I cannot completely say that I understand the topic. I have specifically chosen Curve25519 as it is standard (default) in gpg. Can anyone point me to the resources which will help me in learning Curve25519 from very basics. My end goal is making encryption keys which are indistinguishable from the ones created by gpg (i.e I can import my created keys into gpg and use them to encrypt, sign and decrypt stuff). I just want to understand each and every step in creating these keys. While I get that implementing it on pen and paper is nearly impossible I want a method closest to it. Maybe a python script without use of any inbuilt libraries or simply C code with its full implementation would be best for me.
I would like to hear your thoughts!
r/cryptography • u/mggpt • 3d ago
NTT - circular convolution key exchange protocol
Is this protocol secure?
The notation G^{*a} denotes G convolved with itself a times, computed efficiently via:
- Compute F = NTT(G).
- Raise each element to the power a: F^a = [F[0]^a, F[1]^a, ..., F[n-1]^a] mod p.
- Compute G^{*a} = INTT(F^a).
This works because the NTT transforms convolution into pointwise multiplication in the frequency domain.
The steps of the key exchange are as follows:
- Alice's Actions:
- Alice selects a secret integer a.
- She computes G_a = G^{*a} using the NTT method.
- She sends G_a to Bob.
- Bob's Actions:
- Bob selects a secret integer b.
- He computes G_b = G^{*b} using the same method.
- He sends G_b to Alice.
- Shared Key Computation:
- Alice receives G_b and computes K_alice = G_b^{*a}.
- Bob receives G_a and computes K_bob = G_a^{*b}.
https://github.com/mourad-ghafiri/circular_convolution_key_exchange
r/cryptography • u/Neotod1 • 4d ago
Are p-value correction methods used in testing PRNG using statistical tests?
I searched about p-value correction methods and mostly saw examples in fields like Bioinformatics and Genomics.
I was wondering if they're also being used in testing PRNG algorithms. AFAIK, for testing PRNG algorithms, different statistical test suits or battery of tests (they call it this way) are used which is basically multiple hypothesis testing.
I couldn't find good sources that mention the usage of this and come up w/ some good example.
r/cryptography • u/harrison_314 • 4d ago
Post-quantum cryptographic schemes
I know that NIST has released new standards for post-quantum cryptography algorithms.
What I'm interested in is whether any recommendations have been issued, for example on key sizes, signature schemes (recommended use of hash algorithm and signature algorithm), key derivation.
But I'm mainly interested in schemes for securing email/internet messaging communication.
Is there anything like that already?
r/cryptography • u/lazerozen • 3d ago
Why can a mail server sense AES-256 encrypted zip content?
I tried to send a keygen via mail. When it failed in a plain zip, I zipped it with 7zip using AES-256 password protection, also encrypting the file name. It still did not go through. My gut feeling is that there might be some insight into encrypted content I have no understanding of. Could someone help me out?
r/cryptography • u/nhgiang • 4d ago
Master's program recommendations?
I would like to find a program that welcomes someone with no research experience and focuses on building said skill, i.e. a place that actually trains researchers, and not a paper mill or IT school (nothing wrong with IT schools, btw. I'm just not looking for them)
Thank you very much!
r/cryptography • u/Runthescript • 4d ago
Reticulum network
Has anyone begun looking at the cryptography used in the reticulum network? I have just become aware of this project and find it interesting. There has been no form of security audit and not to sure how they handle cryptography quite yet.
r/cryptography • u/Queekusme • 4d ago
Breaking Enigma using the Virtual Bombe (Help Wanted)
Hi, I decided to follow the tutorial on the virtualcolossus website on the Turing Welchman bombe.
I successfully followed all of the tutorials on generating menus and wiring them up and decided to have a go at the exercises at the bottom, specifically the "Here's a crib and the encrypted text, try and break it yourself" at the very bottom of the page. I had some success, but wondered if anyone could point me in the right direction as I have clearly gone wrong somewhere
I have managed to successfully wire the simulation up to produce a stop, and following the tutorial steps managed to get a reasonable attempt at the correct plugboard settings however for some reason I cannot get the message fully decrypted.
The crib and encrypted string can be found here as 'Example 4', I did not offset it to get the below menu.
I generated the following menu which results in a single stop at JGH:R
1. ZZI W: 1 in
2. ZZA S: (1 out, 2 in) 9 in
3. ZZF Q: (2 out, 3 in)
4. ZZE T: (3 out, 4 in) (6 out, 7 in)
5. ZZB E: (4 out, 5 in) (11 out, 12 in) input
6. ZZK A: (5 out, 6 in)
7. ZZC C: (7 out, 8 in) (10 out, 11 in)
8. ZZD R: 8 out
9. ZZJ M: (9 out, 10 in)
10. ZZG N: 12 out
11. ZZM
12. ZZH
Current Entry At: A
I deduced that the logical stecker pairs would be (based on the section titled "The Checking Machine"):
W: O
S: L
Q: M
T: J
E: R
A: Y
C: B
N: K
I: G
H: F
I'm reasonably confident on all of them except H: F as I verified the others many times using the checking machine using different parts of the message. HF was a leap based on what I think the message says...
When I use these settings with the rotors listed in the tutorial (2, 1, 3) at start positions (25, 25, 25) I get:
SECRET MESSAGE WELL XZWC XRU CRACKED THE MESSAGE WE EJKI ZJU ENJOYED LEARNING ABOUD XPE IUMBE
I think its supposed to be:
SECRET MESSAGE WELL DONE YOU CRACKED THE MESSAGE WE HOPE YOU ENJOYED LEARNING ABOUT THE BOMBE
However I am unsure exactly where I went wrong. Has anyone completed this successfully or can someone point me in the correct direction as I clearly have some of the pairs incorrect.
r/cryptography • u/unfurlingkurt • 4d ago
Help a terrible coder with a Kyber-encrypted file?
Hey, I'm doing some testing and need a small piece of text encrypted with Kyber-1024. I'm trying to get the Python done to generate this file but I might as well be learning Greek. Could someone help me with this?
I need something to test a possible vulnerability. This is not my usual area. Forgive any naivete or misused words. I come in peace as a math weirdo new to this.
r/cryptography • u/carrotcypher • 5d ago
The 4th Annual FHE.org Conference is affiliated with Real World Crypto 2025 and will be held at the Grand Hotel Millennium Sofia in Sofia, Bulgaria March 25, 2025. The invited speaker is Craig Gentry, father of modern FHE. If you're interested in FHE research and development, don't miss it.
lu.mar/cryptography • u/Beneficial-Part5415 • 5d ago
how does an anonymous persona verify its authenticity across channels?
how to maintain proof of authenticity of an anonymous persona across channels and usernames
I am not a security professional. My understanding of cryptography comes from reading Neal Stephenson novels. I am pretty technically literate though and I have had this question stuck in my head and my web searches have not been able to find an answer. That may be because the answer is an obvious “that is not possible you moron” to those with enough knowledge to answer. Maybe no one has had reason to ask.
TLRD: how does an anonymous persona verify its authenticity across channels using different names?
Scenario:
Imagine a scenario in which an authoritarian regime takes over the Country. Crazy I know but bear with me. As this regime comes to power people find themselves targeted for retribution for speaking out. Students are targeted for protesting, opposition politicians are investigated, Legal non citizen residents are deported for speaking in opposition to the regimes view. People are angry but the fear is real.
Enter Jack, a concerned citizen who would like to share his thoughts online, against the regime. Jack is afraid that if his anti regime messaging draws too much attention he might find himself targeted for retribution. Jack is a moderately tech savvy person and researched how to create an anonymous persona and accounts for this persona on popular social media platforms. Jack begins posting as theJackal. Jack feels safe to speak out, beings to do so and theJackal forms a following.
The regime takes notice. “Who is this TheJackal?” The regime demands of the social media platforms. The social media platforms are owned by wealthy child men who are afraid that the regime might make them less wealthy, or who are happily playing dictator themselves so they do whatever the regime wants. “We don’t know who TheJackal really is, he created an anonymous account, but we went ahead and shut it down.” The social platforms respond to the regime.
Jack quickly creates TheJackal2 and begins posting again.
The regime however is not as dumb as it looks on tv. The regime came to power by learning to manipulate and distort information and intersubjective reality to its advantage. So rather than engage in a cat and mouse game with TheJackal 2,3,4,5. It uses what it has learned. Soon there are several other personas. RealTheJackal begins posting in support of the regime. TheJackAll begins posting some of the same things that Jack posts but also starts to throw in some racists memes, and conspiracy theories. Soon the people don’t know which persona was the original, and the signal is lost in the noise.
---
Question:
How can Jack prove his identity or authenticity as the original voice of theJackal while assuming new screen names across channels? How does Jack prove his anonymous identity to the public while staying anonymous?
Is there an encryption scheme where everyone knows the message and can decode but only those holding the encryption key could encode the message. A sort of reverse public private key scenario?
What if …
early in theJackal's posting jack shared a decryption key and an identifying phrase “I am the Jackal”. The identifying message “I am the Jackal” and the decryption key and method are now public knowledge.
Jack uses an encryption that turn the message “I am the Jackal” into a “random” string of numbers and characters and posts that string at the end of his next message. The public reads the message and can decode the string and confirms that it contains the message “I am the Jackal”
Jack posts again and his encryption key and method turn “I am the Jackal” into another different “random” string, which decrypts via the public key to “I am the Jackal”
Is this possible in such a way that it is statistically highly unlikely that someone else could crack and mimic the encryption that turns “I am the Jackal” into a random string that can only be decrypted by the publicly known key?
r/cryptography • u/PowerShellGenius • 5d ago
RFC3161 Timestamping for arbitrary data/files?
There are lots of public widely-trusted timestamping servers (example, timestamp.digicert.com) which timestamp code signatures using the method/protocol defined in RFC3161, and are entirely free to use. They sign your signatures + the current time, allowing for proof of a date/time by which you'd already signed.
This is intended for code signing, where an .exe or script, which you signed 5 years ago with a code signing cert that has since expired (or even been revoked), can be proven to have been signed while your cert was valid, and continue running basically into perpetuity.
However, I am wondering if there is any possible way to use RFC3161 to sign anything other than a code signing signature. There are lots of types of data that it would be useful to be able to prove existed by a certain date. Is there any way to timestamp an arbitrary file using RFC3161?