OberonCore
https://forum.oberoncore.ru/

Идея алгоритма шифрования "Сумма"
https://forum.oberoncore.ru/viewtopic.php?f=28&t=3530
Страница 1 из 2

Автор:  Rifat [ Среда, 10 Август, 2011 17:00 ]
Заголовок сообщения:  Идея алгоритма шифрования "Сумма"

Решил написать небольшую утилитку для хранения паролей от всяких разных сайтов в интернете. В принципе эта информация не очень секретная, но тем не менее хранить ее в открытом виде на компьютере я не хочу, а пароли, записанные на бумажке могут потеряться.
Возникла идея такого алгоритма:
1) пароль шифрования преобразовывается в десятичное число А;
2) текст, который шифруется преобразовывается в десятичное число B;
3) два числа складываются C = A + B;
4) десятичное число C преобразовывается в текст.
Расшифровка осуществляется аналогично, только используется вычитание, а не сложение.

Кто как считает, подойдет ли этот алгоритм для шифрования не сильно секретных данных, но так, чтобы случайный хакер не смог их расшифровать?

Автор:  Александр Ильин [ Среда, 10 Август, 2011 17:26 ]
Заголовок сообщения:  Re: Идея алгоритма шифрования "Сумма"

Как текст будет преобразовываться в число?

Автор:  Сергей Губанов [ Среда, 10 Август, 2011 18:41 ]
Заголовок сообщения:  Re: Идея алгоритма шифрования "Сумма"

Сложение делается поразрядно.

Стоит хакеру узнать несколько младших разрядов числа А и он сразу же узнает несколько младших разрядов всех чисел B.

Лучше бы вместо сложения использовать преобразование равномерно перемешивающее все разряды.

Автор:  alexus [ Среда, 10 Август, 2011 19:01 ]
Заголовок сообщения:  Re: Идея алгоритма шифрования "Сумма"

Сергей Губанов писал(а):
Сложение делается поразрядно.
Стоит хакеру узнать несколько младших разрядов числа А и он сразу же узнает несколько младших разрядов всех чисел B.
Лучше бы вместо сложения использовать преобразование равномерно перемешивающее все разряды.
Предложенный Rifat'ом алгоритм ниже критики. Разумнее использовать XOR и ротацию. Просто в реализации и трудно при дешифровании... особенно, если ротация происходит не на одинаковое количество бит.

Автор:  Пётр Кушнир [ Среда, 10 Август, 2011 19:14 ]
Заголовок сообщения:  Re: Идея алгоритма шифрования "Сумма"

проще скачать truecrypt

Автор:  Сергей Губанов [ Среда, 10 Август, 2011 20:58 ]
Заголовок сообщения:  Re: Идея алгоритма шифрования "Сумма"

Ещё тут зная лишь одну пару {B, C} можно сразу же узнать А и раскрыть все остальные B.

Надо чтобы даже зная большое количество пар {B, C} трудно было бы вычислить А и тем самым раскрыть другие В.

Автор:  Rifat [ Среда, 10 Август, 2011 21:29 ]
Заголовок сообщения:  Re: Идея алгоритма шифрования "Сумма"

Александр Ильин писал(а):
Как текст будет преобразовываться в число?

Допустим мастер паролем будет текст состоящий только из строчных латинских символов. Тогда любое латинское слово можно считать числом в 26-ричной системе счисления.
Например,
cba = (2*26+1)*26+0

Автор:  Rifat [ Среда, 10 Август, 2011 21:32 ]
Заголовок сообщения:  Re: Идея алгоритма шифрования "Сумма"

Сергей Губанов писал(а):
Сложение делается поразрядно.

Стоит хакеру узнать несколько младших разрядов числа А и он сразу же узнает несколько младших разрядов всех чисел B.


Как хакер может узнать младшие разряды числа A?
Если он может узнать их путем анализа чисел C1, C2, C3 и т.д, то да согласен, что это проблема. А если он просто может узнать младшие разряды, например, подглядеть, то таким же образом он может и все число A узнать.

