Makefile ditulis oleh Rinick dan dapat dikompilasi ke dalam lib di bawah bcc (
[email protected])
Ada 4 direktori di bawah paket terkompresi
lib: Berisi file lib (dan file sumber terkait untuk referensi). Salin kedua file goozo_crypt.obj dan tomcrypt.lib ke direktori lib C++builder sebelum digunakan.
include: file header, salin ke direktori include C++builder sebelum digunakan
docs(tom): tom memberikan deskripsi pdf tentang pustaka fungsi enkripsi (jika Anda ingin tahu lebih banyak tentang fungsinya, Anda dapat membaca komentar di file header dan file sumber)
ECC Rinick: Contoh dan generator kunci untuk kriptografi asimetris kurva elips
Beberapa fungsi dasar diringkas menjadi fungsi independen, sehingga lebih mudah digunakan.
Setelah #include
, Anda dapat menggunakan fungsi berikut untuk mengenkripsi: ltc_eax_encrypt(&aes_desc, "111", "222", pchar, pcharC, 300);
Ada 300 byte konten di pchar, yang dienkripsi dan disimpan ke pcharC. Kata sandi pengguna adalah 111 (AnsiString)
222 adalah kata sandi sistem (AnsiString), yang membuat sistem aes Anda berbeda dari yang lain. Ini dapat dianggap sebagai kata sandi dua lapis.
aes_desc adalah metode enkripsi, pilihannya adalah:
blowfish_desc, rc5_desc, rc6_desc, rc2_desc, lebih amanp_desc, lebih aman_k64_desc, lebih aman_k128_desc, lebih aman_sk64_desc, lebih aman_sk128_desc, rijndael_desc, aes_desc, rijndael_enc_desc, aes_enc_desc, xtea_desc, twofish_desc, des_ de sc, des3_desc, cast5_desc, noekeon_desc, skipjack_desc, khazad_desc, anubis_desc
Jika tidak ada kebutuhan khusus, cukup gunakan aes untuk mendekripsi: ltc_eax_decrypt(&aes_desc, "111", "222", pcharC, pcharP, 300);
Ada 300 byte konten terenkripsi di pcharC. Setelah dekripsi, konten tersebut disimpan ke pcharP. Parameter lainnya sama dengan ringkasan memori: AnsiString hash=ltc_hash_mem(&md5_desc, pchar, 800);
Ada 800 byte konten di pchar, dan intisari MD5-nya disimpan dalam hash
md5_desc adalah mode ringkasan, pilihannya adalah:
chc_desc, pusaran air_desc, sha512_desc, sha384_desc, sha256_desc, sha224_desc, sha1_desc, md5_desc, md4_desc, md2_desc, Tiger_desc, rmd128_desc, rmd160_desc
Jika persyaratan keamanan tinggi, disarankan sha512 atau sha384. Secara umum, md5 sudah cukup. Ringkasan file: AnsiString hash=ltc_hash_file(&md5_desc, "C:\1.txt");
Hitung intisari file C:1.txt dan simpan dalam hash. Parameter lainnya sama seperti di atas.
Untuk fungsi lainnya, silakan lihat instruksi pdf dan file sumber
Pustaka fungsi enkripsi mendukung fungsi enkripsi berikut yang menyediakan dukungan enkripsi pustaka bilangan bulat yang sangat besar
ikan buntal
XTEA
RC5
RC6
LEBIH AMAN+
Rijndael (alias AES)
Dua ikan
LEBIH AMAN (K64, SK64, K128, SK128)
RC2
DES, 3DES
PEMERAN5
Noekeon
Cakalang
Anubis (dengan penyesuaian opsional seperti yang diusulkan oleh pengembang)
Khazad
Mode Chaining (Saya tidak menggunakan bagian ini, saya tidak tahu cara menerjemahkannya)
Mode hadir dengan antarmuka awal, enkripsi/dekripsi, dan set/dapatkan IV.
Modus didukung.
ECB
KBK
OFB
CFB
RKT
Metode hash didukung oleh fungsi Hash satu arah.
MD2
MD4
MD5 (lebih umum digunakan)
SHA-1
SHA-224/256/384/512 (Direkomendasikan oleh Rinick)
HARIMAU-192
MATANG-MD 128/160
PUSARAN AIR
Otentikasi informasi
FIPS-198 HMAC (mendukung semua fungsi hash)
CMAC, juga dikenal sebagai
OMAC1
(Mendukung semua fungsi enkripsi)
Otentikasi PMAC
Pelikan MAC
Mode otentikasi enkripsi informasi
Modus EAX
Modus OCB
Mode CCM (spesifikasi NIST)
Mode GCM (spesifikasi IEEE)
Generator bilangan acak semu (digunakan oleh beberapa fungsi lain)
Yarrow (algoritma berbasis)
RC4
Mendukung /dev/random, /dev/urandom dan Win32 CSP RNG
Keberuntungan
SADAR-128
algoritma kunci publik
RSA (menggunakan PKCS #1 v2.1)
ECC (standar tanda tangan digital EC-DSA X9.62, X9.63 EC-DH, standar pertukaran kunci)
Rinick menambahkan fungsi enkripsi dan dekripsi ECC untuk mengimplementasikan fungsi seperti registrasi perangkat lunak.
DSA (pengguna dapat menentukan algoritma mereka sendiri untuk membuat tanda tangan digital)
Standar lain didukung
PKCS #1 (padding v2.1)
PKCS#5
ASN.1 DER untuk tipe SEQUENCE, INTEGER, BIT STRING, OCTET STRING, OBJECT IDENTIFIER, IA5 STRING, PRINTABLE STRING, UTCTIME, CHOICE dan NULL.