![]() |
|
|
![]()
|
|
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 4 Всего: 360 |
Ребята, кто дружит с криптографией. Нужен алгоритм шифровки/дешифровки. Попробую описать..
Pt - Открытый текст Ct - Шифровка Ks={K0,K1,..Kn} - несколько ключей К0!=K1!=K2!=...Kn encode - функция шифрования так, что Ct=encode(Pt,Ks) decode - функция расшифрования так что - Pt=decode(Ct,K0)=decode(Ct,K1)=....decode(Ct,Kn) Не существует такого ключа K*, чтобы decode(Ct,K*)=Pt и K* не являлся бы элементом из Ks (Ну это в идеале) Поясню, область применения. Существует закодированная мессага, несколько человек могут (каждый своим ключём) расшифровать её. Теперь одному из них хотим закрыть доступ. для этого кодируем мессагу заного, но уже без учёта его ключа. Ессно исходя из этого, все ключи должны быть разными. Что нибудь такое в природе есть? Если нет, то почему? Это возможно сделать? Не могу сказать, что я полный идиот в криптографии, но про подобное не слышал вообще ничего.. |
|||
|
||||
| maxim1000 |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
а что если под зашифрованным текстом понимать просто набор исходных текстов, зашифрованных каждым ключом в отдельности?
(количество ключей большое?) т.е., по сути, просто для каждого человека отдельно создаётся свой зашифрованный текст, а хранятся они вместе... -------------------- qqq |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 4 Всего: 360 |
Да, это мне тоже первым делом пришло в голову. но тут много потенциальных атак можно произвести. Если враг знает, что текст повторяется.
А врагом может быть и тот, у кого вчера был доступ. Он просто стырит чужой ключ. |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 4 Всего: 360 |
Xex
|
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 4 Всего: 360 |
Только проблема, как пермутировать так, чтобы только имеющий ключ знал "свои места". Ведь слов кодировать надо будет много и в идеале в каждом слове позиции вырешиваются в зависимости от связки слово/ключ.
|
|||
|
||||
| maxim1000 |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев Репутация: 33 Всего: 110 |
как? он их и знать не будет грубо говоря, получается что-то вроде рассылки как только кто-то стал врагом, посылок, адресованных ему просто не делается
что правда, то правда... -------------------- qqq |
||||
|
|||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 4 Всего: 360 |
Я вот думаю насчёт пермутаций.. но как их сделать однозначными для каждого ключа и неоднозначными для разных слов.... |
|||
|
||||
| Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 1 Всего: 39 |
У каждого участника обмена есть пара ключей (открытый, закрытый).
При передачи сообщения - генерируется сессионый ключ, данным ключом шифруется исходное сообщение. Далее, этот сессионый ключ шифруется ассиметрией для каждого, кто должен прочитать это сообщение, и включается в сообщение. Это сообщение отредактировал(а) Alexandr87 - 19.11.2006, 15:07 |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 4 Всего: 360 |
Оказывается ещё в 70-х появился очень простой вариант
Берём многочлен прибавляем к наему наш секрет. Если полином - парабола, берём несколько случайных точек на ней. каждые 2 точки однозначно опишут эту параболу. Делим по точке между людьми, одна - открытая. Каждые 2 точки однозначно опишут эту параболу а значит двое могут однозначно узнать секрет. Вариант раширяется по вкусу |
|||
|
||||
| Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 1 Всего: 39 |
можно посмотреть реализацию или пример "на словах"?
|
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 4 Всего: 360 |
Alexandr87, вот возможно более понятное описание. А пример будет, но попозже.
|
|||
|
||||
| Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 1 Всего: 39 |
Здесь же описывается механизм разделения секретов, он никого отношения не имеет к ситуации описанной вначале и применяется совершенно в других случаях. Если я вас правильно понял вы хотите разделить секрет по принципу (2 из кол-во участников обмена) и одну часть выложить в открытый доступ, тогда простой перехват 2 (не публичной) части, предназначенной для любого из получаетелей позволяет расшифровать сообщение. На мой взгляд вам все же стоит взглянуть на это, так как такой способ является наиболее простым (честно говоря, я даже не подразумеваю, как это можно сделать по-другому, но не исключаю факт, что можно) |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 4 Всего: 360 |
И в других и в это так же Перехват части, предназначенной для другого участника не учитывается в моём случае. Поскольку у настоящих участников и так имеется одна координата, а врагу достаточно ключа любого из них (что само по себе не зависит от способа шифрования). Так же например Ваш способ: Если враг получит ключ любого из участников, он ломает мессагу. Т.е ничем не отличается от "многочленного" шифрования. |
|||
|
||||
| Alexandr87 |
|
|||
![]() дыкий псых ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1459 Регистрация: 27.11.2004 Где: Алматы, Казахстан Репутация: 1 Всего: 39 |
Боюсь, не совсем понял, что вы хотели сказать, но очень хочу разобраться. Объясните пожалуйста на примере: вот у вас есть три получаетеля: A,B,C. Первый раз вам нужно передать секрет один S1 всем трем участникам, второй раз секрет S2 получаетелям A и B. Я никак не могу увидеть применения вашего метода для решения этой задачи. Задача сформулирована вами
Метод, который описал я, это обычный подход к подобным задачам. Ключи - вы перехватить не можете, так как сессионый ключ передается в зашифрованном виде, а ключ, на котором шифруется сессионый ключ (private составляющая пары ключей) не покидает компьюетра (или же смарт-карты, что вообще делает невозможным его компрометацию) получаетеля. |
|||
|
||||
![]()
|
| Правила форума "Алгоритмы" | |
|
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Алгоритмы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |