Giter Site home page Giter Site logo

anish-m-code / pqcrypt Goto Github PK

View Code? Open in Web Editor NEW
19.0 3.0 5.0 149 KB

PQcrypt : The post-quantum cryptography tool.

License: MIT License

Shell 6.34% Python 93.66%
post-quantum-cryptography cryptography cryptography-tools crypto quantum-computing privacy encryption cybersecurity security hacktoberfest

pqcrypt's Introduction

Hi there ๐Ÿ‘‹

I am an aspiring Software Engineer from India who is interested in Computer Security , AI and Software Development.

  • ๐Ÿ”ญ My passion is solving real world Problems by developing efficient Software whenever possible.
  • ๐ŸŒฑ Currently focusing on improving my knowledge of Algorithms and Data structures.
  • I have basic programming experience in python, C, C++ and SQL.
  • ๐Ÿ‘ฏ Always ready to collaborate with anyone.
  • PGP FINGERPRINT: 34BA 0B8A A9AF 2EB7 7B2A E4F6 D57E FA59 BA33 695F

Contact

anish-m-code | codeforces anish-m-code | Leetcode anish-m-code | Linkedin anish-m-code | Hackerrank aneesh25861 | PGP KEY



Stats



Top Langs

pqcrypt's People

Contributors

anish-m-code avatar atamblingpoder avatar nishanthsenthilvasagam avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

pqcrypt's Issues

Improve pqcrypt installation in fedora

We need to create virtual environment and install required packages in virtual environment , need to modify fedora_install.sh and fedora_run.sh accordingly. we can use build.sh and run.sh as reference.

Use HKDF to derive key using shared secret from PQ-KEMs instead of using shared secret directly as key.

It is a best practice to use KDF like HKDF to derive key directly from shared secret , initially it was considered safe to use shared secret according to discussion below : -

open-quantum-safe/liboqs-python#54

Most KEMs are safe using above approach but for safety side we should implement KDF to derive key as discussed in crypto.stackexchange.com below: -

https://crypto.stackexchange.com/questions/89795/can-a-kem-shared-secret-be-used-directly-as-a-symmetric-key

HKDF can also be used to generate multiple keys from single shared secret which can be helpful in solving issue #5

create a mechanism to ensure both sender and receiver of PQcrypt encrypted messages use same version of PQcrypt.

Since PQcrypt is a rolling release software based on liboqs , maybe as soon as we git clone liboqs locally during installation we must run a sha512 hash over the locally cloned repository and use sha512 hash output as build version, this hash should be added in encrypted messages , the receiver should check this build version with his own and discard message if build versions mismatch. This logic has to be done in code, or perhaps if any better mechanism exists we might think over it.

No Message Integrity during Encryption and Decryption.

Currently no message authentication codes or Encrypted authentication is present which makes encryption of confidential documents using this program vulnerable to cyberattacks as the ciphertext can be modified by an Attacker.

Implement key committing AEAD or AES-CTR with HMAC-SHA512 in python using cryptography pypi module/package

Currently none of AEAD ciphers in cryptography package support key commitment , but key commitment is a good to have property
refer discussions on https://crypto.stackexchange.com/questions/88716/understanding-the-impact-of-partitioning-oracle-attacks-on-stream-ciphers and https://crypto.stackexchange.com/questions/6075/is-encrypthmac-stronger-than-aead?noredirect=1&lq=1

I strongly believe its worthwhile to implement a key committing AEAD like AES-CTR with HMAC-SHA512 ,its unlikely to suffer major crypto mistakes if coded properly, any future contributors may refer discussion here https://crypto.stackexchange.com/questions/101612/common-pitfalls-to-be-taken-care-of-while-implementing-encrypt-then-hmac-scheme and guidelines here https://github.com/samuel-lucas6/Cryptography-Guidelines to replace AES-GCM used in PQcrypt.

Improve Readme

We must review if we are explaining better what PQcrypt is and how it might be useful to people , Also currently Image of pqcrypt tool shown in readme is broken.

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.