To run a summary of constraints in all library functions:
npmrunbuild node ./build/test/circuitSummary.js
Architecture & Design
Detailed Design/Architecture: The proposers currently have a proof-of-concept AES codebase capable of verifying 128-bit ciphertext messages. However, this codebase is a prototype and requires significant modifications, including implementing the S-Box, various block mode of operations (e.g., CTR), and key expansion to support different key sizes. Additionally, a comprehensive test suite is crucial to ensure correctness during development.
Vision: Provide a well-documented, robust library for the AES scheme, which can be easily utilized for future development.
Existing Work: See the current proof-of-concept here.
Circuit Breakdown
AES128 Iterative Summary
Key
Value
Total rows
50185
Generic
18617
Xor16
10984
Zero
10984
Rot64
4800
RangeCheck0
4800
Detailed Breakdown
Core:
Integrating previously completed ShiftRows and MixColumns stages into the new codebase.
Implementing an algorithmic (rather than memory-heavy) S-Box or with a provable Merkle Map.
Key expansion.
Implementing block mode: Counter Mode (CTR).
Testing: Since AES is a security primitive, we propose testing with millions of randomly generated inputs and comparing results against an industrial implementation (Differential Testing).