Автор:  Иван Кузьмицкий [ Среда, 10 Август, 2011 21:33 ]
Заголовок сообщения:  Re: Идея алгоритма шифрования "Сумма"

Пётр Кушнир писал(а):
проще скачать truecrypt


Куда круче иметь шифрованный сосдок прямо в ББ.

Автор:  Rifat [ Среда, 10 Август, 2011 21:36 ]
Заголовок сообщения:  Re: Идея алгоритма шифрования "Сумма"

Сергей Губанов писал(а):
Ещё тут зная лишь одну пару {B, C} можно сразу же узнать А и раскрыть все остальные B.

Надо чтобы даже зная большое количество пар {B, C} трудно было бы вычислить А и тем самым раскрыть другие В.

Насчет этого согласен, что это существенный минус, так как многие браузеры могут кэшировать пароли, соотственно, может так получиться что какой-нибудь из паролей от сайта хакер сможет узнать, соответственно, он сможет узнать A и получить пароли от всех других сайтов.

Автор:  Александр Ильин [ Четверг, 11 Август, 2011 03:35 ]
Заголовок сообщения:  Re: Идея алгоритма шифрования "Сумма"

Rifat писал(а):
Допустим мастер паролем будет текст состоящий только из строчных латинских символов. Тогда любое латинское слово можно считать числом в 26-ричной системе счисления.
Например,
cba = (2*26+1)*26+0
Получается, что сложение с паролем зашифрует только несколько последних букв текста?

Основа шифрования сложением заключается, насколько я представляю, вот в чём. Пусть у вас есть текст, и есть такой же длины последовательность случайных букв - ключ. Если каждую букву текста сложить с соответствующей буквой случайной последовательности, то на выходе вы получите шифр, который неотличим от первоначальной случайной последовательности. Без ключа восстановить текст будет невозможно (при условии, что ключ на самом деле абсолютно случаен).

Вопроса два - как получить качественную случайную последовательность, и как запомнить пароль длиной в текст.

Если алгоритм для "домашнего" применения, то можно взять любую функцию генерации псевдослучайной последовательности (например, модуль ObxRandom в ББ или функцию Random в Delphi), и проинициализировать её неким первоначальным значением. Известно, что эти функции при одинаковом первоначальном значении выдают одну и ту же псевдослучайную последовательность чисел. Это первоначальное значение как раз можно получить, просуммировав буквы в пароле.

Автор:  Rifat [ Четверг, 11 Август, 2011 08:56 ]
Заголовок сообщения:  Re: Идея алгоритма шифрования "Сумма"

Насчет того, что как запомнить пароль длинною в текст, тексты у меня не будут очень длинными, так как текстом будут являться пароли от различных сайтов. Соответственно достаточно чтобы мастер пароль был равен по длине с самым длинным из паролей от сайтов. Если это будут, например, 64 битные числа, то думаю сложно будет перебирать все варианты и смотреть правдоподобные ли результаты расшифровки.

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

Автор:  Владислав Жаринов [ Четверг, 11 Август, 2011 11:01 ]
Заголовок сообщения:  Re: Идея алгоритма шифрования "Сумма"

Rifat писал(а):
Насчет того, что как запомнить пароль длинною в текст, тексты у меня не будут очень длинными, так как текстом будут являться пароли от различных сайтов.
...
Вроде есть такие утилиты... например, описанная здесь... или Вы хотите именно хранить в инете? или именно сами написать?

Автор:  Rifat [ Четверг, 11 Август, 2011 11:11 ]
Заголовок сообщения:  Re: Идея алгоритма шифрования "Сумма"

Не совсем понял, что за ссылку вы дали, по-моему там идет речь про учебник :)

Да, хочу написать эту утилиту сам, для своего же использования.

Автор:  Rifat [ Четверг, 11 Август, 2011 11:32 ]
Заголовок сообщения:  Re: Идея алгоритма шифрования "Сумма"

