Crypto ++ - Crypto++
Desenvolvedor (s) | originalmente Wei Dai , o projeto Crypto ++ desde 2015 |
---|---|
lançamento inicial | 1995 |
Versão estável | 8.6 / 24 de setembro de 2021
|
Repositório | |
Escrito em | C ++ |
Sistema operacional | Plataforma cruzada |
Modelo | Biblioteca de segurança |
Licença | Boost Software License (anteriormente Licença Crypto ++ ) / arquivos individuais para o domínio público |
Local na rede Internet | www |
Crypto ++ (também conhecido como CryptoPP , libcrypto ++ e libcryptopp ) é uma biblioteca de classes C ++ gratuita e de código aberto de algoritmos e esquemas criptográficos escritos por Wei Dai . Crypto ++ tem sido amplamente utilizado na academia, projetos de estudantes, projetos de código aberto e não comerciais, bem como empresas. Lançada em 1995, a biblioteca oferece suporte total às arquiteturas de 32 e 64 bits para muitos dos principais sistemas operacionais e plataformas, incluindo Android (usando STLport ), Apple (Mac OS X e iOS), BSD , Cygwin , IBM AIX e S / 390 , Linux , MinGW , Solaris , Windows , Windows Phone e Windows RT . O projeto também oferece suporte à compilação usando as bibliotecas de tempo de execução C ++ 03, C ++ 11, C ++ 14 e C ++ 17; e uma variedade de compiladores e IDEs , incluindo Borland Turbo C ++ , Borland C ++ Builder , Clang , CodeWarrior Pro , GCC (incluindo GCC da Apple), Intel C ++ Compiler (ICC) , Microsoft Visual C / C ++ e Sun Studio .
Crypto ++ 1.0 foi lançado em junho de 1995, mas o download não está mais disponível. O lançamento do Crypto ++ 1.0 foi retirado devido à RSA Data Security, Inc reivindicar direitos autorais sobre o algoritmo RSA . Todas as outras versões da biblioteca estão disponíveis para download.
Algoritmos
O Crypto ++ normalmente fornece implementações criptográficas completas e geralmente inclui esquemas menos populares e usados com menos frequência. Por exemplo, Camellia é uma cifra de bloco aprovada por ISO / NESSIE / IETF aproximadamente equivalente a AES , e Whirlpool é uma função hash aprovada por ISO / NESSIE / IETF aproximadamente equivalente a SHA ; ambos estão incluídos na biblioteca.
Além disso, a biblioteca Crypto ++ às vezes disponibiliza algoritmos e implementações propostos e inovadores para estudo pela comunidade criptográfica. Por exemplo, VMAC , um código de autenticação de mensagem baseado em hash universal , foi adicionado à biblioteca durante seu envio para a Internet Engineering Task Force (CFRG Working Group) ; e as curvas Brainpool, propostas em março de 2009 como um Internet Draft no RFC 5639, foram adicionadas ao Crypto ++ 5.6.0 no mesmo mês.
A biblioteca também disponibiliza primitivas para operações teóricas numéricas, como inteiros de multiprecisão rápidos; geração e verificação de números primos; aritmética de campos finitos, incluindo GF (p) e GF (2 n ); curvas elípticas; e operações polinomiais.
Além disso, a biblioteca retém uma coleção de algoritmos inseguros ou obsoletos para compatibilidade com versões anteriores e valor histórico: MD2, MD4, MD5, Panama Hash, DES, ARC4, SEAL 3.0, WAKE, WAKE-OFB, DESX (DES-XEX3), RC2, MAIS SEGURO, DE 3 VIAS, GOST, SHARK, CAST-128 e Square.
atuação
Em um documento do workshop ECRYPT de 2007 com foco em implementações de chave pública de oito bibliotecas , Ashraf Abusharekh e Kris Kaj descobriram que "Crypto ++ 5.1 [sic] lidera em termos de suporte para primitivos e esquemas criptográficos, mas é a mais lenta de todas as bibliotecas investigadas."
Em 2008, testes de velocidade realizados por Timo Bingmann usando sete bibliotecas de segurança de código aberto com 15 cifras de bloco , Crypto ++ 5.5.2 foi a biblioteca de melhor desempenho em duas cifras de bloco e não ficou abaixo do desempenho médio da biblioteca nas demais cifras de bloco .
Crypto ++ também inclui um recurso de auto-benchmarking, disponível na linha de comando ( cryptest.exe b ), cujos resultados estão disponíveis em Crypto ++ 5.6.0 Benchmarks .
Assim como muitas outras bibliotecas criptográficas disponíveis para arquiteturas x86 de 32 e 64 bits , Crypto ++ inclui rotinas de montagem para AES usando AES-NI . Com o AES-NI, o desempenho do AES melhora drasticamente: o rendimento do AES / GCM de 128 bits aumenta de aproximadamente 28,0 ciclos por byte para 3,5 ciclos por byte.
Lançamentos de versão
Crypto ++ 1.0 foi lançado em junho de 1995. Desde seu lançamento inicial, a biblioteca teve quase duas dezenas de revisões, incluindo uma mudança arquitetônica na versão 5.0. Houve dez lançamentos usando a arquitetura da versão 5.0 desde março de 2009.
Versão | Data de lançamento |
---|---|
Crypto ++ 6.0.0 | 22 de janeiro de 2018 |
Crypto ++ 6.1.0 | 22 de fevereiro de 2018 |
Crypto ++ 7.0.0 | 8 de abril de 2018 |
Crypto ++ 8.0.0 | 28 de dezembro de 2018 |
Crypto ++ 8.1.0 | 11 de fevereiro de 2019 |
Crypto ++ 8.2.0 | 28 de abril de 2019 |
Crypto ++ 8.3.0 | 20 de dezembro de 2020 |
Crypto ++ 8.4.0 | 2 de janeiro de 2021 |
Crypto ++ 8.5.0 | 7 de março de 2021 |
Crypto ++ 8.6.0 | 24 de setembro de 2021 |
A compilação de versões anteriores do Crypto ++ de Lawrence Teo, datando de 1995, pode ser encontrada nos arquivos do grupo de usuários.
Validações FIPS
Crypto ++ recebeu três validações de módulo do Federal Information Processing Standard (FIPS) 140-2 Nível 1 sem problemas de pós-validação.
Versão | Certificado | datas |
---|---|---|
Crypto ++ 5.0.4 | Certificado 343 | 05/09/2003, 28/10/2005 |
Crypto ++ 5.2.3 | Certificado 562 | 29/07/2005, 24/08/2005, 28/10/2005 |
Crypto ++ 5.3.0 | Certificado 819 | 13/08/2007, 17/08/2007 |
Crypto ++ foi movido para a Lista de Validação Histórica do CMVP em 2016. A mudança significa que a biblioteca não é mais validada.
Licenciamento
A partir da versão 5.6.1, Crypto ++ consiste apenas em arquivos de domínio público , com direitos autorais de compilação e uma única licença de código aberto para os direitos autorais de compilação:
A Licença do Crypto ++ é um tanto incomum entre os projetos de código aberto. É feita uma distinção entre a biblioteca como uma compilação (ou seja, coleção), que é protegida por direitos autorais por Wei Dai , e os arquivos individuais nela, que são de domínio público . A biblioteca é protegida por copyright como uma compilação para colocar certas isenções de responsabilidade (em relação à garantia, exportação e patentes) na licença e para manter as atribuições e declarações de domínio público intactas quando Crypto ++ é distribuído na forma de código-fonte. O fato de arquivos individuais serem de domínio público significa que legalmente você pode colocar segmentos de código, arquivos inteiros ou pequenos conjuntos de arquivos (até o limite definido pelo uso justo) em seu próprio projeto e fazer o que quiser com eles, sem se preocupar com o direito autoral.
Veja também
Referências
links externos
- Website oficial
- Projeto Crypto ++ GitHub
- Lista de projetos que usam Crypto ++ (inclui projetos sem fins lucrativos e com fins lucrativos)
- Grupo de usuários Crypto ++