Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.09.2012, 14:47   #1
InsolenceL
 
Регистрация: 16.05.2011
Сообщений: 4
Восклицание Шифрование

Преподаватель поставил следующую задачу:
Есть открытый текст. и некая группа из n участников(n задается вручную). Каждому участнику присваивается свой ключ. Как сделать так, чтобы любой из участников мог своим ключом этот текст зашифровать, а любой другой своим ключом расшифровать. При условии, что все ключи различны!
InsolenceL вне форума Ответить с цитированием
Старый 27.09.2012, 15:05   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

RSA и иже с ними... или любой другой алгоритм с асимметричными ключами.
Ref: http://en.wikipedia.org/wiki/Public-key_cryptography
waleri вне форума Ответить с цитированием
Старый 27.09.2012, 15:23   #3
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

для ассиметричного шифрования нужно знание чужого публичного ключа
а в задании (достаточно бредовом, кстати), текст шифруется своим приватным ключем
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 27.09.2012, 15:43   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

насколько я понимаю, электронная подпись как раз этот функционал и предоставляет?

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

Последний раз редактировалось Serge_Bliznykov; 27.09.2012 в 15:51.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 27.09.2012, 15:53   #5
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

электронная подпись просто гарантирует то, что файл подписан тем, кто обладает секретной половиной публичного ключа, с помощью которого эту подпись можно проверить. Т.е. зная публичный ключ участника А, мы можем убедиться, что некий файл подписал именно он/она (ну или кто-то, кто знает секретную половину публичного ключа А).

в исходном задании ничего не говорится об обмене ключами, наоборот подчеркивается, что ключи используются свои на обоих сторонах
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Старый 27.09.2012, 16:09   #6
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

http://stackoverflow.com/questions/5...different-keys
waleri вне форума Ответить с цитированием
Старый 27.09.2012, 16:17   #7
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Если не углубляться сильно в крипты, то можно так. Пусть у всех ключей будет общее свойство. Например, ключи
18
27
36
Общее у них то, что сумма цифр = 9. Шифруем, любым известным способом, хоть через xor ключом 9.
Можно усложнить, например, ключи
1815
2724
3633
Тут общее то, что сумма первых двух цифр = 9, а последних двух - 6
eoln вне форума Ответить с цитированием
Старый 27.09.2012, 20:56   #8
veniside
Старожил
 
Регистрация: 03.01.2011
Сообщений: 2,508
По умолчанию

eoln, это первый вариант, который и мне шёл в голову, но он настолько легко взламывается, что даже не стал его упоминать. Достаточно украсть один ключ, чтобы пришлось выпускать новые n ключей.

Лучше тогда уже так: каждый из n ключей — это просто пароль на вход в удалённую базу данных (ну или сайт, не суть). Используя этот ключ можно выполнить две операции:

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

2) прочитать чужой текст, зная его уникальный номер.

тут если и украдут один ключ, его можно заблокировать, не трогая остальные.
"Когда приходит положенное время, человек перестаёт играть в пинбол. Только и всего."
veniside вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Шифрование Runner Помощь студентам 11 17.06.2010 22:17
Шифрование risc Общие вопросы Delphi 1 25.02.2010 21:48
Шифрование Stanislav Общие вопросы Delphi 2 15.11.2007 21:56