Skip to content

feat(cipher): add Goldwasser-Micali probabilistic encryption (1982, first semantically-secure public-key scheme, origin of IND-CPA security) - #995

Draft
Aakif-Kohari wants to merge 1 commit into
csxark:mainfrom
Aakif-Kohari:feat/cipher-goldwasser-micali
Draft

feat(cipher): add Goldwasser-Micali probabilistic encryption (1982, first semantically-secure public-key scheme, origin of IND-CPA security)#995
Aakif-Kohari wants to merge 1 commit into
csxark:mainfrom
Aakif-Kohari:feat/cipher-goldwasser-micali

Conversation

@Aakif-Kohari

Copy link
Copy Markdown
Contributor

Pull Request

Description

Adds a complete, step-instrumented visualizer for the Goldwasser-Micali cryptosystem (1982), the first provably semantically-secure public-key scheme. This implementation demonstrates its bit-by-bit probabilistic encryption and the quadratic residuosity problem underlying IND-CPA security.


Related Issue

Closes #984


Type of Change

  • Bug Fix
  • New Feature
  • Documentation
  • UI/UX Improvement
  • Refactoring
  • Performance Improvement
  • Accessibility

Changes Made

  • Created lib/cipher/asymmetric/goldwasser-micali.ts with Jacobi symbol computation and residuosity testing
  • Created tests/unit/asymmetric/goldwasser-micali.test.ts verifying probabilistic variation and round-trip
  • Added goldwasser-micali to CipherName union in lib/cipher/types.ts
  • Registered goldwasser-micali in lib/cipher/registry.ts
  • Added lazy-import dispatch case in lib/workers/cipher.worker.ts

Testing

  • Tested locally
  • No console errors
  • Existing functionality works as expected

Checklist

  • My code follows the project guidelines.
  • I have tested my changes.
  • I have updated the documentation if required.
  • My changes address the related issue.
  • This PR focuses on a single issue.

Additional Notes

Foundational to the semantic-security notion underlying Cramer-Shoup (a previous batch) and modern IND-CPA/IND-CCA definitions. Demonstrates the deliberate tradeoff of ciphertext expansion for probabilistic security.

Note

Please Merge after 03:15 PM IST (GMT +5:30) 11 August.
Please ensure PR has ECSoC26 Tag before merge.

…irst semantically-secure public-key scheme, origin of IND-CPA security)
@vercel

vercel Bot commented Aug 11, 2026

Copy link
Copy Markdown

@Aakif-Kohari is attempting to deploy a commit to the csxark's projects Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions

Copy link
Copy Markdown
Contributor

🎉 Thank You for Your Contribution

Hello @Aakif-Kohari,

Thank you for submitting a Pull Request to CryptoViz. We appreciate the time and effort you've invested in contributing to the project.

Your Pull Request has been received successfully and will be reviewed by the maintainers as soon as possible.

📋 Pull Request Checklist

  • ✅ Linked the related issue
  • ✅ No merge conflicts
  • ✅ Synced with the latest main branch
  • ✅ Build passes successfully
  • ✅ All tests pass

Ensuring these requirements are met helps streamline the review process and enables maintainers to review your contribution more efficiently.

❤️ Support CryptoViz

If you find CryptoViz helpful, consider supporting the project by:

  • ⭐ Starring the repository
  • 🍴 Forking the repository
  • 👤 Following Ark on GitHub
  • 💼 Connecting on LinkedIn
  • 🌐 Visiting the Portfolio

Your support helps increase the project's visibility and encourages continued development. Thank you for being a part of the CryptoViz community!

Thank you once again for contributing to CryptoViz. We appreciate your support and look forward to reviewing your contribution.

@coderabbitai

coderabbitai Bot commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 70885217-364d-40a6-8816-f7307de211e8

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Aakif-Kohari

Copy link
Copy Markdown
Contributor Author

Note

Please Merge after 03:15 PM IST (GMT +5:30) 11 August.
Please ensure PR has ECSoC26 Tag before merge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE] Add Goldwasser-Micali probabilistic encryption (1982, first semantically-secure public-key scheme, origin of IND-CPA security)

1 participant