Шпаргалка по названиям

Это просто шпаргалка перед погружением в исходники openSSL. Ибо в openSSL реализовано все, а нам надо подцепить к своему проекту и собрать только ограниченный функционал.

Симметричное шифрование:

DES Data Encryption Standart
AES Advanced Encryption Standard ( он же Rijndael) (размер блока 128 бит, ключ 128/192/256 бит)
RC4 - Rivest cipher 4 или Ron’s code
RC5 - Ron’s Code 5 или Rivest’s Cipher 5
RC6 -
XChaCha20

Ассиметричное шифрование:

RSA - Rivest Shamir Adleman
DSA - Digital Signature Algorithm
ECC - Elliptic Curve Cryptography
DH - Диффи-Хелманн

Выполнение Хэш функций

Это просто функции создания контрольной суммы фиксированного размера по данным произвольного размера. Алгоритм прост и известен всем.

MD4 Message Digest 4 (128-разрядное хеш-значение)
MD5 Message Digest 5 , 128-битный алгоритм хеширования
MD6
SHA-1 Secure Hash Algorithm 1 (160-битное (20 байт) хеш-значение)
SHA-2 - Secure Hash Algorithm Version 2 = (SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/256 и SHA-512/224)

ГОСТ Р 34.11-2012

ASN.1 Abstract Syntax Notation (.1)
SSL Secure Socket Layer
TLS Transport Layer Security

certmgr.msc

openssl

PKCS – Public-Key Cryptography Standards (стандарты криптографии с открытым ключом).
SHA – Secure Hash Algorithm (алгоритм криптографического хеширования)
PEM – Privacy Enhanced Mail (формат файлов для хранения и отправки криптографических ключей).
CBC Chiper Block Chaining
CSR Certificate Signing Request
EVP The EVP functions provide a high level interface to OpenSSL cryptographic functions.
eay Eric Andrew Young
hmac - keyed-hash message authentication code
dtls1 Datagram TLS
mdc2 - Modification Detection Code 2
ripemd (RIPE Message Digest) is a family of cryptographic hash function
SRP Secure Remote Password protocol is an augmented password-authenticated key exchange (PAKE) protocol
whirlpool (sometimes styled WHIRLPOOL) is a cryptographic hash function
bn big number
bf blowfish - is a symmetric-key block cipher
bio basic input output - an I/O stream abstraction
PSK - Pre-Shared Key (OPENSSL_NO_PSK)
PSK - Phase-shift keying

LHASH - This library implements type-checked dynamic hash tables (можно поизучать тут https://www.openssl.org/docs/man1.0.2/man3/lhash.html)

INCLUDEPATH в Qt накапливается в процессе сборки

Время действия сертификата

Хотелось бы иметь возможность , чтобы ключ переставал работать после определенной даты.

Но при шифрации / дешифрации дата/время нигде не участвуют как параметры (в openssl).

Код программы выполняемый на компьютере не может знать текущую дату/время гарантировано, так как время это абстракция человека, то есть вымышленное значение.

То есть без общения в внешним миром не обойтись. Гарантировать дату/время могут только внешние "доверительные" сервера.

На входе открытая часть ключа + текущая дата, на выходе зашифрованный файл, либо если дата не валидна - просто как-нибудь мусор.

Общепринятая практика: сертификат с истекшим сроком действия позволяет расшифровывать информацию, но не позволяет зашифровывать новую

TSA Time Stamping Authority

openssl-ts, ts - Time Stamping Authority tool (client/server)
openssl ts

How to build time-lock encryption

freetsa.org

Content-Type: application/timestamp-query

SaaS software as a service
CAdES - Расширенная электронная подпись CMS

GPG - GnuPrivacyGuard , Pretty Good Privacy
CRL Certificate Revocation List