Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
perl-CryptX — Perl 암호화 툴킷으로, 번들된 LibTomCrypt 라이브러리를 통해 대칭 암호, AEAD 모드, 해시 함수, MAC, 공개키 암호화, 키 파생 및 안전한 난수 생성을 제공합니다. | Kitploit
도구/GitHubGitHub/dcit/perl-cryptx
Password CrackingEncryption/Decryption ToolsHash AnalysisCryptographyUtilities & FrameworksAuthentication
GitHubdcit/perl-cryptx

perl-CryptX

Perl 암호화 툴킷으로, 번들된 LibTomCrypt 라이브러리를 통해 대칭 암호, AEAD 모드, 해시 함수, MAC, 공개키 암호화, 키 파생 및 안전한 난수 생성을 제공합니다.

저장소 보기
41262129일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

이름

CryptX - 암호화 툴킷

개요

CryptX는 배포판의 진입점입니다. 일반적인 코드에서는 아래에 나열된 구체적인 모듈 중 하나를 로드합니다.

## one-shot hashing
use Crypt::Digest qw(digest_data_hex);
my $sha256 = digest_data_hex('SHA256', 'hello world');

## classic AES-CBC encryption with padding
use Crypt::Mode::CBC;
my $cbc = Crypt::Mode::CBC->new('AES');
my $iv = random_bytes(16); # 16-byte AES block-size IV
my $cbc_ciphertext = $cbc->encrypt('hello world', $key, $iv);

## authenticated encryption (AEAD) with AES
use Crypt::AuthEnc::GCM qw(gcm_encrypt_authenticate);
my $key = random_bytes(32);   # 32-byte AES-256 key
my $nonce = random_bytes(12); # 12-byte unique nonce
my ($ciphertext, $tag) = gcm_encrypt_authenticate('AES', $key, $nonce, 'header', 'hello world');

## message authentication
use Crypt::Mac::HMAC qw(hmac_hex);
my $mac = hmac_hex('SHA256', $key, 'hello world');

## secure random data + UUID helpers
use Crypt::PRNG qw(random_bytes random_string);
use Crypt::Misc qw(random_v4uuid random_v7uuid);
my $salt = random_bytes(16);
my $token = random_string(24);
my $uuid4 = random_v4uuid();
my $uuid7 = random_v7uuid();

## classic password-based key derivation
use Crypt::KeyDerivation qw(pbkdf2);
my $dk = pbkdf2('password', $salt, 100_000, 'SHA256', 32);

## bare stream cipher (authenticate separately)
use Crypt::Stream::ChaCha;
my $stream = Crypt::Stream::ChaCha->new($key, $nonce);
my $stream_ciphertext = $stream->crypt('hello world');

## modern signatures
use Crypt::PK::Ed25519;
my $signer = Crypt::PK::Ed25519->new->generate_key;
my $sig = $signer->sign_message('hello world');
my $ok = $signer->verify_message($sig, 'hello world');

## key agreement
use Crypt::PK::X25519;
my $alice = Crypt::PK::X25519->new->generate_key;
my $bob = Crypt::PK::X25519->new->generate_key;
my $shared_secret = $alice->shared_secret($bob);

설명

번들로 포함된 LibTomCrypt 라이브러리를 기반으로 구축된 Perl 암호화 모듈입니다. 이 배포판에는 LibTomCrypt가 내부적으로 사용하는 번들 LibTomMath 라이브러리를 기반으로 구축된 Math::BigInt 백엔드인 Math::BigInt::LTM도 포함되어 있습니다.

이 모듈은 주로 최상위 배포/문서 페이지 역할을 합니다. 실제 작업에는 아래에 나열된 구체적인 모듈 중 하나를 사용하세요.

알고리즘 선택 가이드

인증 암호화 (AEAD)

새로운 설계에서는 단순 암호 모드보다 인증 암호화(AEAD)를 선호하세요:

  • ChaCha20-Poly1305 (Crypt::AuthEnc::ChaCha20Poly1305) - 빠르고 일정 시간(constant-time)에 동작하며 널리 배포되어 있습니다 (TLS 1.3, WireGuard, SSH). 기본 AEAD 선택으로 사용하세요.
  • XChaCha20-Poly1305 (Crypt::AuthEnc::XChaCha20Poly1305) - 확장된 24바이트 nonce 변형입니다. nonce를 무작위로 생성할 때 ChaCha20-Poly1305보다 선호하세요.
  • AES-GCM (Crypt::AuthEnc::GCM) - AES의 표준 AEAD 모드입니다. 최신 CPU에서 하드웨어 가속을 지원합니다. 고유한 nonce가 필요하며, nonce를 재사용하면 보안이 완전히 무너집니다.
  • AES-SIV (Crypt::AuthEnc::SIV) - 결정론적 AEAD로, nonce 오용에 강합니다. 약간 느리지만 nonce 고유성을 보장할 수 없을 때 더 안전합니다.
  • AES-GCM-SIV (Crypt::AuthEnc::GCMSIV) - nonce 오용에 강한 AEAD입니다 (RFC 8452). AES-SIV보다 빠르며, nonce 재사용 안전성과 함께 GCM과 유사한 성능이 필요할 때 선택하세요.
  • AES-OCB (Crypt::AuthEnc::OCB) - 매우 빠른 단일 패스 AEAD입니다. 해당 관할권의 특허 상태를 확인하세요.
  • AES-EAX (Crypt::AuthEnc::EAX) - CTR+OMAC 기반의 2패스 AEAD입니다. 특허가 없으며 nonce 길이 제한도 없습니다.
  • AES-CCM (Crypt::AuthEnc::CCM) - WiFi(WPA2) 및 Bluetooth에서 사용됩니다. 평문 길이를 미리 알고 있어야 합니다.

