Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
codecrypt — Инструмент для постквантовой криптографии (ЭТОТ РЕПОЗИТОРИЙ — ЛИШЬ ЗЕРКАЛО ОСНОВНОГО, ПОЖАЛУЙСТА, НЕ СООБЩАЙТЕ ОБ ОШИБКАХ ЗДЕСЬ) | Kitploit
Инструменты/GitHubGitHub/exaexa/codecrypt
Инструменты шифрования/дешифрованияКриптографияКонфиденциальностьСтатьи и Исследования
GitHubexaexa/codecrypt

codecrypt

Инструмент для постквантовой криптографии (ЭТОТ РЕПОЗИТОРИЙ — ЛИШЬ ЗЕРКАЛО ОСНОВНОГО, ПОЖАЛУЙСТА, НЕ СООБЩАЙТЕ ОБ ОШИБКАХ ЗДЕСЬ)

Репозиторий
3254243 лет назадПроверено Kitploit

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

Codecrypt

Инструмент постквантовой криптографии.

Codecrypt в настоящее время не поддерживается, хотя я до сих пор успешно им пользуюсь. Если вам интересно заняться его разработкой/поддержкой, напишите мне.

О проекте

Это unix-программа, похожая на GnuPG, для шифрования и подписи, которая использует только устойчивые к квантовым компьютерам алгоритмы:

  • криптосистема Мак-Элиса (компактный вариант QC-MDPC) для шифрования
  • хэш-алгоритм на основе деревьев Меркла (вариант FMTSeq) для цифровых подписей

Codecrypt — это свободное программное обеспечение. Код распространяется на условиях LGPL3 в надежде, что это упростит его комбинирование с другими инструментами.

Зачем это?

Почитайте http://pqcrypto.org/

Ссылки

  • инфо-страница: http://e-x-a.org/codecrypt/
  • загрузка пакетов: http://e-x-a.org/codecrypt/files/

Пакеты дистрибутивов

  • Пакеты Gentoo: https://packages.gentoo.org/packages/app-crypt/codecrypt с актуальным ebuild, обычно доступным на http://e-x-a.org/codecrypt/files
  • Пакеты Debian: apt-get install codecrypt
  • Arch linux: см. https://aur.archlinux.org/packages/codecrypt/
  • Порт для Windows поддерживается отдельно здесь: https://github.com/mike805/codecrypt-win32

Обёртки для языков программирования:

  • Привязки для Python: https://github.com/mike805/codecrypt-python/

Документация

В комплекте с пакетом поставляется полная, UNIX-овская man-страница. Вы можете просмотреть её онлайн здесь: http://e-x-a.org/codecrypt/ccr.1.html

Обзор используемой криптографии

Для достижения заявленной цели codecrypt использует множество (традиционных, но «квантово-устойчивых») криптографических примитивов. Выбор примитивов основывался на лёгкости аудита дизайна, простоте и обеспечиваемой безопасности.

В git-репозитории codecrypt есть каталог doc/papers с несортированной кучей академических статей и слайдов по соответствующим темам.

Используемые потоковые шифры:

  • ChaCha20, рекомендованный выбор от djb
  • XSynd — потоковый шифр как интересный и нетрадиционный кандидат, также основанный на предположениях из теории кодирования; используемые NUMS (их требуется много) объясняются в каталоге doc/nums в репозитории.
  • Arcfour для изначальной простоты реализации. После недавних статистических атак я больше не могу рекомендовать использование каких-либо вариантов RC4, но предусмотренное дополнение (padding) и «автономное» использование codecrypt делают такое применение в основном безопасным.

Используемые CRHF (устойчивые к коллизиям хэш-функции):

  • Варианты Cubehash были выбраны за простоту реализации, действительно чистый дизайн, довольно хорошую скорость и гибкость выбора параметров. Это также единственная возможность хэширования, когда библиотека Crypto++ не слинкована с codecrypt. KeyID представляют собой CUBE256-хэши соответствующих сериализованных открытых ключей.
  • ripemd128 для небольших хэшей
  • tiger192 используется как альтернатива Cubehash для 192-битных хэшей
  • Всегда есть вариант с SHA-256, SHA-384 или SHA-512.

Алгоритмы подписи:

  • FMTSeq со множеством возможностей и комбинаций вышеупомянутых CRHF
  • поддержка SPHINCS256 запланирована на следующий релиз

Алгоритмы шифрования:

  • MDPC Мак-Элис на квазициклических матрицах. Реализация использует некоторые трюки для ускорения (довольно медленного) умножения циклических матриц (в этой версии — прежде всего libfftm3). Для дополнения по схеме Фудзисаки — Окамото шифру требуется потоковый шифр и CRHF; используемые шифр и CRHF указываются в названии алгоритма — например, MCEQCMDPC128FO-CUBE256-CHACHA20 означает, что параметры настроены на обеспечение 128-битной безопасности, используется хэш CUBE256 и потоковый шифр ChaCha20.
  • Квазидиадический Мак-Элис был включён в codecrypt как оригинальный алгоритм, но теперь он взломан и выводит предупреждение при любом использовании.

