Coder Social home page Coder Social logo

explore-crypto-concepts's People

Contributors

hypesystem avatar

Watchers

 avatar  avatar  avatar

explore-crypto-concepts's Issues

CBC-encryption

Enc and Dec exploration with chosen messages m_0...i, F and k and IV. See values at each step of the way and the output.

Pseudorandom permutators F_k

Explore F_k by picking an F from a list, entering a k, and then getting to play with them, doing F^-1_k and F_k (both ways)

Explore truly random functions

A truly random function is one that maps from some input space to an output space. Often the input and output spaces will be the same (especially here, in crypto).

The set of all truly random functions, Func_n, contains every configuration of mapping in this manner where input and output space are messages {0,1}^n

One can construct a truly random function pragmatically by using a truly random generator. On each query to the function, if the same query has already been made, the old result is returned; else a new random string is generated and saved as the mapping for this query.

CBC-MAC

Explore it, give it input, see values at every step, see output.

For both Mac and Verify

Formal definitions of terms used in formalisms

Debois made a good point today in the reading group: there are often many terms used (in Introduction to Modern Cryptography, too) that are unclear or not formally defined. For example, terms like x can see this query (what does seeing a query mean?)

It would be interesting, whenever being formal in this, to make sure to be very clear about terms. I should be super clear on the split between colloquial/informal explanations and formal explanations.

Random oracles

From wikipedia: "They are typically used when the cryptographic hash functions in the method cannot be proven to possess the mathematical properties required by the proof." This should be made super clear.

They are only used for proofs.

Something that magically makes things that cannot otherwise be proven provable (assuming we swap something with random oracles). This is technically a different proof, but the assumption is that it is "close enough" that it proves the overall construction...ish.

Show a way of constructing it: some stateful box that is magically shared between parties. When queried for a new value, it saves and returns a uniformly randomly selected value from the output space. When queried for a previously queried value, it returns the saved value.

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.