René's URL Explorer Experiment


Title: GitHub - ilchen/cryptopals: Solutions to https://cryptopals.com problems

Open Graph Title: GitHub - ilchen/cryptopals: Solutions to https://cryptopals.com problems

X Title: GitHub - ilchen/cryptopals: Solutions to https://cryptopals.com problems

Description: Solutions to https://cryptopals.com problems. Contribute to ilchen/cryptopals development by creating an account on GitHub.

Open Graph Description: Solutions to https://cryptopals.com problems. Contribute to ilchen/cryptopals development by creating an account on GitHub.

X Description: Solutions to https://cryptopals.com problems. Contribute to ilchen/cryptopals development by creating an account on GitHub.

Opengraph URL: https://github.com/ilchen/cryptopals

X: @github

direct link

Domain: patch-diff.githubusercontent.com

route-pattern/:user_id/:repository
route-controllerfiles
route-actiondisambiguate
fetch-noncev2:19e89ed9-284b-7664-a140-7cc1407aa3f3
current-catalog-service-hashf3abb0cc802f3d7b95fc8762b94bdcb13bf39634c40c357301c4aa1d67a256fb
request-idD25C:90402:D5410B:114E0BC:698E9249
html-safe-nonce52480ca58ba770189eb6af3ba8a238d8b2ccb7c4eb2205f15ec1c6c9f6bff2ae
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEMjVDOjkwNDAyOkQ1NDEwQjoxMTRFMEJDOjY5OEU5MjQ5IiwidmlzaXRvcl9pZCI6Ijc3MTAyMDg5MDIyMzEzOTY5MzciLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmac3eb87443bb17f6761e2413f06ea41006127182acb94875a8e5bfcf28b656a1d6
hovercard-subject-tagrepository:164209050
github-keyboard-shortcutsrepository,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location//
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/ilchen/cryptopals
twitter:imagehttps://opengraph.githubassets.com/46417032c2ae1e1952492f8fb21d84fed426fe910bfcfc028faa97785944d05b/ilchen/cryptopals
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/46417032c2ae1e1952492f8fb21d84fed426fe910bfcfc028faa97785944d05b/ilchen/cryptopals
og:image:altSolutions to https://cryptopals.com problems. Contribute to ilchen/cryptopals development by creating an account on GitHub.
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
Nonecb2828a801ee6b7be618f3ac76fbf55def35bbc30f053a9c41bf90210b8b72ba
turbo-cache-controlno-preview
go-importgithub.com/ilchen/cryptopals git https://github.com/ilchen/cryptopals.git
octolytics-dimension-user_id1035660
octolytics-dimension-user_loginilchen
octolytics-dimension-repository_id164209050
octolytics-dimension-repository_nwoilchen/cryptopals
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id164209050
octolytics-dimension-repository_network_root_nwoilchen/cryptopals
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
releasee6b91a7e6e46287d26887e3fb7a4161657bab8f7
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://patch-diff.githubusercontent.com/ilchen/cryptopals#start-of-content
https://patch-diff.githubusercontent.com/
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2Filchen%2Fcryptopals
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://patch-diff.githubusercontent.com/login?return_to=https%3A%2F%2Fgithub.com%2Filchen%2Fcryptopals
Sign up https://patch-diff.githubusercontent.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E&source=header-repo&source_repo=ilchen%2Fcryptopals
Reloadhttps://patch-diff.githubusercontent.com/ilchen/cryptopals
Reloadhttps://patch-diff.githubusercontent.com/ilchen/cryptopals
Reloadhttps://patch-diff.githubusercontent.com/ilchen/cryptopals
ilchen https://patch-diff.githubusercontent.com/ilchen
cryptopalshttps://patch-diff.githubusercontent.com/ilchen/cryptopals
Notifications https://patch-diff.githubusercontent.com/login?return_to=%2Filchen%2Fcryptopals
Fork 3 https://patch-diff.githubusercontent.com/login?return_to=%2Filchen%2Fcryptopals
Star 28 https://patch-diff.githubusercontent.com/login?return_to=%2Filchen%2Fcryptopals
https://cryptopals.comhttps://cryptopals.com
LGPL-3.0 license https://patch-diff.githubusercontent.com/ilchen/cryptopals/blob/master/LICENSE
28 stars https://patch-diff.githubusercontent.com/ilchen/cryptopals/stargazers
3 forks https://patch-diff.githubusercontent.com/ilchen/cryptopals/forks
Branches https://patch-diff.githubusercontent.com/ilchen/cryptopals/branches
Tags https://patch-diff.githubusercontent.com/ilchen/cryptopals/tags
Activity https://patch-diff.githubusercontent.com/ilchen/cryptopals/activity
Star https://patch-diff.githubusercontent.com/login?return_to=%2Filchen%2Fcryptopals
Notifications https://patch-diff.githubusercontent.com/login?return_to=%2Filchen%2Fcryptopals
Code https://patch-diff.githubusercontent.com/ilchen/cryptopals
Issues 0 https://patch-diff.githubusercontent.com/ilchen/cryptopals/issues
Pull requests 0 https://patch-diff.githubusercontent.com/ilchen/cryptopals/pulls
Actions https://patch-diff.githubusercontent.com/ilchen/cryptopals/actions
Projects 0 https://patch-diff.githubusercontent.com/ilchen/cryptopals/projects
Security 0 https://patch-diff.githubusercontent.com/ilchen/cryptopals/security
Insights https://patch-diff.githubusercontent.com/ilchen/cryptopals/pulse
Code https://patch-diff.githubusercontent.com/ilchen/cryptopals
Issues https://patch-diff.githubusercontent.com/ilchen/cryptopals/issues
Pull requests https://patch-diff.githubusercontent.com/ilchen/cryptopals/pulls
Actions https://patch-diff.githubusercontent.com/ilchen/cryptopals/actions
Projects https://patch-diff.githubusercontent.com/ilchen/cryptopals/projects
Security https://patch-diff.githubusercontent.com/ilchen/cryptopals/security
Insights https://patch-diff.githubusercontent.com/ilchen/cryptopals/pulse
Brancheshttps://patch-diff.githubusercontent.com/ilchen/cryptopals/branches
Tagshttps://patch-diff.githubusercontent.com/ilchen/cryptopals/tags
https://patch-diff.githubusercontent.com/ilchen/cryptopals/branches
https://patch-diff.githubusercontent.com/ilchen/cryptopals/tags
193 Commitshttps://patch-diff.githubusercontent.com/ilchen/cryptopals/commits/master/
https://patch-diff.githubusercontent.com/ilchen/cryptopals/commits/master/
srchttps://patch-diff.githubusercontent.com/ilchen/cryptopals/tree/master/src
srchttps://patch-diff.githubusercontent.com/ilchen/cryptopals/tree/master/src
.gitignorehttps://patch-diff.githubusercontent.com/ilchen/cryptopals/blob/master/.gitignore
.gitignorehttps://patch-diff.githubusercontent.com/ilchen/cryptopals/blob/master/.gitignore
LICENSEhttps://patch-diff.githubusercontent.com/ilchen/cryptopals/blob/master/LICENSE
LICENSEhttps://patch-diff.githubusercontent.com/ilchen/cryptopals/blob/master/LICENSE
README.mdhttps://patch-diff.githubusercontent.com/ilchen/cryptopals/blob/master/README.md
README.mdhttps://patch-diff.githubusercontent.com/ilchen/cryptopals/blob/master/README.md
pom.xmlhttps://patch-diff.githubusercontent.com/ilchen/cryptopals/blob/master/pom.xml
pom.xmlhttps://patch-diff.githubusercontent.com/ilchen/cryptopals/blob/master/pom.xml
READMEhttps://patch-diff.githubusercontent.com/ilchen/cryptopals
LGPL-3.0 licensehttps://patch-diff.githubusercontent.com/ilchen/cryptopals
https://patch-diff.githubusercontent.com/ilchen/cryptopals#cryptopals
Sets 1-7https://cryptopals.com
Set 8https://toadstyle.org/cryptopals/
Lombokhttps://projectlombok.org
Spring Boot 3.xhttps://spring.io/projects/spring-boot
The GNU Multiple Precision Arithmentic Library (GMP)https://gmplib.org
the JNA-GMP wrapperhttps://github.com/square/jna-gmp/tree/master/jnagmp
BigInteger::modPowhttps://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/math/BigInteger.html#modPow(java.math.BigInteger,java.math.BigInteger)
Challenge 48https://github.com/ilchen/cryptopals#challenge-48-bleichenbachers-pkcs-15-padding-oracle-complete-case
GraalJS enginehttps://www.graalvm.org/javascript/
Challange 50https://cryptopals.com/sets/7/challenges/50
https://patch-diff.githubusercontent.com/ilchen/cryptopals#how-to-run
src/test/java/com/cryptopals/SetXTestshttps://github.com/ilchen/cryptopals/tree/master/src/test/java/com/cryptopals
31https://cryptopals.com/sets/4/challenges/31
32https://cryptopals.com/sets/4/challenges/32
34https://cryptopals.com/sets/5/challenges/34
35https://cryptopals.com/sets/5/challenges/35
36https://cryptopals.com/sets/5/challenges/36
37https://cryptopals.com/sets/5/challenges/37
49https://cryptopals.com/sets/7/challenges/49
57https://toadstyle.org/cryptopals/57.txt
58https://toadstyle.org/cryptopals/58.txt
59https://toadstyle.org/cryptopals/59.txt
60https://toadstyle.org/cryptopals/60.txt
66https://toadstyle.org/cryptopals/66.txt
https://patch-diff.githubusercontent.com/ilchen/cryptopals#table-of-contents
Set 6: RSA and DSAhttps://github.com/ilchen/cryptopals#set-6-rsa-and-dsa
Challenge 48. Bleichenbacher's PKCS 1.5 Padding Oracle (Complete Case)https://github.com/ilchen/cryptopals#challenge-48-bleichenbachers-pkcs-15-padding-oracle-complete-case
Set 7: Hasheshttps://github.com/ilchen/cryptopals#set-7-hashes
Challenge 52. Iterated Hash Function Multicollisionshttps://github.com/ilchen/cryptopals#challenge-52-iterated-hash-function-multicollisions
Challenge 54. Kelsey and Kohno's Nostradamus Attackhttps://github.com/ilchen/cryptopals#challenge-54-kelsey-and-kohnos-nostradamus-attack
Challenge 55. MD4 Collisionshttps://github.com/ilchen/cryptopals#challenge-55-md4-collisions
Challenge 56. RC4 Single-Byte Biaseshttps://github.com/ilchen/cryptopals#challenge-56-rc4-single-byte-biases
Set 8: Abstract Algebrahttps://github.com/ilchen/cryptopals#set-8-abstract-algebra
Challenge 57. Diffie-Hellman Revisited: Small Subgroup Confinementhttps://github.com/ilchen/cryptopals#challenge-57-diffie-hellman-revisited-small-subgroup-confinement
Challenge 58. Pollard's Method for Catching Kangarooshttps://github.com/ilchen/cryptopals#challenge-58-pollards-method-for-catching-kangaroos
Challenge 59. Elliptic Curve Diffie-Hellman and Invalid-Curve Attackshttps://github.com/ilchen/cryptopals#challenge-59-elliptic-curve-diffie-hellman-and-invalid-curve-attacks
Challenge 60. Single-Coordinate Ladders and Insecure Twistshttps://github.com/ilchen/cryptopals#challenge-60-single-coordinate-ladders-and-insecure-twists
Challenge 61. Duplicate-Signature Key Selection in ECDSA (and RSA)https://github.com/ilchen/cryptopals#challenge-61-duplicate-signature-key-selection-in-ecdsa-and-rsa
Challenge 62. Key-Recovery Attacks on ECDSA with Biased Nonceshttps://github.com/ilchen/cryptopals#challenge-62-key-recovery-attacks-on-ecdsa-with-biased-nonces
Challenge 63. Key-Recovery Attacks on GCM with Repeated Nonceshttps://github.com/ilchen/cryptopals#challenge-63-key-recovery-attacks-on-gcm-with-repeated-nonces
Challenge 64. Key-Recovery Attacks on GCM with a Truncated MAChttps://github.com/ilchen/cryptopals#challenge-64-key-recovery-attacks-on-gcm-with-a-truncated-mac
Challenge 65. Truncated-MAC GCM Revisited: Improving the Key-Recovery Attack via Ciphertext Length Extensionhttps://github.com/ilchen/cryptopals#challenge-65-truncated-mac-gcm-revisited-improving-the-key-recovery-attack-via-ciphertext-length-extension
Challenge 66. Exploiting Implementation Errors in Diffie-Hellmanhttps://github.com/ilchen/cryptopals#challenge-66-exploiting-implementation-errors-in-diffie-hellman
Additional problemshttps://github.com/ilchen/cryptopals/blob/master/src/docs/newproblems.md
Set 6: RSA and DSAhttps://cryptopals.com/sets/6
https://patch-diff.githubusercontent.com/ilchen/cryptopals#set-6-rsa-and-dsa
https://patch-diff.githubusercontent.com/ilchen/cryptopals#challenge-48-bleichenbachers-pkcs-15-padding-oracle-complete-case
Challenge 48https://cryptopals.com/sets/6/challenges/48
Chosen Ciphertext Attacks Against Protocols Based on the RSA Encryption Standard PKCS #1 paperhttp://archiv.infsec.ethz.ch/education/fs08/secsem/bleichenbacher98.pdf
a helper classhttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_6/PaddingOracleHelper.java
https://patch-diff.githubusercontent.com/ilchen/cryptopals#practical-optimization-to-tackle-real-world-length-rsa-moduli
The GNU Multiple Precision Arithmentic Library (GMP)https://gmplib.org
the JNA-GMP wrapperhttps://github.com/square/jna-gmp/tree/master/jnagmp
Homebrewhttps://brew.sh
RSAHelperhttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_5/RSAHelper.java#L25-L27
RSAHelperExthttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_6/RSAHelperExt.java#L66-L67
His reply to my tweethttps://twitter.com/joshbloch/status/1125530136927821824?s=20
https://patch-diff.githubusercontent.com/ilchen/cryptopals#conclusions
Set 7: Hasheshttps://cryptopals.com/sets/7
https://patch-diff.githubusercontent.com/ilchen/cryptopals#set-7-hashes
https://patch-diff.githubusercontent.com/ilchen/cryptopals#challenge-49-cbc-mac-message-forgery
this challengehttps://cryptopals.com/sets/7/challenges/49
https://patch-diff.githubusercontent.com/ilchen/cryptopals#challenge-52-iterated-hash-function-multicollisions
Challenge 52https://cryptopals.com/sets/7/challenges/52
a mistakehttps://twitter.com/spdevlin/status/1134220310109024257
https://patch-diff.githubusercontent.com/ilchen/cryptopals#challenge-54-kelsey-and-kohnos-nostradamus-attack
Challenge 54https://cryptopals.com/sets/7/challenges/54
their Herding Hash Functions and the Nostradamus Attack paperhttps://eprint.iacr.org/2005/281.pdf
https://raw.githubusercontent.com/ilchen/cryptopals/master/src/docs/challenge54_diamond_structure.png
DiamondStrcuture classhttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_7/DiamondStructure.java
MDHelper::findCollisionsWithhttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_7/MDHelper.java#L135-L163
lends itself to parallelizationhttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_7/DiamondStructure.java#L83-L114
https://patch-diff.githubusercontent.com/ilchen/cryptopals#conclusions-1
SHA3 hash standardhttps://csrc.nist.gov/publications/detail/fips/202/final
https://patch-diff.githubusercontent.com/ilchen/cryptopals#challenge-55-md4-collisions
Challenge 55https://cryptopals.com/sets/7/challenges/55
this paperhttps://ieeexplore.ieee.org/abstract/document/5389567
https://patch-diff.githubusercontent.com/ilchen/cryptopals#challenge-56-rc4-single-byte-biases
Challenge 56https://cryptopals.com/sets/7/challenges/56
this paperhttp://www.isg.rhul.ac.uk/tls/RC4biases.pdf
Set 8: Abstract Algebrahttps://toadstyle.org/cryptopals/
https://patch-diff.githubusercontent.com/ilchen/cryptopals#set-8-abstract-algebra
https://patch-diff.githubusercontent.com/ilchen/cryptopals#challenge-57-diffie-hellman-revisited-small-subgroup-confinement
Challenge 57https://toadstyle.org/cryptopals/57.txt
the General Number Field Sieve (GNFS)https://en.wikipedia.org/wiki/General_number_field_sieve
Challenge 59https://github.com/ilchen/cryptopals#challenge-59-elliptic-curve-diffie-hellman-and-invalid-curve-attacks
implement Garner's algorithmhttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/Set8.java#L131-L167
a safe primehttps://en.wikipedia.org/wiki/Safe_prime
https://patch-diff.githubusercontent.com/ilchen/cryptopals#challenge-58-pollards-method-for-catching-kangaroos
Challenge 58https://toadstyle.org/cryptopals/58.txt
Section 3 of Pollard's paperhttps://www.ams.org/journals/mcom/1978-32-143/S0025-5718-1978-0491431-9/S0025-5718-1978-0491431-9.pdf
a later elliptic curve challengehttps://github.com/ilchen/cryptopals#challenge-60-single-coordinate-ladders-and-insecure-twists
this paper by Ravi Montenegro and Prasad Tetalihttps://arxiv.org/pdf/0812.0789.pdf
https://patch-diff.githubusercontent.com/ilchen/cryptopals#challenge-59-elliptic-curve-diffie-hellman-and-invalid-curve-attacks
Challenge 59https://toadstyle.org/cryptopals/59.txt
Challenge 57https://toadstyle.org/cryptopals/57.txt
my discussion with @spdevlinhttps://twitter.com/_ilchen_/status/1174045790748254210?s=20
https://patch-diff.githubusercontent.com/ilchen/cryptopals#challenge-60-single-coordinate-ladders-and-insecure-twists
Challenge 60https://toadstyle.org/cryptopals/60.txt
a shared implementation of the scale and dlog methodshttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_8/ECGroupElement.java#L15-L91
the concept of an EC grouphttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_8/ECGroup.java#L14-L84
Gregory Morsehttps://github.com/GregoryMorse
a class dedicated to generating different possible values of Bob's private keyhttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_8/CRTCombinations.java
Iterablehttps://docs.oracle.com/javase/8/docs/api/java/lang/Iterable.html
logic to carry such scans in parallelhttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/Set8.java#L309-L355
ensures that its private key has the same number of bits as the generatorhttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_8/ECDiffieHellmanBobService.java#L24-L33
the curve 25519https://en.wikipedia.org/wiki/Curve25519
https://patch-diff.githubusercontent.com/ilchen/cryptopals#challenge-61-duplicate-signature-key-selection-in-ecdsa-and-rsa
Challenge 61https://toadstyle.org/cryptopals/61.txt
The implementation is quite compacthttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_8/ECDSA.java#L15-L63
The effort to produce a DSKS for ECDSA is negligiblehttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/Set8.java#L460-L475
the curve 25519https://en.wikipedia.org/wiki/Curve25519
Challenge 42https://cryptopals.com/sets/6/challenges/42
quite a bit of concurrent codehttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/Set8.java#L539-L605
a combination of Pohlig-Hellman and J.M. Pollard's Lambda Methodhttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/Set8.java#L485-L530
Challenge 59https://toadstyle.org/cryptopals/58.txt
this paperhttp://mpqs.free.fr/corr98-42.pdf
Challenge 47https://cryptopals.com/sets/6/challenges/47
https://patch-diff.githubusercontent.com/ilchen/cryptopals#challenge-62-key-recovery-attacks-on-ecdsa-with-biased-nonces
Challenge 62https://toadstyle.org/cryptopals/62.txt
curve secp256k1https://en.bitcoin.it/wiki/Secp256k1
this paperhttps://eprint.iacr.org/2019/023.pdf
a class with static methods for matrix operations over a field of realshttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_8/RealMatrixOperations.java
was trivialhttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_8/BiasedECDSA.java#L25-L30
The code of the main testhttps://github.com/ilchen/cryptopals/blob/master/src/test/java/com/cryptopals/Set8Tests.java#L229-L260
https://patch-diff.githubusercontent.com/ilchen/cryptopals#challenge-63-key-recovery-attacks-on-gcm-with-repeated-nonces
Challenge 63https://toadstyle.org/cryptopals/63.txt
https://patch-diff.githubusercontent.com/ilchen/cryptopals#implementing-gf2128
Java's BigIntegerhttps://docs.oracle.com/javase/8/docs/api/java/math/BigInteger.html
com.cryptopals.set_8.PolynomialGaloisFieldOverGF2https://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_8/PolynomialGaloisFieldOverGF2.java
https://patch-diff.githubusercontent.com/ilchen/cryptopals#implementing-galois-counter-mode-gcm
this document from NISThttps://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-38d.pdf
https://patch-diff.githubusercontent.com/ilchen/cryptopals#implementing-a-polynomial-ring-over-a-finite-field
a generic classhttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_8/PolynomialRing2.java
any finite fieldhttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_8/FiniteFieldElement.java
GF(Zp) fieldshttps://github.com/ilchen/cryptopals/blob/master/src/test/java/com/cryptopals/ZpField.java
https://patch-diff.githubusercontent.com/ilchen/cryptopals#solving-the-problem-of-factoring-polynomials
https://en.wikipedia.org/wiki/Polynomial_long_division#Pseudocodehttps://en.wikipedia.org/wiki/Polynomial_long_division#Pseudocode
https://en.wikipedia.org/wiki/Factorization_of_polynomials_over_finite_fields#Square-free_factorizationhttps://en.wikipedia.org/wiki/Factorization_of_polynomials_over_finite_fields#Square-free_factorization
https://en.wikipedia.org/wiki/Factorization_of_polynomials_over_finite_fields#Distinct-degree_factorizationhttps://en.wikipedia.org/wiki/Factorization_of_polynomials_over_finite_fields#Distinct-degree_factorization
https://en.wikipedia.org/wiki/Factorization_of_polynomials_over_finite_fields#Equal-degree_factorizationhttps://en.wikipedia.org/wiki/Factorization_of_polynomials_over_finite_fields#Equal-degree_factorization
https://patch-diff.githubusercontent.com/ilchen/cryptopals#distinct-degree-factorization
arrays of coefficientshttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_8/PolynomialRing.java#L14-L22
a way that stores only their non-zero coefficientshttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_8/PolynomialRing2.java#L13-L25
the Distinct-degree factorization algorithm from Wikipediahttps://en.wikipedia.org/wiki/Factorization_of_polynomials_over_finite_fields#Distinct-degree_factorization
a Distinct-degree factorization algorithm that uses repeated squaringhttps://www.cmi.ac.in/~ramprasad/lecturenotes/comp_numb_theory/lecture10.pdf
https://patch-diff.githubusercontent.com/ilchen/cryptopals#equal-degree-factorization
a scaleMod methodhttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_8/PolynomialRing2.java#L235-L257
https://patch-diff.githubusercontent.com/ilchen/cryptopals#realising-the-actual-attack-of-recovering-the-authentication-key
https://patch-diff.githubusercontent.com/ilchen/cryptopals#asking-yourself-a-question-of-what-you-can-do-with-the-recovered-authentication-key
https://patch-diff.githubusercontent.com/ilchen/cryptopals#challenge-64-key-recovery-attacks-on-gcm-with-a-truncated-mac
Challenge 64https://toadstyle.org/cryptopals/64.txt
Authentication weaknesses in GCMhttps://csrc.nist.gov/csrc/media/projects/block-cipher-techniques/documents/bcm/comments/cwc-gcm/ferguson2.pdf
a special new instruction PCLMULQDQhttps://software.intel.com/sites/default/files/managed/72/cc/clmul-wp-rev-2.02-2014-04-20.pdf
https://patch-diff.githubusercontent.com/ilchen/cryptopals#linear-algebra
https://patch-diff.githubusercontent.com/ilchen/cryptopals#implementing-a-vector-representation-for-elements-of-gf2128
PolynomialGaloisFieldOverGF2::FieldElement::asVectorhttps://github.com/ilchen/cryptopals/blob/e984f1f793f158570087d1c4b0e1fa70b7947253/src/main/java/com/cryptopals/set_8/PolynomialGaloisFieldOverGF2.java#L150-L158
PolynomialGaloisFieldOverGF2::createElementhttps://github.com/ilchen/cryptopals/blob/e984f1f793f158570087d1c4b0e1fa70b7947253/src/main/java/com/cryptopals/set_8/PolynomialGaloisFieldOverGF2.java#L47-L58
https://patch-diff.githubusercontent.com/ilchen/cryptopals#implementing-a-matrix-representation-for-multiplication-by-a-constant-and-for-squaring
PolynomialGaloisFieldOverGF2::FieldElement::asMatrixhttps://github.com/ilchen/cryptopals/blob/e984f1f793f158570087d1c4b0e1fa70b7947253/src/main/java/com/cryptopals/set_8/PolynomialGaloisFieldOverGF2.java#L160-L173
PolynomialGaloisFieldOverGF2::getSquaringMatrixhttps://github.com/ilchen/cryptopals/blob/e984f1f793f158570087d1c4b0e1fa70b7947253/src/main/java/com/cryptopals/set_8/PolynomialGaloisFieldOverGF2.java#L64-L80
https://patch-diff.githubusercontent.com/ilchen/cryptopals#implementing-basic-operations-for-matrices-in-gf2
BooleanMatrixOperations classhttps://github.com/ilchen/cryptopals/blob/e984f1f793f158570087d1c4b0e1fa70b7947253/src/main/java/com/cryptopals/set_8/BooleanMatrixOperations.java
an algorithm on Wikipediahttps://en.wikipedia.org/wiki/Gaussian_elimination#Pseudocode
this paperhttp://www.hyperelliptic.org/tanja/SHARCS/talks06/smith_revised.pdf%22
this static methodhttps://github.com/ilchen/cryptopals/blob/e984f1f793f158570087d1c4b0e1fa70b7947253/src/main/java/com/cryptopals/set_8/BooleanMatrixOperations.java#L44-L95
this algorithm from Wikipediahttps://en.wikipedia.org/wiki/Kernel_(linear_algebra)#Computation_by_Gaussian_elimination
this methodhttps://github.com/ilchen/cryptopals/blob/788dbe6e75a9d97bcac32a45295e3592c47258ec/src/main/java/com/cryptopals/set_8/BooleanMatrixOperations.java#L96-L127
https://patch-diff.githubusercontent.com/ilchen/cryptopals#extraction-and-replacement-of-the-2i-th-blocks-of-ciphertext
extraction of coefficientshttps://github.com/ilchen/cryptopals/blob/e984f1f793f158570087d1c4b0e1fa70b7947253/src/main/java/com/cryptopals/set_8/GCM.java#L201-L222
replacement of coefficientshttps://github.com/ilchen/cryptopals/blob/e984f1f793f158570087d1c4b0e1fa70b7947253/src/main/java/com/cryptopals/set_8/GCM.java#L224-L237
https://patch-diff.githubusercontent.com/ilchen/cryptopals#calculation-of-matrix-ad--mdimsi-and-a-dependency-matrix
https://raw.githubusercontent.com/ilchen/cryptopals/master/src/docs/challenge64_equations.png
https://patch-diff.githubusercontent.com/ilchen/cryptopals#finding-the-kernel-of-the-dependency-matrix-t
kernelOfTransposedhttps://github.com/ilchen/cryptopals/blob/e984f1f793f158570087d1c4b0e1fa70b7947253/src/main/java/com/cryptopals/set_8/BooleanMatrixOperations.java#L128-L149
https://patch-diff.githubusercontent.com/ilchen/cryptopals#attempting-an-existential-forgery-attack-on-the-smallest-allowed-ghash-tag-size-of-tlen--32-bits
the replaceBasis methodhttps://github.com/ilchen/cryptopals/blob/e984f1f793f158570087d1c4b0e1fa70b7947253/src/main/java/com/cryptopals/set_8/GCMExistentialForgeryHelper.java#L64-L83
is herehttps://github.com/ilchen/cryptopals/blob/788dbe6e75a9d97bcac32a45295e3592c47258ec/src/test/java/com/cryptopals/Set8Tests.java#L553-L582
https://patch-diff.githubusercontent.com/ilchen/cryptopals#recovering-the-authentication-key
produceDependencyMatrixTransposed methodhttps://github.com/ilchen/cryptopals/blob/e984f1f793f158570087d1c4b0e1fa70b7947253/src/main/java/com/cryptopals/set_8/GCMExistentialForgeryHelper.java#L235-L275
the code that carries out the existential forgery attackhttps://github.com/ilchen/cryptopals/blob/e984f1f793f158570087d1c4b0e1fa70b7947253/src/main/java/com/cryptopals/set_8/GCMExistentialForgeryHelper.java#L107-L182
https://patch-diff.githubusercontent.com/ilchen/cryptopals#conclusions-2
an excellent explanation of thishttps://www.youtube.com/watch?v=eBx6AvO-UJ
https://patch-diff.githubusercontent.com/ilchen/cryptopals#challenge-65-truncated-mac-gcm-revisited-improving-the-key-recovery-attack-via-ciphertext-length-extension
Challenge 65https://toadstyle.org/cryptopals/65.txt
Authentication weaknesses in GCMhttps://csrc.nist.gov/csrc/media/projects/block-cipher-techniques/documents/bcm/comments/cwc-gcm/ferguson2.pdf
https://patch-diff.githubusercontent.com/ilchen/cryptopals#making-the-attack-work-when-plaintext-is-not-a-multiple-of-blocksize
BooleanMatrixOperations.gaussianElimination methodhttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_8/BooleanMatrixOperations.java#L53-L106
the following linear algebra theoremhttps://en.wikipedia.org/wiki/System_of_linear_equations#Relation_to_nonhomogeneous_systems
GCM.replacePowerOf2Blockshttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_8/GCM.java#L245-L275
https://patch-diff.githubusercontent.com/ilchen/cryptopals#figuring-out-how-to-zero-not-just-16-rows-of-ad-but-17
https://patch-diff.githubusercontent.com/ilchen/cryptopals#recover-further-bits-of-the-authentication-key-faster-with-partial-knowledge-of-the-key-captured-in-matrix-x
@spdevlinhttps://twitter.com/spdevlin
GCMExistentialForgeryHelper::replaceBasishttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_8/GCMExistentialForgeryHelper.java#L88-L163
GCMExistentialForgeryHelper::recoverAuthenticationKeyhttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_8/GCMExistentialForgeryHelper.java#L186-L272
https://patch-diff.githubusercontent.com/ilchen/cryptopals#challenge-66-exploiting-implementation-errors-in-diffie-hellman
Challenge 66https://toadstyle.org/cryptopals/66.txt
the server-side code from Challenges 59 and 60https://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_8/ECDiffieHellmanBobService.java#L25-L50
WeierstrassECGrouphttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_8/WeierstrassECGroup.java
MontgomeryECGrouphttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_8/MontgomeryECGroup.java
FaultyWeierstrassECGrouphttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_8/FaultyWeierstrassECGroup.java
scalehttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_8/FaultyWeierstrassECGroup.java#L132-L143
combinehttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_8/FaultyWeierstrassECGroup.java#L149-L171
WeierstrassECGrouphttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/set_8/WeierstrassECGroup.java
scaleForChallenge66https://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/Set8.java#L701-L723
findPointWithFaultAtBitIndexhttps://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/Set8.java#L725-L758
breakChallenge66https://github.com/ilchen/cryptopals/blob/master/src/main/java/com/cryptopals/Set8.java#L760-L805
https://cryptopals.comhttps://cryptopals.com
cryptography https://patch-diff.githubusercontent.com/topics/cryptography
rsa https://patch-diff.githubusercontent.com/topics/rsa
gcm https://patch-diff.githubusercontent.com/topics/gcm
srp https://patch-diff.githubusercontent.com/topics/srp
ecdsa https://patch-diff.githubusercontent.com/topics/ecdsa
ecdh https://patch-diff.githubusercontent.com/topics/ecdh
elliptic-curves https://patch-diff.githubusercontent.com/topics/elliptic-curves
diffie-hellman https://patch-diff.githubusercontent.com/topics/diffie-hellman
cryptopals https://patch-diff.githubusercontent.com/topics/cryptopals
pohlig-hellman https://patch-diff.githubusercontent.com/topics/pohlig-hellman
dsa https://patch-diff.githubusercontent.com/topics/dsa
galois-fields https://patch-diff.githubusercontent.com/topics/galois-fields
montgomery-curve https://patch-diff.githubusercontent.com/topics/montgomery-curve
weierstrass-curves https://patch-diff.githubusercontent.com/topics/weierstrass-curves
pollard-kangaroo https://patch-diff.githubusercontent.com/topics/pollard-kangaroo
polynomial-rings https://patch-diff.githubusercontent.com/topics/polynomial-rings
ghash https://patch-diff.githubusercontent.com/topics/ghash
dual-ec-drbg https://patch-diff.githubusercontent.com/topics/dual-ec-drbg
elligator2 https://patch-diff.githubusercontent.com/topics/elligator2
Readme https://patch-diff.githubusercontent.com/ilchen/cryptopals#readme-ov-file
LGPL-3.0 license https://patch-diff.githubusercontent.com/ilchen/cryptopals#LGPL-3.0-1-ov-file
Please reload this pagehttps://patch-diff.githubusercontent.com/ilchen/cryptopals
Activityhttps://patch-diff.githubusercontent.com/ilchen/cryptopals/activity
28 starshttps://patch-diff.githubusercontent.com/ilchen/cryptopals/stargazers
5 watchinghttps://patch-diff.githubusercontent.com/ilchen/cryptopals/watchers
3 forkshttps://patch-diff.githubusercontent.com/ilchen/cryptopals/forks
Report repository https://patch-diff.githubusercontent.com/contact/report-content?content_url=https%3A%2F%2Fgithub.com%2Filchen%2Fcryptopals&report=ilchen+%28user%29
Releaseshttps://patch-diff.githubusercontent.com/ilchen/cryptopals/releases
Packages 0https://patch-diff.githubusercontent.com/users/ilchen/packages?repo_name=cryptopals
Please reload this pagehttps://patch-diff.githubusercontent.com/ilchen/cryptopals
Java 100.0% https://patch-diff.githubusercontent.com/ilchen/cryptopals/search?l=java
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.