Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pufferffish/fuzzyibe
A Haskell implementation of Fuzzy Identity Based Encryption modified to work over asymmetric bilinear pairing
https://github.com/pufferffish/fuzzyibe
cryptography haskell identity-based-encryption
Last synced: 8 days ago
JSON representation
A Haskell implementation of Fuzzy Identity Based Encryption modified to work over asymmetric bilinear pairing
- Host: GitHub
- URL: https://github.com/pufferffish/fuzzyibe
- Owner: pufferffish
- License: isc
- Created: 2021-11-16T01:10:28.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2021-12-26T18:47:20.000Z (almost 3 years ago)
- Last Synced: 2024-04-29T22:28:00.246Z (7 months ago)
- Topics: cryptography, haskell, identity-based-encryption
- Language: Haskell
- Homepage:
- Size: 20.5 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# fuzzyibe
A Haskell implementation of Fuzzy Identity Based Encryption, based on [Baek et al (2007)](https://eprint.iacr.org/2007/047.pdf "Baek et al (2007)"), modified to work over asymmetric bilinear pairing.## What is Fuzzy IBE
Fuzzy [Identity Based Encryption](https://en.wikipedia.org/wiki/Identity-based_encryption "Identity Based Encryption") is a form of IBE which allows using a set of attributes as an identity, while allowing a margin of error tolerance. For example, assume that Alice and Bob are in a Fuzzy IBE system where error tolerance is set to 2 *(d=2)*. Alice can possess the identity of {"accounting department", "senior staff", "manager"}, and Bob can encrypt a message encrypted for {"manager", "IT department", "senior staff", "CEO"}. Since Alice posseses 2 of the attributes ("senior staff", "manager"), Alice can decrypt the message, whereas she wouldn't be able to decrypt a message encrypted for {"manager", "IT department", "junior staff", "CEO"}, since Alice does not process at least *d* common attributes.## Example
An example implementation of the aforementioned scenario can be found in [Main.hs](examples/Main.hs).## Disclaimer
This project is created as a hobbyist project, and is not intended for any serious usage. The operations provided in the library, and elliptic curve library that this project is based on, are suspectible to timing attacks. Use at your own risk.## License
See [LICENSE](LICENSE).