Git Product home page Git Product logo

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  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

pqcrypt's Issues

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.

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.

Report: Necessity of Translating README.md into Portuguese

Currently, the README is only available in English, limiting the project's reach to a specific audience. The README.md file serves as a project's introduction, providing essential information to developers and potential users. By being exclusively in English, the PQcrypt's README restricts access to those who don't have a strong command of the language, including: Brazilian and other Portuguese-speaking developers: A significant portion of the developer community in Brazil and other Portuguese-speaking countries has an intermediate or basic level of English, making it difficult to understand the technical content of the README. End users Even end users who are not developers may be interested in PQcrypt, but the language barrier can prevent them from exploring the project.

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.

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.

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

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.

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.