В общем основная проблема такая, какие преобразования делать над мастер паролем, чтобы если один из зашифрованных и открытых текстов будет известен хакеру, чтобы он не смог расшифровать другие пароли.

Автор:  Владислав Жаринов [ Четверг, 11 Август, 2011 12:01 ]
Заголовок сообщения:  Re: Идея алгоритма шифрования "Сумма"

Rifat писал(а):
Не совсем понял, что за ссылку вы дали, по-моему там идет речь про учебник :)
Да, хочу написать эту утилиту сам, для своего же использования.
Не, это описания программы, использующей одну открытую схему криптозащиты (во вложениях) :) Но раз Вы хотите писать - конечно, неактуально.
Rifat писал(а):
В общем основная проблема такая, какие преобразования делать над мастер паролем, чтобы если один из зашифрованных и открытых текстов будет известен хакеру, чтобы он не смог расшифровать другие пароли.
Вроде как "односторонние функции" (скажем, дискретное логарифмирование)... исходя из современной математики КГ. Наверное, Вы слышали про двухключевое шифрование данных? В статье Пиликова из этого поста показано его применение для подписи массивов. Вообще таких описаний много, но здесь одно из немногих лаконичных... без различных "Алис" и "Бобов"... :) Кстати, ПГП-алгоритм как раз использует эту математику (а среди профессионалов считается, что всё, что "просто придумано" для шифрования без матана, вскрывается более-менее элементарно). Общая схема его применения разобрана здесь... а алгоритм его автор опубликовал. Задачу, по-видимому, имеющую отношению к делу, разрабатывал также В.В. Потопахин - в этой теме. Если Вы собиратесь юзать прогу единолично - то не должны взникать правовые вопросы, обсуждавшиеся в этой теме.

Автор:  Сергей Губанов [ Четверг, 11 Август, 2011 12:10 ]
Заголовок сообщения:  Re: Идея алгоритма шифрования "Сумма"

Rifat писал(а):
Как хакер может узнать младшие разряды числа A?
Полным перебором с анализом результата на правдоподобность :D. Такой анализ более эффективн когда есть много пар {B, C}. Ведь гораздо легче начать с перебора небольшого количества разрядов чем перебирать весь ключ целиком.

Автор:  Rifat [ Четверг, 11 Август, 2011 13:10 ]
Заголовок сообщения:  Re: Идея алгоритма шифрования "Сумма"

В общем, пока остановился на таком варианте.
1) Сделать конкатенацию текста: Мастер пароль + Имя сайта + Логин
2) Вычислить 64 битную хэш сумму от текста, полученного на первом шаге.
3) Каждый пароль зашифровать путем наложения этой 64 битной суммы при помощи операции XOR.

Если хакеру известен какой-нибудь пароль от сайта, то он может узнать хэш сумму на основе которой данный пароль был зашифрован, но не узнает Мастер пароль, если только не будет перебирать все мастер пароли, пытаясь вычислить хэш сумму.

Автор:  Rifat [ Четверг, 11 Август, 2011 14:09 ]
Заголовок сообщения:  Re: Идея алгоритма шифрования "Сумма"

Возникла более надежная, но и более сложная идея шифрования. Использовать ассиметричное шифрование, например, по алгоритму RSA. Открытый ключ будет хранится в открытом виде и использоваться для добавления новых записей, а закрытый ключ будет храниться в зашифрованном виде, и использоваться для расшифрования записей. Закрытый ключ будет шифроваться при помощи XOR с мастер паролем.
Думаю, что такой метод шифрования будет достаточно стойким от рядового хакера, который скорее всего не сможет факторизовать большие числа.

Автор:  Сергей Губанов [ Четверг, 11 Август, 2011 14:50 ]
Заголовок сообщения:  Re: Идея алгоритма шифрования "Сумма"

Одобрямс :D

RSA на Mathematica:
Вложение:
rsa.png
rsa.png [ 40.74 КБ | Просмотров: 8135 ]

Страница 1 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/