Сурет 11 Java тілінде BigInteger және BigDecimal кластарын қолданып, қарапайым амалдарды орындау
Программа қарапайым көбейту мен алу амалдарын орындады, нәтижесі төменде (12 – сурет):
Сурет 12 Программа нәтижесі
Python-ның үлкен сандармен жұмыс жасауға арналған кітапханалары
Python – 1991 жылы 20 ақпанда нидерландия программисті Гвидо ван Россум ойлап тапқан программисттердің жоғары өнімділігіне және кодтық жеңіл оқылуына негізделген ортақ қолданыстағы жоғары деңгейлі программалау тілі. Python ядросының синтаксисі минималданған. Оған қоса бұл тілдің екі версиясында (2.х, 3.х) стандартты кітапханалары үлкен көлемдегі пайдалы фунциялармен қамтылған.
Қазіргі таңда Python тілінің жылдан-жылға қарқынды дамуының арқасында, бұл тілде криптография, оның ішінде үлкен сандармен жұмыс жасауға арналған көптеген кітапханалар бар. Оларға Numpy, Crypto, Pycrypto, SageMath, PyCryptodome және т.б. кітапханалар жатады [15].
2.2.4 Crypto++, libgcrypt, PyСryptodome криптографиялық кітапханалары
Crypto++ (CryptoPP, libcrypto++ және libcryptopp) – 1995 жылы қытайдың компьютер инженері Вэй Дай С++ тілінде криптографиялық алгоритмдермен және схемалармен ашық бастапқы кодпен жазылған кітапхана. Бұл кітапхана 1995 жылы шыққанымен, 32-разрядты және 64-разрядты архитектурадағы басты көптеген Windows, Apple, Linux, Android, Solaris сияқты операциондық жүйелер мен платформаларды қолдайтын болған.
Crypto++ кітапханасына AES шифрына ұқсайтын Camellia блоктық шифры, SHA-ға ұқсайтын Whilpool хэш-функциялары қосылған. Оған қоса, Crypto++ кітапханасының кейінгі бөлімдерінде генерация, жай сандарды тексеру, полиномалармен орындалатын операциялар сияқты теория-сандық операциялармен жұмыс жасауға арналған примитивтер қолжетімді болды.
FIPS 140-2 терминологиясында Crypto++ кітапханасы көпчипті автономды модуль ретінде классификацияланады. Бұл кітапхана бекітілген криптографиялық алгоритмдерден тұрғандықтан, кітапхананың 32-битті және 64 битті версиялары FIPS 140-2-нің 1 бөліміндегі барлық қауіпсіздік талаптарына сай.
Кесте 4
Crypto++-тің алгоритмдері мен жүзеге асырулары
Примитив немесе операция
|
Алгоритмдер немесе жүзеге асырулар
|
Кездейсоқ сандар генераторы
|
LCG, KDF2, Blum Blum Shub, ANSI X9.17, Mersenne Twister, RDRAND және RDSEED
|
Жылдам ағымдық шифрлар
|
ChaCha8/12/20, HC-128 и HC-256, Panama, Rabbit, Salsa20, SOSEMANUK, XSalsa20
|
AES және AES candidates
|
Rijndael (AES selection), RC6, MARS, Twofish, Serpent, CAST-256
|
Блоктық шифрлар
|
ARIA, Blowfish, Camellia, CHAM, HIGHT, IDEA, Kalyna (128/256/512), LEA, RC5, SEED, SHACAL-2, Simon және Speck (64/128), SIMECK, Skipjack, SM4, TEA, Threefish (256/512/1024), XTEA
|
Блоктық шифрдың әдістері
|
ECB, CBC, CTS, CFB, OFB, CTR
|
Аутентификация тексерісімен шифрлау режимдері
|
CCM, GCM, EAX
|
Блоктық шифрлардың толтырылу схемасы
|
PKCS#5, PKCS#7, Zeros, One and zeros, W3C Padding
|
Хабарламаларды аутентификациялау коды
|
VMAC, HMAC, CMAC, CBC-MAC, DMAC, Two-Track-MAC
|
Криптографиялық хэш-функция
|
BLAKE2 (BLAKE2b және BLAKE2s), Keccak, SHA-1, SHA-2 (SHA-224, SHA-256, SHA-384, және SHA-512), SHA3, Tiger, WHIRLPOOL, RIPEMD(RIPEMD-128, RIPEMD-160, RIPEMD-256, және RIPEMD-320)
|
Ашық кілтті криптография
|
RSA, DSA, ElGamal, Nyberg-Rueppel (NR), Rabin-Williams (RW), LUC, LUCELG, DLIES, ESIGN, curve25519
|
Ашық кілтті жүйелердің толтырылу схемалары
|
PKCS#1 v2.0, OAEP, PSS, PSSR, IEEE P1363, EMSA2 және EMSA5
|
Эллипстік қисықтар криптографиясы
|
ECDSA, ECNR, ECIES, ECDH, ECMQV
|
Crypto++ 5.6.1 версиясынан бастап, бұл кітапхана компиляцияға тек авторлық құқықтармен қолжетімді файлдар және ашық бастапқы кодтардан тұрады.
Libgcrypt – төмен деңгейдегі криптографиялық механизмдерге жоғары деңгейлі механизмдерді ұсынатын кітапхана. Кітапхана GNUPG жобасының аясында жазылып, LGPL лицензиясымен тарайды.
Кесте 5
Libgcrypt-тің алгоритмдері мен жүзеге асырулары
Операциялар мен притивтер
|
Алгоритмдер немесе жүзеге асырулар
|
Симметриялық шифрлар
|
AES (128, 192, 256 бит), DES, 3DES, IDEA, CAST5, Blowfish, Twofish (128, 256 бит), Ron's Cipher 2/RC2 (40, 128 бит), ARCfour/RC4, SEED, Serpent (128, 192, 256 бит), Camellia (128, 192, 256 бит), Salsa20, Salsa20/12, ChaCha20, ГОСТ 28147-89
|
Шифрлау режимдері
|
ECB, CFB, CBC, OFB, CTR, AES-Wrap (RFC 3394), CCM, GCM, Stream, OCB, EAX, XTS
|
Ашық кілтті алгоритмдері
|
RSA, ElGamal, DSA, ECDSA, EdDSA, DH, EDH, ECDH
|
Хештеу алгоритмдері
|
MD2, MD4, MD5, SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA3-224, SHA3-256, SHA3-384, SHA3-512, SHAKE128, SHAKE256, RIPEMD-160, TIGER/192, TIGER1, TIGER2, Whirlpool, CRC-24, CRC-32, CRC-32, ГОСТ Р 34.11-94, ГОСТ Р 34.11- 2012, SM3, BLAKE2b (128, 160, 224, 256 бит), BLAKE2s (160, 256, 384, 512 Bits)
|
Хабарламаларды аутентификациялау коды
|
HMAC – барлық хэштеу алгоритмдеріне қолданылады, CMAC – барлық шифрлау алгоритмдеріне қолданылады, GMAC – шифрлеудің кейбір алгоритмдеріне қолданылады, Poly1305
|
Эллипстік қисықтар криптографиясы
|
NIST (P-256, P-384, P-521), SECG (secp256k1), ECC Brainpool/RFC 5639 (P256r1, P384r1, P512r1), Бернштейн (Curve25519), ГОСТ Р (RFC 5832, RFC 7091)
|
PyCryptodome – төмен деңгейдегі криптографиялық примитивтердегі Python-ның автономды кітапханасы. Бұл кітапхана Python 2.6, Python 2.7, Python 3.4 және басқада жаңа вирсияларын, оған қоса PyPy-ды қолдайды.
PyCryptodome кітапханасының орнатылуы, оның қай пакетте болу керектігіне байланысты. PyCryptodome кітапханасы келесідей қолданылуы мүмкін:
PyCrypto кітапханасының орнына толық ауыстырылу. Бұл жағдайда барлық модулдер Crypto пакетімен орнатылады. Оған қоса, PyCrypto мен PyCryptodome бір уақытта орнатпаған жөн.Орнатылу командасы:
pip install pycryptodome
Ескі PyCrypto тәуелсіз кітапхана. Бұл жағдайда барлық модулдер Cryptodome пакетімен орнатылады. Ал PyCrypto мен PyCryptodome бірге орнатыла алады. Орнатылу командасы:
pip install pycryptodomex
Кесте 6
PyCryptodome кітапханасының PyCrypto++ кітапханасымен қосымша алынған алгоритмдері мен жүзеге асырулары
Примитив немесе операция
|
Алгоритмдер немесе жүзеге асырулар
|
Жылдам ағымдық шифрлар
|
XChaCha20
|
AES және AES candidates
|
Intel платформасындағы AES-тің жылдамдатылған түрі
|
|
Достарыңызбен бөлісу: |