Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tniessen/cubicrypt
Secure datagram transmissions over untrusted channels, designed for CubeSats 📡🔐🛰
https://github.com/tniessen/cubicrypt
authenticated-encryption authentication communication cubesat embedded encryption ground-station protocol satellite space
Last synced: 27 days ago
JSON representation
Secure datagram transmissions over untrusted channels, designed for CubeSats 📡🔐🛰
- Host: GitHub
- URL: https://github.com/tniessen/cubicrypt
- Owner: tniessen
- License: mit
- Created: 2023-06-22T12:13:51.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-04-15T10:47:54.000Z (8 months ago)
- Last Synced: 2024-05-01T21:21:46.462Z (8 months ago)
- Topics: authenticated-encryption, authentication, communication, cubesat, embedded, encryption, ground-station, protocol, satellite, space
- Language: C
- Homepage:
- Size: 102 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Cubicrypt
This project implements a small mechanism for authentication and encryption of
datagrams for secure transmission over untrusted (simplex or duplex) channels.The protocol is designed to be simple, almost stateless, and reliable and secure
even across system malfunctions that are likely to occur on embedded devices in
space. The library minimizes write operations to persistent storage to reduce
wear and delays and does not require a cryptographically secure source of
randomness for basic operation.See [Cubicrypt protocol][] for a detailed description of the protocol.
The only required cryptographic primitive is [AES][]. It is used with a 256-bit
primary key to derive 128-bit session keys, which are again used with [AES][] in
[Galois/Counter Mode (GCM)][]. Even on embedded devices, AES-GCM often benefits
from hardware acceleration.The optional key exchange extension is based on [X25519][] and [SHA-256][].
Cubicrypt supports the following implementations of the required cryptographic
primitives:- [CycloneCRYPTO][]
- [gcrypt][]
- [Mbed TLS][]
- [Nettle][]
- [OpenSSL][] (default)
- [STM32 cryptographic library (CMOX)][][AES]: https://en.wikipedia.org/wiki/Advanced_Encryption_Standard
[Cubicrypt protocol]: ./PROTOCOL.md
[CycloneCRYPTO]: https://oryx-embedded.com/products/CycloneCRYPTO.html
[Galois/Counter Mode (GCM)]: https://en.wikipedia.org/wiki/Galois/Counter_Mode
[Mbed TLS]: https://github.com/ARMmbed/mbedtls
[Nettle]: https://github.com/gnutls/nettle
[OpenSSL]: https://github.com/openssl/openssl
[SHA-256]: https://en.wikipedia.org/wiki/SHA-2
[STM32 cryptographic library (CMOX)]: https://www.st.com/en/embedded-software/x-cube-cryptolib.html
[X25519]: https://en.wikipedia.org/wiki/Curve25519
[gcrypt]: https://github.com/gpg/libgcrypt