TimeForFlash
@TimeForFlash
DevOps & Dev; ISec

Как создавать свои форматы файлов для криптографии?

Приветствую всех кто помогает таким новичкам, как я на Хабр Q&A.
Недавно я заинтересовался в каком-то вопросе о смысле шифрования и криптографии, не в буквальном смысле, а немного иначе и перебрал около 12 статей на разные темы по крупицам вычленяя какую-либо полезную мне информацию.

Вопрос обстоит такой:
Как создаются и если есть уникальное решение на подобии отдельного языка программирования используемого под такую задачу как формат файлов, мне интересно поэкспериментировать с созданием своего собственного формата файла, но в рамках того, чтобы различные ОС, как минимум Windows, MacOS, Linux могли конвертировать бинарный код этих форматов, распознать и использовать их.

Из этого вытекает другой под-вопрос, насколько целесообразно «создавать» / «разрабатывать» отдельный формат файла в целях использования его в криптографии и особенно шифровании?

Вопрос скорее экспериментальный нежели совсем серьёзный, но отнюдь от такого не без интереса лежит, а информации по нему найти мне не вышло, поэтому благодарю заранее за помощь!
  • Вопрос задан
  • 161 просмотр
Решения вопроса 1
mayton2019
@mayton2019
Bigdata Engineer
Существуют стандартные файловые форматы для хранения ЭЦП ключей. Для RSA, PGP и прочее.
Это текстовые файлы оформленные соотв образом и хранящие внутри себя закодированный
в Base64 ключ. Это то что касается публичной части криптографии там где важно оповестить
как можно больше респонентов и где нужна открытость. Я также видел аналогичные XML-форматы
в эпоху SOAP. Но они как-то не особо популярны. Они скорее часть SOAP чем криптографии.

В симметричной криптографии задач файловых форматов вобщем-то не стоит. Даже более
того. Если условные Алиса и Боб решили наладить секретную переписку - то им не нужен
никакой файловый стандарт. Они - в контексте и будут передавать блочно-шифрованную
информацию безо всякого формата без хедера и без магических чисел.

Что еще. Для этой-же симметрички может быть полезен padding. Это специальное оформление
последнего блока шифро-текста. Чтоб подбить вариативный размер файла под размер кратный
блоку. Например если вы решили шифровать через AES-256 то вам нужен блок в 256 бит
и алгоритм паддинга для хвостового блока. Padding известен и его методы описаны в wiki.
Берите перебирайте. Который совпадет - тот и ваш. Вот. Паддинг - это не файловый формат
а просто инженерный трюк чтоб уйти от блоков или прийти к блокам.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы