Giter VIP home page Giter VIP logo

matasano-cryptopals-solutions's Introduction

Cryptopals is a collection of 48 exercises that demonstrate attacks on real world ciphers and protocols. Exercises exploit both badly designed systems and subtle implementation bugs in theoretically rock solid crypto. The exercises and official solutions are now publically available on their official site, my write up about doing them is on my blog.

This repository contains my solutions to those exercises. All solutions are stored inside the org.meri.matasano package in classes named SetX where X is the exercises set number. Some of the exercises required explanation or description, I wrote them inside javadoc comments in solution class. Solutions are run from unit tests. Each set of exercises has its own setX directory and unit test named SetXTest.

Links to solutions as they were when I finished them.

Set 1:

Set 2:

Set 3:

Set 4:

Set 5:

Set 6:

matasano-cryptopals-solutions's People

Contributors

sommeri avatar

Stargazers

Ayomide Ayodele-Soyebo avatar  avatar Suri avatar Anders Garmo avatar Michael avatar  avatar Iz avatar Greg Weisman avatar  avatar  avatar Camilo Díaz Repka avatar kost avatar Boris Cherny avatar Andres Riancho avatar Rodrigo Mérida avatar Isaiah Torain avatar Johannes Feichtner avatar Nikolay Elenkov avatar  avatar David Hua avatar Dennis Sivia avatar Ben Lamm avatar  avatar Nbosa avatar Mario Grabovaj 0x06 avatar Jason Willems avatar Levent Divilioglu avatar  avatar  avatar Bruno Dias avatar

Watchers

Anders Garmo avatar  avatar James Cloos avatar Mario Grabovaj 0x06 avatar  avatar  avatar Stijn Vanden Eynde avatar  avatar Raj Manglani avatar

matasano-cryptopals-solutions's Issues

problem with shiro

hey there, first of all ty for the code. But i got a Problem with Shiro, i installed it as i have been told to by their website. but how can i access their librarys? Can't find anything useful on the web.
Greetings

Might have misunderstood challenge 14

As I understand from your challenge 14 docs you're just asking the server again for ciphertext until you see three consecutive blocks, i.e. until the prepended random blob is blocksize long.

But I think (thought not sure) you misunderstood challenge 14 and it's a bit harder than you thought.

Now generate a random count of random bytes and prepend this string to every plaintext.

As I understand it, you should:

  1. Generate a random count of random bytes.
  2. Prepend this string (always the same!) to every plaintext. Just like the key is shared for all runs.

I was confused just like you, but I noticed...

AES-128-ECB(random-prefix || attacker-controlled || target-bytes, random-key)

...uses the same notation (random-) both for prefix and for key which suggests both are, in fact, fixed throughout all encryptions. I think that the fact that it makes the challenge (slightly) harder reinforces the idea.

Of course I might be wrong and maybe you got it right, but I still thought I should ping you in case you were interested on revisiting the challenge :)

Should take this down

Part of the point of these challenges is that there isn't a solution. Having these right here as the 3rd link on google takes away the value of the cryptopals challenges for others. That's my opinion... but in the front page of the site they describe how when it was in email form they asked people not to divulge the answers.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.