### Self Proposed Open Task: [Elliptic Curve Integrated Encryption Scheme (ECIES) Implementation in Circom]
#### Executive Summary
- Project Overview: Create a secure and efficient ECIES encryption system in Circom, with zero-knowledge proof features. The main goals are to build a working ECIES system in circom. and make it run smoothly with fewer computations.
#### Project Details
- Motivation: ECIES is important for secure data sharing in blockchain and crypto projects. Building it in Circom helps advance zero-knowledge projects.
- [complete spec sheet](https://hackmd.io/zGQFexzNR-2T4sW_trO8AQ)
- Scope of Work:
1. Build the main parts of ECIES in Circom:
- Optimising HMAC with SHA-256
- Optimising AES encryption with CTR Mode
- Key creation function (HKDF with SHA-256) in Circom
2. Create ECIES encryption.
3. Optimise ECIES in circom.
4. Write thorough tests
5. Publishing as npm packages
- Expected Outcomes:
1. AES-Circom implementation with CTR mode
2. HMAC with SHA-256 implementation in Circom
3. HKDF with SHA-256 implementation in Circom
4. Complete ECIES implementation in Circom
#### Qualifications
- Skills Required:
- TypeScript
- Proficient in Circom
- Understanding of ZKP and Cryptography.
#### Team 👥:
- Vikas Rushi
- Email: 0xvikas@gmail.com
- Telegram: vikasrushi
- Discord: vikasrushi
- Yashwanth Reddy
- Email: yashdotreddy@gmail.com
- Telegram: immabeyeet
- Discord: immabeyeet
- Ayman
- Email: aymanshaik1015@gmail.com
- Discord: nesopie
#### Team's Experience:
- Implemented [Generic AES Circom](https://github.com/crema-labs/aes-circom)
- Implemented First AES Circom [CTR Mode](https://github.com/crema-labs/aes-circom/blob/main/circuits/ctr.circom)
- Implemented [hmac with sha256](https://github.com/crema-labs/hmac-circom) in circom
- Implemented[Circom ASN.1 Parser](https://github.com/zkemail/asn1-parser-circom)
Github: https://github.com/crema-labs
Portfolio: https://crema.sh/
#### Administrative Details
- Estimated Project Duration: 1 month
- Project Complexity: Medium, we already have most of the basic math worked out. But putting it into Circom and making it run fast is tricky.
- Total Estimated Working Hours: 120 hrs
- Full-time equivalent (FTE): 0.75
- Expected Start Date: August 11th, 2024.
- Expected End Date: September 8th, 2024.
#### Timeline
#### **Week 1**
| Task | Description | Time |
| --- | --- | --- |
| Research | Research on ECIES encryption scheme , its components and potential use cases | 2 day |
| Research | Enhance understanding of KDF functions and potential issues raised regarding HKDF in the past. | 1 day |
| Refactor | Refactor our AES implementation to be more suited for ECIES. | 1 day |
| Testing | Add more tests for the AES implementation according to NIST test vectors. | 1 day |
| Documentation | Update the documentation with the new changes. | 1 day |
#### **Week 2**
| Task | Description | Time |
| --- | --- | --- |
| Implementation | Implement HMAC with SHA-256 | 1 day |
| Testing | Testing HMAC with SHA-256 with NIST test vectors| 1 day |
| Implementation | Implement HKDF with SHA-256 | 1 day |
| Testing | Testing HKDF with SHA-256 | 1 day |
| Testing | Test ECC operations for secp256k1 and secp256r1 | 2 day |
#### **Week 3**
| Task | Description | Time |
| --- | --- | --- |
| Implementation | Implement ECIES encryption scheme | 1 day |
| Testing | Testing ECIES encryption scheme | 1 day |
| Implementation | Implement HMAC and HKDF for all key lengths | 2 day |
| Testing | Testing HMAC and HKDF for all key lengths | 1 day |
| Documentation | Update the documentation with the new changes. | 1 day |
| Testing | Integration testing of all components | 1 day |
#### **Week 4**
This is an optional week for any additional testing or for implementing ; Zanity, `A ZK Vanity Address Generator` which would serve as a practical example and a use case for ECIES encryption scheme.
#### Additional Information
- [ECIES](https://www.secg.org/sec1-v2.pdf)
- [Advanced Encryption Standard (AES)](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.197-upd1.pdf)
- [HMAC RFC 2104](https://datatracker.ietf.org/doc/html/rfc2104)
- [KDF]( https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-56Ar3.pdf)