Циклический битовый сдвиг влево и вправо

Этот рецепт будет посвящен двум часто применяемым в криптографических и похожих алгоритмах, где требуется манипулировать переменными как потоками битов — циклическому сдвигу влево и вправо. Данные операции встречаются довольно часто, а вот их реализации найти достаточно сложно и некоторые из существующих решений не корректны. Именно поэтому мы решили здесь разместить обе функции, как обычный рецепт, […]

Подробнее

Реализация поточной системы шифрования Salsa20

В этом скромном рецепте мы вам покажем, как реализовать систему поточного шифрования Salsa20 от уже знакомого нам Даниэля Бернштейна (того самого, кто придумал redo) в D. Сразу скажем, что наша реализация — это голый порт с C99 с некоторыми улучшениями, но нам показалось, что неплохо бы было поделиться с читателями этим незначительным портом.

Подробнее

Погружаемся в воды Стикса. Часть I: вводное погружение

Эту статью мы обещали уже давно и материала в ней будет много, поскольку нужно дать некоторое начальное понимание того, что такое Styx и что нам в нем так приглянулось. Также в этой статье мы расскажем вам о том, что положено в основу самой популярной библиотеки от LHS в реестре dub. Эта статья является начало крупной […]

Подробнее

Пиксельные войны: как создать свой Pixelflut-сервер на D

В этой статье, мы покажем вам, как можно в домашних условиях развязать настоящую пиксельную войну, используя компилятор D, домашнюю локальную сеть и креативную фантазию при сильном избытке досуга. Все, что нам потребуется — один свободный компьютер, который не жалко использовать как простой сервер, а также устройства, которые к нему подключаются и несколько человек, чтобы было […]

Подробнее

Реализация блочного криптографического алгоритма Threefish

В этой статье мы покажем реализацию симметричного блочного криптографического алгоритма Threefish на языке программирования D, реализацию функций настройки алгоритма, шифрования и дешифрования одного блока, что, дает скоростной и практичный криптографический примитив для использования в своих проектах.

Подробнее

Как поднять свою капсулу Gemini через Yggdrasil

В одной из прошлых статей мы уже рассказывали про mesh-сеть Yggdrasil и про то, на что способна данная оверлейная сеть, однако в этот раз, мы хотим продолжить рассказ и хотим это сделать с несколько иной стороны. Как описывалось ранее, есть ряд идей, которые можно реализовать в Yggdrasil, поскольку он сильно отличается от классического Интернета и […]

Подробнее

Криптографическая хэш-функция Tiger

В этой небольшой и скромной заметке мы покажем как реализовать основной алгоритм криптографической хэш-функции Tiger. В реализации используется D без каких-либо сторонних библиотек и даже почти не используется стандартная, поскольку в рецепте будет показано только взятие хэша от блока (и все).

Подробнее