암호학적으로 안전한 난수 및 UUID

  • 난수 바이트 / 문자열 (Crypt::PRNG) - 솔트, 키, nonce, 토큰 및 기타 모든 비밀 난수 값에 사용하세요. 함수형 헬퍼인 random_bytes, random_bytes_hex, random_bytes_b64, random_bytes_b64u, random_string, random_string_from은 대부분의 사용 사례를 충족합니다. OO API와 알고리즘별 래퍼(Crypt::PRNG::ChaCha20, Crypt::PRNG::Fortuna 등)는 주로 결정적 스트림 또는 특정 PRNG와의 상호 운용성을 위한 것입니다.
  • UUID ("random_v4uuid" in Crypt::Misc, "random_v7uuid" in Crypt::Misc) - 불투명한 무작위 식별자에는 random_v4uuid를 사용하세요. 밀리초 단위의 생성 시간순으로 정렬되는 대략적인 시간 순서 식별자가 필요하면 random_v7uuid를 사용하세요. UUID는 식별자이지 비밀 난수 바이트를 대체하는 것이 아닙니다.

스트림 암호

스트림 암호는 블록 패딩 없이 데이터를 바이트 단위로 암호화합니다. 대부분의 애플리케이션에서는 암호화와 인증을 함께 제공하는 AEAD 모드(위 참조)를 선호하세요. 단순 스트림 암호는 인증을 별도로 처리할 때만 사용하세요.

  • ChaCha (Crypt::Stream::ChaCha) - 기본 스트림 암호 선택입니다. 내장 MAC이 없는 ChaCha20-Poly1305와 동일한 코어입니다.
  • XChaCha (Crypt::Stream::XChaCha) - ChaCha의 24바이트 nonce 확장 변형입니다. nonce를 무작위로 생성할 때 선호하세요.
  • Salsa20 / XSalsa20 (Crypt::Stream::Salsa20, Crypt::Stream::XSalsa20) - ChaCha의 전신입니다. 새 설계에서는 ChaCha를 선호하고, Salsa20은 상호 운용성(예: NaCl/libsodium)을 위해서만 사용하세요.
  • RC4 (Crypt::Stream::RC4) - 보안이 깨졌으므로 새 설계에는 사용하지 마세요. 레거시 상호 운용성을 위해서만 제공됩니다.
  • Rabbit, Sober128, Sosemanuk (Crypt::Stream::Rabbit, Crypt::Stream::Sober128, Crypt::Stream::Sosemanuk) - eSTREAM 포트폴리오의 틈새 암호입니다. 특정 프로토콜에서 요구하지 않는 한 ChaCha를 사용하세요.

블록 암호 모드 (인증 없음)

인증을 별도로 처리하거나 인증이 필요 없는 경우에만 사용하세요:

  • CTR (Crypt::Mode::CTR) - 블록 암호를 스트림 암호로 변환합니다. 병렬화가 가능합니다.
  • CBC (Crypt::Mode::CBC) - 고전적인 모드로, 패딩이 필요합니다. CTR 또는 AEAD 모드를 선호하세요.
  • ECB (Crypt::Mode::ECB) - 대부분의 용도에 안전하지 않습니다. 각 블록이 독립적으로 암호화됩니다.

개별 Crypt::Cipher::AES, Crypt::Cipher::Twofish 등의 모듈은 원시 단일 블록 암호화를 구현하며 직접 사용되는 경우는 드뭅니다. 거의 모든 경우 AEAD 모드(Crypt::AuthEnc::GCM, Crypt::AuthEnc::CCM) 또는 블록 암호 모드(Crypt::Mode::CBC, Crypt::Mode::CTR)를 통해 사용해야 합니다. 암호를 선택할 때 AES가 기본값이며, 대부분의 최신 CPU에서 하드웨어 가속을 지원합니다.

해시 함수

  • SHA-256 / SHA-384 / SHA-512 (Crypt::Digest::SHA256 등) - 일반적인 해싱의 기본 선택입니다. 널리 지원되며 잘 분석되어 있습니다.
  • SHA3-256 / SHA3-512 (Crypt::Digest::SHA3_256 등) - 완전히 다른 구조(Keccak 스펀지)를 가진 SHA-2의 대안입니다.
  • BLAKE2b / BLAKE2s (Crypt::Digest::BLAKE2b_256 등) - 특히 소프트웨어 구현에서 매우 빠릅니다. BLAKE2b는 64비트 플랫폼용, BLAKE2s는 32비트용입니다.
  • SHAKE / TurboSHAKE / KangarooTwelve - 확장 가능 출력 함수(XOF)입니다. 가변 길이 출력이 필요할 때 사용하세요.

체크섬

도구 다운로드