Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/aead/poly
Package poly implements message authenticators based on polynomials
https://github.com/aead/poly
cryptography gcm golang poly1305
Last synced: about 1 month ago
JSON representation
Package poly implements message authenticators based on polynomials
- Host: GitHub
- URL: https://github.com/aead/poly
- Owner: aead
- License: mit
- Created: 2017-06-16T22:55:52.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-07-25T00:17:30.000Z (over 7 years ago)
- Last Synced: 2024-06-20T12:42:49.852Z (5 months ago)
- Topics: cryptography, gcm, golang, poly1305
- Language: Go
- Size: 2.93 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Polynomial authentication schemes
A polynomial authenticator is basically a message authentication scheme. Therefore
the polynomial authenticator takes a secret key and a message of arbitrary size and
computes a fixed size authentication tag.It is critical for the security of the authenticator that the one key is never used for more than one message - so never reuse a key. Authenticating two different messages with the same key allows an attacker to forge messages at will.
This package provides a general interface for polynomial authenticators and natively supports two commonly used polynomials:
- **GHASH** used by the AES-GCM AEAD construction
- **Poly1305** used by the ChaCha20Poly1305 AEAD constructionThose both polynomial authenticators are used in TLS.
### Install
Install in your GOPATH: `go get github.com/aead/poly`
### Performance
For GHASH benchmarks see: [GHASH implementation](https://github.com/aead/ghash)
For Poly1305 benchmarks see: [Poly1305 implementation](https://github.com/aead/poly1305)