Das Makefile wurde von Rinick geschrieben und kann unter bcc (
[email protected]) in lib kompiliert werden.
Unter dem komprimierten Paket befinden sich 4 Verzeichnisse
lib: Enthält lib-Dateien (und entsprechende Quelldateien als Referenz). Kopieren Sie die beiden Dateien goozo_crypt.obj und tomcrypt.lib vor der Verwendung in das lib-Verzeichnis von C++builder.
include: Header-Datei, kopieren Sie sie vor der Verwendung in das Include-Verzeichnis von C++builder
docs(tom): Tom stellt eine PDF-Beschreibung der Verschlüsselungsfunktionsbibliothek bereit (wenn Sie mehr über die Funktionen erfahren möchten, können Sie die Kommentare in der Header-Datei und der Quelldatei lesen)
Rinicks ECC: Ein Beispiel und Schlüsselgenerator für die asymmetrische Kryptographie mit elliptischen Kurven
Mehrere Grundfunktionen sind in unabhängige Funktionen gekapselt, wodurch sie einfacher zu verwenden sind.
Nach #include
können Sie die folgende Funktion zum Verschlüsseln verwenden: ltc_eax_encrypt(&aes_desc, "111", "222", pchar, pcharC, 300);
Es gibt 300 Bytes Inhalt in pchar, der verschlüsselt und in pcharC gespeichert wird. Das Benutzerkennwort ist 111 (AnsiString).
222 ist das Systempasswort (AnsiString), das Ihr AES-System von anderen unterscheidet. Es kann als zweischichtiges Passwort betrachtet werden.
aes_desc ist die Verschlüsselungsmethode, die Optionen sind:
blowfish_desc, rc5_desc, rc6_desc, rc2_desc, sicherer_k64_desc, sicherer_k128_desc, sicherer_sk64_desc, sicherer_sk128_desc, rijndael_desc, aes_desc, rijndael_enc_desc, aes_enc_desc, xtea_desc, twofish _desc, des_ desc, des3_desc, cast5_desc, noekeon_desc, skipjack_desc, khazad_desc, anubis_desc
Wenn kein besonderer Bedarf besteht, verwenden Sie einfach aes zum Entschlüsseln: ltc_eax_decrypt(&aes_desc, "111", "222", pcharC, pcharP, 300);
Es gibt 300 Bytes verschlüsselten Inhalts in pcharC. Nach der Entschlüsselung werden diese in pcharP gespeichert. Die übrigen Parameter sind die gleichen wie in der Speicherzusammenfassung: AnsiString hash=ltc_hash_mem(&md5_desc, pchar, 800);
Der Inhalt von pchar beträgt 800 Byte, und sein MD5-Digest wird im Hash gespeichert
md5_desc ist der Zusammenfassungsmodus. Die Optionen sind:
chc_desc, whirlpool_desc, sha512_desc, sha384_desc, sha256_desc, sha224_desc, sha1_desc, md5_desc, md4_desc, md2_desc, tiger_desc, rmd128_desc, rmd160_desc
Bei hohen Sicherheitsanforderungen wird sha512 oder sha384 empfohlen. Im Allgemeinen reicht md5 aus. Dateizusammenfassung: AnsiString hash=ltc_hash_file(&md5_desc, "C:\1.txt");
Berechnen Sie den Digest der Datei C:1.txt und speichern Sie ihn im Hash. Die übrigen Parameter sind die gleichen wie oben.
Weitere Funktionen finden Sie in den PDF-Anleitungen und Quelldateien
Die Verschlüsselungsfunktionsbibliothek unterstützt die folgenden Verschlüsselungsfunktionen, die eine Unterstützung für die Verschlüsselung sehr großer Ganzzahlbibliotheken bieten
Kugelfisch
XTEA
RC5
RC6
SICHERER+
Rijndael (auch bekannt als AES)
Zweifisch
SICHERER (K64, SK64, K128, SK128)
RC2
DES, 3DES
CAST5
Noekeon
Skipjack
Anubis (mit optionaler Optimierung, wie von den Entwicklern vorgeschlagen)
Khazad
Verkettungsmodi (Ich verwende diesen Teil nicht, ich weiß nicht, wie ich ihn übersetzen soll)
Die Modi verfügen über eine Start-, Verschlüsselungs-/Entschlüsselungs- und Set/Get-IV-Schnittstelle.
Modus unterstützt.
EZB
CBC
OFB
CFB
CTR
Die von der Einweg-Hash-Funktion unterstützte Hash-Methode.
MD2
MD4
MD5 (häufiger verwendet)
SHA-1
SHA-224/256/384/512 (Empfohlen von Rinick)
TIGER-192
RIPE-MD 128/160
WHIRLPOOL
Informationsauthentifizierung
FIPS-198 HMAC (unterstützt alle Hash-Funktionen)
CMAC, auch bekannt als
OMAC1
(Unterstützt alle Verschlüsselungsfunktionen)
PMAC-Authentifizierung
Pelikan MAC
Authentifizierungsmodus für die Informationsverschlüsselung
EAX-Modus
OCB-Modus
CCM-Modus (NIST-Spezifikation)
GCM-Modus (IEEE-Spezifikation)
Pseudozufallszahlengenerator (wird von einigen anderen Funktionen verwendet)
Schafgarbe (basierter Algorithmus)
RC4
Unterstützt /dev/random, /dev/urandom und Win32 CSP RNG
Fortuna
NÜCHTER-128
Public-Key-Algorithmus
RSA (mit PKCS #1 v2.1)
ECC (EC-DSA X9.62 digitaler Signaturstandard, X9.63 EC-DH, Schlüsselaustauschstandard)
Rinick fügte eine ECC-Verschlüsselungs- und Entschlüsselungsfunktion hinzu, um Funktionen wie die Softwareregistrierung zu implementieren.
DSA (Benutzer können ihren eigenen Algorithmus zum Erstellen digitaler Signaturen definieren)
Andere Standards werden unterstützt
PKCS #1 (v2.1-Auffüllung)
PKCS #5
ASN.1 DER für die Typen SEQUENCE, INTEGER, BIT STRING, OCTET STRING, OBJECT IDENTIFIER, IA5 STRING, PRINTABLE STRING, UTCTIME, CHOICE und NULL.