Предостережения:

Криптография не предназначена для «онлайн»-использования, потому что некоторые алгоритмы (особенно декодирование MDPC) (слегка) уязвимы к атакам по времени.

Краткое руководство

Всё задумано так, чтобы работать в основном как GnuPG, но с хорошим запасом простоты. Поэкспериментируем со случайными данными!

root@kitploit:~
ccr -g help
ccr -g sig --name "John Doe"    # ваш ключ подписи
ccr -g enc --name "John Doe"    # ваш ключ шифрования

ccr -K  #посмотрите на сгенерированные ключи
ccr -k

ccr -p -a -o my_pubkeys.asc -F Doe  # экспортируйте свои открытые ключи для друзей

#(теперь вам следует обменяться открытыми ключами с друзьями)

#посмотрите, что нам прислали, возможно, проверьте отпечатки
ccr -inaf < friends_pubkeys.asc

#импортируйте ключ Фрэнка и переименуйте его
ccr -ia -R friends_pubkeys.asc --name "Friendly Frank"

#отправьте Фрэнку приятное сообщение (можно также указать его по ключу @12345)
ccr -se -r Frank < Document.doc > Message_to_frank.ccr

#получите ответ
ccr -dv -o Decrypted_verified_reply.doc <Reply_from_frank.ccr

#переименуйте чужие ключи
ccr -m Frank -N "Unfriendly Frank"

#и удалите открытые ключи всех, кто недружелюбен
ccr -x Unfri

#создайте файл хэша из большого файла
ccr -sS hashfile.ccr < big_data.iso

#проверьте файл хэша
ccr -vS hashfile.ccr < the_same_big_data.iso

#создайте (в ASCII-оболочке) симметричный ключ и зашифруйте большой файл
ccr -g sha256,chacha20 -aS symkey.asc
ccr -eaS symkey.asc -R big_data.iso -o big_data_encrypted.iso

#расшифруйте большой файл
ccr -daS symkey.asc <big_data_encrypted.iso >big_data.iso

#защитите паролем все свои закрытые ключи
ccr -L

#защитите симметричный ключ с помощью другого симметричного ключа
ccr -L -S symkey1 -w symkey2

#защитите symkey2 паролем с помощью пользовательского шифра
ccr -L -S symkey2 -w @xsynd,cube512

Справочник опций

Для полноты привожу здесь список всех опций (также доступен через ccr --help)

root@kitploit:~
Usage: ./ccr [options]

Common options:
 -h, --help     display this help
 -V, --version  display version information
 -T, --test     perform (probably nonexistent) testing/debugging stuff

Global options:
 -R, --in      set input file, default is stdin
 -o, --out     set output file, default is stdout
 -E, --err     the same for stderr
 -a, --armor   use ascii-armored I/O
 -y, --yes     assume that answer is `yes' everytime

Actions:
 -s, --sign     sign a message
 -v, --verify   verify a signed message
 -e, --encrypt  encrypt a message
 -d, --decrypt  decrypt an encrypted message

Action options:
 -r, --recipient    encrypt for given user
 -u, --user         use specified secret key
 -C, --clearsign    work with cleartext signatures
 -b, --detach-sign  specify file with detached signature
 -S, --symmetric    enable symmetric mode of operation where encryption
		    is done using symmetric cipher and signatures are
		    hashes, and specify a filename of symmetric key or hashes

Key management:
 -g, --gen-key        generate keys for specified algorithm
 -g help              list available cryptographic algorithms
 -k, --list           list the contents of keyring
 -K, --list-secret
 -i, --import         import keys
 -I, --import-secret
 -p, --export         export keys
 -P, --export-secret
 -x, --delete         delete matching keys
 -X, --delete-secret
 -m, --rename         rename matching keys
 -M, --rename-secret
 -L, --lock           lock secrets
 -U, --unlock         unlock secrets

Key management options:
 -F, --filter       only work with keys with matching names
 -f, --fingerprint  format full key IDs nicely for human eyes
 -N, --name         specify a new name for renaming or importing
 -n, --no-action    on import, only show what would be imported
 -w, --with-lock    specify the symmetric key for (un)locking the secrets
 -w @SPEC           ask for password and expand it to a symmetric key
                    of type SPEC for (un)locking the secret

Дисклеймер

Codecrypt поедает данные. Используйте с осторожностью. Читайте F-мануал.

Автор — криптограф-самоучка.

Скачать инструмент