Принцип работы потокового шифра с примерами на C#. От Одноразового блокнота до потокового шифра на основе хеш-ф-и и CTR

По ходу статьи, развивая идею «Одноразового блокнота», «изобретем» потоковый шифр на основе хеш-функции. Узнаем, что такое Counter Mode Encription CTR.

Знание терминов «хеш-функция» и «Одноразовый блокнот» для чтения не обязательно.

Одноразовый блокнот


В «Одноразовом блокноте» шифротекст получается путем наложения ключа на открытый текст. Наложение можно сделать, например, с помощью побитового XOR: каждый бит открытого текста XOR-ится с соответствующим (таким же по порядку) битом ключа.

Каждый бит открытого текста XOR-ится с таким же по порядку битом ключа

Рис 1. Каждый бит открытого текста XOR-ится с таким же по порядку битом ключа
Читать дальше →

Vibrant.kt — быстрое прототипирование и разработка распределенных приложений (DApps) на JVM

Нихао!


Введение


Я долго ничего не писал, потому что ЕГЭ само себя не сдаст, но к Балтийскому конкурсу я не мог не написать чего-нибудь классное. Хороших идей из ниоткуда я выдавить не мог, поэтому решил окунуться в абсолютно незнакомую мне на тот момент(пол месяца назад) тему, в мир блокчейна, криптовалют, смарт контрактов и других умных английских слов. На уроках утыкался в телефон, читая множество текстов про блокчейн, peer2peer сети и все такое, постепенно разбираясь. Все пошло легче, когда я начал писать простые прототипы на Javascript'e: в очередной раз убеждаюсь, что в коде все понятнее, нежели на тексте. В итоге, когда я вроде разобрался, я определился с темой работы, которую видно в заголовке статьи.

Читать дальше →

Двухфакторная аутентификация — это просто, на примере JaCarta U2F

