O makefile foi escrito por Rinick e pode ser compilado em lib em Cco (
[email protected])
Existem 4 diretórios no pacote compactado
lib: Contém arquivos lib (e arquivos de origem correspondentes para referência). Copie os dois arquivos goozo_crypt.obj e tomcrypt.lib para o diretório lib do construtor C++ antes de usar.
include: arquivo de cabeçalho, copie-o para o diretório include do construtor C++ antes de usar
docs(tom): tom fornece uma descrição em pdf da biblioteca de funções de criptografia (se você quiser saber mais sobre as funções, você pode ler os comentários no arquivo de cabeçalho e no arquivo de origem)
ECC de Rinick: um exemplo e gerador de chaves para criptografia assimétrica de curva elíptica
Várias funções básicas são encapsuladas em funções independentes, tornando-as mais fáceis de usar.
Após #include
, você pode usar a seguinte função para criptografar: ltc_eax_encrypt(&aes_desc, "111", "222", pchar, pcharC, 300);
Existem 300 bytes de conteúdo em pchar, que são criptografados e salvos em pcharC. A senha do usuário é 111 (AnsiString).
222 é a senha do sistema (AnsiString), o que torna seu sistema AES diferente dos outros. Pode ser considerada uma senha de duas camadas.
aes_desc é o método de criptografia, as opções são:
blowfish_desc, rc5_desc, rc6_desc, rc2_desc, saferp_desc, safer_k64_desc, safer_k128_desc, safer_sk64_desc, safer_sk128_desc, rijndael_desc, aes_desc, rijndael_enc_desc, aes_enc_desc, xtea_desc, twofish_desc, s_desc, des3_desc, cast5_desc, noekeon_desc, skipjack_desc, khazad_desc, anubis_desc
Se não houver necessidade especial, basta usar aes para descriptografar: ltc_eax_decrypt(&aes_desc, "111", "222", pcharC, pcharP, 300);
Existem 300 bytes de conteúdo criptografado em pcharC. Após a descriptografia, ele é salvo em pcharP. Os parâmetros restantes são iguais ao resumo da memória: AnsiString hash=ltc_hash_mem(&md5_desc, pchar, 800);
Existem 800 bytes de conteúdo no pchar, e seu resumo MD5 é salvo no hash
md5_desc é o modo de resumo, as opções são:
chc_desc, redemoinho_desc, sha512_desc, sha384_desc, sha256_desc, sha224_desc, sha1_desc, md5_desc, md4_desc, md2_desc, tigre_desc, rmd128_desc, rmd160_desc
Se os requisitos de segurança forem altos, recomenda-se sha512 ou sha384. Geralmente, md5 é suficiente. Resumo do arquivo: AnsiString hash=ltc_hash_file(&md5_desc, "C:\1.txt");
Calcule o resumo do arquivo C:1.txt e armazene-o no hash. Os parâmetros restantes são iguais aos anteriores.
Para outras funções, consulte as instruções em PDF e os arquivos de origem
A biblioteca de funções de criptografia suporta as seguintes funções de criptografia que fornecem um suporte de criptografia de biblioteca de números inteiros muito grande
Baiacu
XTEA
RC5
RC6
MAIS SEGURO+
Rijndael (também conhecido como AES)
Dois peixes
MAIS SEGURO (K64, SK64, K128, SK128)
RC2
DES, 3DES
STARRING5
Noekeon
Skipjack
Anubis (com ajuste opcional proposto pelos desenvolvedores)
Khazad
Modos de encadeamento (não uso essa parte, não sei como traduzir)
Os modos vêm com interfaces iniciar, criptografar/descriptografar e definir/obter IV.
Modo suportado.
BCE
hemograma completo
OFB
CFB
CTR
O método hash suportado pela função Hash unidirecional.
MD2
MD4
MD5 (mais comumente usado)
SHA-1
SHA-224/256/384/512 (recomendado por Rinick)
TIGRE-192
MADURO-MD 128/160
HIDROMASSAGEM
Autenticação de informações
FIPS-198 HMAC (suporta todas as funções hash)
CMAC, também conhecido como
OMAC1
(Suporta todas as funções de criptografia)
Autenticação PMAC
Pelicano MAC
Modo de autenticação de criptografia de informações
Modo EAX
Modo OCB
Modo CCM (especificação NIST)
Modo GCM (especificação IEEE)
Gerador de números pseudo-aleatórios (usado por algumas outras funções)
Yarrow (algoritmo baseado)
RC4
Suporta /dev/random, /dev/urandom e Win32 CSP RNG
Fortuna
SOBER-128
algoritmo de chave pública
RSA (usando PKCS #1 v2.1)
ECC (padrão de assinatura digital EC-DSA X9.62, X9.63 EC-DH, padrão de troca de chaves)
Rinick adicionou uma função de criptografia e descriptografia ECC para implementar funções como registro de software.
DSA (os usuários podem definir seu próprio algoritmo para criar assinaturas digitais)
Outros padrões suportados
PKCS #1 (preenchimento v2.1)
PKCS#5
ASN.1 DER para tipos SEQUENCE, INTEGER, BIT STRING, OCTET STRING, OBJECT IDENTIFIER, IA5 STRING, PRINTABLE STRING, UTCTIME, CHOICE e NULL.