Golang implementation of cryptographic algorithms designed in Republic of Korea
It is intended for compatibility with go's crypto package.
krypto supports SIMD for some algorithms.
go get -v " github.com/RyuaNerin/go-krypto" package main import ( ... krypto "github.com/RyuaNerin/go-krypto" ... ) Algorithm Package Reference 128 192 256 SIMD Supports SEED-128 krypto/seed TTAS.KO-12.0004/R1 O HIGHT krypto/hight TTAS.KO-12.0040/R1 O ARIA krypto/aria KS X 1213-1 O O O arm64(NEON), amd64(SSSE3) LEA krypto/lea TTAK.KO-12.0223 O O O arm64(NEON), amd64(SSE2, AVX2)
package lea supports 4-block(SSE2) and 8-block(AVX2) ECB processing. Supports high performance processing when 4 or more blocks in ECB, CBC, CFB(decryption), and CTR. Block Cipher Mode Supports Mode Name Reference SIMD Supports Comment Block ECB (Electronic Codebook) NIST SP 800-38A krypto/lea Block CBC (Cipher-Block Chaining) NIST SP 800-38A same with crypto/cipher Block CFB (Cipher Feedback) NIST SP 800-38A krypto/lea (decrypt) Supports CFB-8, CFG-32, ... Block OFB (Output Feedback) NIST SP 800-38A krypto/lea same with crypto/cipher Block CTR (Counter) NIST SP 800-38A AEAD CCM (Counter with CBC-MAC) NIST SP 800-38C AEAD GCM (Galois/Counter Mode) NIST SP 800-38D arm64(PMULL), amd64(PCLMULQDQ)
Algorithm Package Reference 160 224 256 384 512 SIMD Supports HAS-160 krypto/has160 TTAS.KO-12.0011/R2 O LSH-256 krypto/lsh256 KS X 3262 O O arm64(NEON), amd64(SSE2, SSSE3, AVX2) LSH-512 krypto/lsh512 KS X 3262 O O O O arm64(NEON), amd64(SSE2, SSSE3, AVX2)
Digital Signature Supports Algorithm Package Reference KCDSA krypto/kcdsa TTAK.KO-12.0001/R4 EC-KCDSA krypto/eckcdsa TTAK.KO-12.0015/R3
Message Authentication Code Supports Algorithm Package Reference CMAC krypto/cmac KS X ISO/IEC 9797-1, NIST SP 800-38B GMAC krypto/gmac KS X ISO/IEC 9797-3, NIST SP 800-38D
use crypto/hmac for HMAC. Random Number Generator Supports Algorithm Package Reference Hash_DRBG krypto/drbg TTAK.KO-12.0331, NIST SP 800-90A HMAC_DRBG krypto/drbg TTAK.KO-12.0332, NIST SP 800-90A CTR_DRBG krypto/drbg TTAK.KO-12.0189/R1, NIST SP 800-90A
Key Derivation Function Supports Algorithm Package - Reference KBKDF (CMAC) krypto/kbkdf TTAK.KO-12.0272, NIST SP 800-108 KBKDF (HMAC) krypto/kbkdf TTAK.KO-12.0333, NIST SP 800-108 PBKDF2 (HMAC) krypto/pbkdf2 TTAK.KO-12.0334, NIST SP 800-132, RFC 2898(PKCS #5)
Algorithm SIMD Supports Reference ARIA arm64(NEON), amd64(SSSE3) CRYPTOPP 8.8.0 - aria_simd.cpp LEA arm64(NEON), amd64(SSE2, AVX2) KISA LSH-256 arm64(NEON), amd64(SSE2, SSSE3, AVX2) KISA LSH-512 arm64(NEON), amd64(SSE2, SSSE3, AVX2) KISA GCM arm64(PMULL), amd64(PCLMULQDQ) package crypto/aes krypto/internal/golang.org/x/crypto/cryptobyte package x/crypto/cryptobyte krypto/internal/golang.org/x/sys/cpu package x/sys
Todo
Supoorts Post-Quantum Cryptography