Сегодня поговорим о стандарте U2F, разработанном (ссылка https://fidoalliance.org/participate/members-bringing-together-ecosystem/) ассоциацией FIDO Aliance, участником которой мы являемся, и электронном ключе нашей собственной разработки — JaCarta U2F(ссылка https://www.aladdin-rd.ru/catalog/jacarta-u2f), и, конечно, покажем несколько примеров его использования.

О чем думает человек, услышав упоминание слов типа двухфакторная аутентификация, электронный ключ, USB-токен, смарт-карта? Человек, далекий от погружения в технологии ИБ, может быть вспомнит одноразовые смс-пароли для входа в банк, а кто-то подумает про инфраструктуры открытых ключей, сертификаты, цепочки доверия.

А тем временем, разработанный альянсом FIDO протокол U2F набирает популярность среди интернет-компаний и показывает, что двухфакторная аутентификация — не только безопасно, но легко и просто, а главное понятно для конечного пользователя, нетехнического специалиста.
Читать дальше →

Сказ о тотальном переборе, или Томительное ожидание декрипта

image Приветствую жителей Хабра!

Итак, новые «криптографические игрища» пришли по мою душу. Поэтому сегодня поговорим о занудном упражнении, ориентированном на полный перебор паролей, реализации тривиального многопоточного брутера силами C++ и OpenMP, а также кратко об использовании криптобиблиотеки CryptoPP и стороннего модуля fastpbkdf2 (для Си и Плюсов) в своих проектах.

Го под кат, печеньки out there!
Читать дальше →

[Перевод] Дэниэль Лерх: «Стеганография – это инструмент, представляющий огромный интерес для кибер-преступников»



Эллиот Алдерсон прятал секретную информацию в аудио-CD файлах. Однако, техника, использованная вымышленным хакером из сериала «Мистер Робот», далека от простой прихоти телевизионщиков. Это всего лишь один из многих методов стеганографии, используемых хакерами и кибер-преступниками для обхода систем безопасности.

Произошедшее от греческих слов steganos (скрытый) и graphos (письмо), слово «стеганография» означает метод сокрытия данных. Чтобы понять, как лучше всего справиться с этой тайной угрозой, мы поговорили с Дэниэлем Лерхом, который имеет степень кандидата компьютерных наук в Университете Universitat Oberta de Catalunya (Каталония, Испания) и является одним из лучших экспертов по стеганографии в Испании. Читать дальше →

Как это работает: Деревья Меркла в биткойн сети

Узлы в блокчейн-сети анонимны и работают в условиях отсутствия доверия. В этой ситуации встает проблема верификации данных: как проверить, что в блоке записаны корректные транзакции? Для оценки каждого блока понадобится большое количество времени и вычислительных ресурсов. Решить проблему и упростить процесс помогают деревья Меркла.

Что это такое, как используется, какие существуют альтернативы — расскажем далее.

Читать дальше →

[Перевод] Amazon — главная угроза для биткоина в данный момент



За последний год многие стали активно принимать участие в астрономическом подъеме биткоина. Подростки инвестировали деньги, отложенные на университет. Семьи закладывали жилье и закупались на всю вырученную сумму. Даже миллиардеры поговаривали о том, чтобы вложить 10% своего состояния в цифровую валюту.

Сейчас в игре много денег, а на кону — средства на жизнь и сбережения множества людей. Биткоин как инструмент инвестирования страдает от целого ряда проблем. Он крайне непредсказуем — может за сутки упасть в цене на 30%, да и в случае хакерской атаки вернуть потерянные деньги оказывается очень сложно. С технической точки зрения биткоин, пожалуй, даже уступает некоторым более современным криптовалютам, которые лучше обеспечивают анонимность, удобнее для разработчиков и дают меньше проблем с масштабированием.

Большинство, раздумывая, кто может в будущем занять место биткоина на троне, перебирает альтернативные криптовалюты. Но, возможно, угроза на самом деле исходит из более материальной области?
Читать дальше →

Кодирование с изъятием информации. Часть 2-я, математическая

Введение


В предыдущей части рассматривалась принципиальная возможность кодирования при котором, в случае, если можно выделить общую часть у ключа и сообщения, то передавать можно меньше информации чем есть в исходном сообщении.
image
Позвольте немного расскажу откуда вообще взялась эта тема. Давным-давно от одного хорошего человека- ivlad взял почитать и вот пока никак не отдам (прости пожалуйста) интересную книжку [1], где, написано: «в свою очередь криптография сама может быть разделена на два направления, известные как перестановка и замена».


Соответственно почти сразу появились следующий вопросы:


  • т.к. перестановка и замена сохраняют количество информации, то можно ли сделать так, чтобы обойти это ограничение, и передавать информации меньше чем есть в сообщении, — отсюда (из «а не слабо ли») родилась первая часть;
  • если задача выглядит решаемой, то есть ли само решение и хотя бы толика математического смысла в нём – этот вопрос и есть тема этой части;
  • есть ли во всём этом практический смысл – вопрос пока открыт.
Читать дальше →

Программирование генератора случайных чисел на Ethereum

image


При разработке смарт-контрактов на Ethereum обычно считается что полагаться на хеш блока как источник рандомности ненадежно, так как майнер может влиять на результат, подбирая хеш блока (см. Private Information and Randomness, How do you get a random number in a contract?)


Насколько в действительности велика возможность для майнера увеличить свои шансы на выигрыш в игре в которой нужно угадать хеш блока c определенным номером (или некое число производимое от хеша блока)?

Читать дальше →

[Из песочницы] Взломать шифр Хилла? Легко

Цель: взломать шифр Хилла

Доброго времени суток, уважаемые читатели! Сегодня я хотел поделиться способом, который помог мне вскрыть текст, зашифрованный методом Хилла. Что такое метод Хилла описывать не буду: до меня уже постарались опытные умельцы донести особенности данного способа. Ссылка на пост.

Что имеем?

Скажу сразу, что на руках не имелось ни открытого текста, ни ключа. Было известно, что текст длинной 6286 символов был зашифрован матрицей 7 х 7. Поэтому для нашего же удобства, мы разобьем текст на 898 строчек по 7 символов. В тексте не содержатся буквы 'ё' и 'ъ'. В целях благоразумства, я не буду приводить весь зашифрованный текст, а лишь его часть: тчгяцмекещэнлжсвтйджтчгсмнежздыщзяотьдрпюмимаадрх... На вид бессмысленная ерунда, пока что…

Как будем ломать?

Рассмотрим атаку «грубой силой». Выше было оговорено, что из алфавита исключены две буквы, поэтому все линейные комбинации при шифровании (как и при дешифровке) берутся по mod 31 (учитывая, что это простое число, текст становится чуть более безопасным). Если рассматривать перебор обратных матриц-ключей, то всего нам придется перебрать $inline$31^{49} $inline$ комбинаций (это число примерно умещается в 75 знаков). Поэтому такой способ исключается моментально, хотя! Если из этого множества можно было бы каким-нибудь более-менее быстрым способом перебрать подмножество невырожденных матриц...Далее...


Последние посты