Zum Hauptinhalt springen

Suite25519 ist eine kryptografische Bibliothek für reale Vermögenswerte, die sicher, einfach und effizient ist. Sie wurde im Rahmen des LEA Blockchain-Ökosystems entwickelt und richtet sich an Entwickler, die leistungsstarke Krypto-Tools mit minimalem Overhead benötigen.


Suite25519 basiert auf den ausgezeichneten Paketen @noble/ciphers, @noble/curves und @noble/hashes und baut auf diesen geprüften, leistungsfähigen Bibliotheken auf, um Entwicklern, die kryptografische Fähigkeiten ohne Overhead benötigen, eine saubere, minimale API zur Verfügung zu stellen.

Suite25519 kryptografische Bibliothek für reale Werte

Was es bewirkt

Suite25519 bietet eine fokussierte Suite von kryptographischen Funktionen, die auf Ed25519 und X25519 aufbauen, mit Unterstützung für moderne CBOR-Serialisierung und isomorphe Nutzung in verschiedenen Umgebungen.

Diese kryptografische Bibliothek für reale Werte umfasst...

  • Generierung von Schlüsselpaaren
    Generierung von Ed25519-Schlüsselpaaren für die sichere Signierung und Identifizierung von Nachrichten.
  • Digitale Signaturen
    Signieren Sie Nachrichten mit Ed25519 und verifizieren Sie die Authentizität mit minimalen API-Reibungen.
  • Signaturprüfung
    Überprüfen Sie signierte Nutzdaten, um die Integrität der Daten und die Authentizität der Quelle sicherzustellen.
  • Verschlüsselung über ECIES
    Verschlüsseln Sie Daten mit dem Elliptic Curve Integrated Encryption Scheme (X25519 + HKDF-SHA256 + AES-GCM-SIV), um Vertraulichkeit und Integrität zu gewährleisten.
  • Entschlüsselung über ECIES
    Entschlüsseln Sie eingehende Nutzdaten, die mit Ihrem öffentlichen Schlüssel verschlüsselt sind.
  • Kombinierte Operationen
    Müssen Sie erst signieren und dann verschlüsseln oder entschlüsseln und dann verifizieren? Suite25519 macht diese kombinierten Aktionen ergonomisch und sicher.
  • CBOR Serialisierung
    Nutzt cbor für kompakte, effiziente Binärkodierung. Enthält Hilfsprogramme für den base64-Export/Import von Schlüsseln.
  • Isomorphe Unterstützung
    Einmal schreiben, überall ausführen: funktioniert in Node.js (v16+) und modernen Browsern, die Web Crypto API unterstützen. Verwendet native TextEncoder/TextDecoder und base64-Helfer wie atob/btoa.

Erste Schritte

0. Installation über npm:

npm install @leachain/suite25519
  1. Schlüssel generieren und eine Nachricht signieren
import { PrivateKey, signMessage } from './suite25519.js';

// Generate a new identity (key pair)
const myPrivateKey = PrivateKey.randomPrivateKey();
const myPublicKey = myPrivateKey.publicKey;

// Create a signature for a message
const message = "This is my message";
const signedPayload = signMessage(message, myPrivateKey, true, true); // Include msg & key

console.log("Message signed successfully! Payload contains signature, message, and public key.");
// You would typically send 'signedPayload' (Uint8Array) to someone who has 'myPublicKey' to verify.For encryption:

2. Verschlüsseln und Entschlüsseln einer Nachricht

Hier wird gezeigt, wie eine Nachricht verschlüsselt wird, so dass nur der vorgesehene Empfänger (der den entsprechenden privaten Schlüssel besitzt) sie lesen kann.

import { PrivateKey, encryptMessage, decryptMessage } from './suite25519.js';

// Assume we have the recipient's public key
const recipientPrivateKey = PrivateKey.randomPrivateKey(); // Recipient keeps this secret
const recipientPublicKey = recipientPrivateKey.publicKey; // This is shared publicly

// Encrypt a secret message for the recipient
const secret = "Meet me at midnight";
const encryptedPayload = encryptMessage(secret, recipientPublicKey);

// Only the recipient can decrypt it
const decryptedBytes = decryptMessage(encryptedPayload, recipientPrivateKey);

console.log("Message encrypted and decrypted successfully.");
// console.log("Decrypted:", new TextDecoder().decode(decryptedBytes)); // "Meet me at midnight"

3. Signieren-verschlüsseln & entschlüsseln-verifizieren

Dabei werden Signierung und Verschlüsselung kombiniert. Die Nachricht wird zunächst vom Absender signiert und dann für den Empfänger verschlüsselt. Der Empfänger entschlüsselt sie und prüft dann die Signatur des Absenders, wodurch sowohl die Vertraulichkeit als auch die Authentizität gewährleistet werden.

import { PrivateKey, signAndEncryptMessage, decryptAndVerifyMessage } from './suite25519.js';

// Keys for sender and recipient
const senderPrivateKey = PrivateKey.randomPrivateKey();
const senderPublicKey = senderPrivateKey.publicKey;
const recipientPrivateKey = PrivateKey.randomPrivateKey();
const recipientPublicKey = recipientPrivateKey.publicKey;

// Message to send securely and with proof of origin
const importantMessage = "Order confirmed: #12345";

// Sender signs *then* encrypts
const signedEncryptedPayload = signAndEncryptMessage(
    importantMessage,
    senderPrivateKey,       // Sign with sender's private key
    recipientPublicKey      // Encrypt for recipient's public key
);

// Recipient decrypts *then* verifies
const originalVerifiedBytes = decryptAndVerifyMessage(
    signedEncryptedPayload,
    recipientPrivateKey,    // Decrypt with recipient's private key
    senderPublicKey         // Verify against sender's public key
);

console.log("Message securely transmitted and sender verified.");
// console.log("Original Message:", new TextDecoder().decode(originalVerifiedBytes)); // "Order confirmed: #12345"

Mehr erfahren

Egal, ob Sie mit LEA oder anderswo bauen, Suite25519 ist eine kryptografische Bibliothek für reale Werte, die Sicherheit und Einfachheit in den Vordergrund stellt.

Sehen Sie sich die Dokumentation an oder erkunden Sie den Quellcode auf GitHub. Suite25519 befindet sich in aktiver Entwicklung, wobei Sicherheit und Einfachheit im Mittelpunkt stehen.

Wenn Sie mit LEA arbeiten oder einfach nur zuverlässige Kryptoprimitive mit einer einfachen API benötigen, ist Suite25519 die richtige Wahl für Sie.

Sicher. Einfach. Suite25519.

Folgen Sie uns: Facebook | Twitter | Github

Zentrum für Datenschutzpräferenzen