Giter VIP home page Giter VIP logo

pygamehop's People

Contributors

dstebila avatar mckaguem avatar thirteenchars avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

pygamehop's Issues

Typechecking of inlined code

  • When the inliner tries to inline something, it should check that the type of the thing being inlined satisfies any type constraints.
  • In the proof engine, once inlining has happened, the type checker should be run.
    • This might be related to how I want to use the UniformlyRandom type in game hops to ensure e.g. arguments to a PRF/KDF are uniformly random when applying the hop.

Be able to parse functions that aren't at top level

ast.parse(inspect.getsource(f)) chokes on functions that aren't defined at the top level of a module, since the source code for f is indented. (This affects pulling functions from inside classes, for example.) We should be able to change gamehop.inlining.internal.get_function_def to count how much whitespace is as the start of the first line, and then remove that much space from the start of every line.

Reduction guesses

Eg. multi-party PKE. Reduction guesses a particular key. Fails if adversary selects a different key.

  • Calculation of overall advantage when a step has a multiplicative advantage
  • Examples of how to step from a game with a random guesses to games without a guess

Handle guessing games in proofs engine

Will want to re-do PKE from KEM using this. At the end will need to check that output is independent of input bit. Have to figure out how to handle proofs that mix guessing games and distinguishing games.

if expression bug

I think the logic for if expressions incorrectly handles the following case:

x = 1
if condition:
    x = 2
    y = 2
else:
    y = 3

Generate LaTeX from Python

Would be cool to be able to output LaTeX source code of a crypto function written in Python. We can recognize the type of statement (assign, function call, if, return), but the user would have to provide mapping of what they want individual variables to be rendered as (e.g., {'kem': '\mathsf{KEM}', 'pk': '\pk', ...}).

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.