![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Преобразование: строка -> число [D7, WinXP]
Shredder © (2005-05-19 15:23:00)Мастера! Интересует мнение общественности по следующему поводу.
Есть какая-то строка (может состоять из любых ASCII символов), ее нужно преобразовать в число с возможностью обратного преобразования.
Я действовал так: брал 8-разрядное двоичное представление номеров каждого из символов (чтобы коды были префиксными) по таблице ASCII и совмещал. В результате получалось двоичное число с количеством разрядов: <кол-во символов строки> * 8. Затем переводил это число в десятичный вид.
Но у этого метода главный недостаток: получаются очень большие числа. Мне так и не удалось добиться точного преобразования строки более 6 символов (используя Currency). Есть и другие недостатки.
Может есть какие предложения по этому поводу?
nikkie (2005-05-20 17:31:00) [1]В определенных кругах витает мнение, что компетентные органы обеих сверхдержав уже лет 8-9 как умеют и на простые множители раскладывать и дискретный логарифм курить.
а мое имхо состоит в том, что надо меньше читать компьютеру про "секретные теоремы высшей алгебры".
кстати, нашел вот текст
http://www.libertarium.ru/libertarium/15006
Более того, в постановлении Правительства РФ " 608 от 27 июня 1995 г. указывается, что сертификация средств защиты информации обязательна только для пользователей, имеющих доступ к сведениям, которые составляют государственную тайну, и применяющих такие средства для защиты этих сведений.
Таким образом, в точном соответствии со всеми действующими законами РФ, указами Президента и постановлениями Правительства РФ любой пользователь (даже государственная организация), желающий применять в своей работе с автоматизированной банковской системой шифровальные средства, определяет это для себя сам, исходя из своих потребностей. Он, обращаясь к продавцам шифровальных средств, принимает на себя все бремя их эксплуатации и необходимость выносить контроль со стороны правительственного агентства, не перекладывая на него ответственности.
Если же пользователь решает не применять в своей системе шифровальных средств, то он волен защищать свою информацию сам под свою полную ответственность любыми другими средствами (в том числе и криптографическими), естественно, уже без внешнего контроля. Использование подобных средств защиты не требует от него получения лицензии.
и еще.
Поэтому чем больше секретности вокруг всего, связанного с криптографией, -- тем более уверенно чувствуют себя разработчики и контролеры подобных шифровальных средств. Если же для их будущих пользователей это создает трудновыносимые условия применения, всегда существуют аргументы, апеллирующие к требованиям "национальной безопасности" или еще более увесистым требованиям "государственной безопасности". По существу, за большинством подобных требований скрывается всего лишь ведомственный, а в некоторых случаях и еще более узкокорыстный частный интерес.
Reindeer Moss Eater (2005-05-19 20:34:00) [2]он придумал хитрый способ атаки на RSA, хочет проверить
Дело конечно профессора.
Но мое имхо что он сельской самодеятельностью занимается.
В определенных кругах витает мнение, что компетентные органы обеих сверхдержав уже лет 8-9 как умеют и на простые множители раскладывать и дискретный логарифм курить.
Само собой, что документальных подтверждений этому в ближайшем времени нигде не найти.
А если бы этот прохфессор был в состоянии действительно придумать способ действенной атаки, то за ним, как вы правильно говорите "уже давно бы приехали"
:)
nikkie (2005-05-19 20:24:00) [3]>Если речь идет исключительно об учебном процессе <...> - ну и наздоровье.
хорошо. рад, что здесь у нас согласие.
Нафига использовать именно длинные числа?
прохвессор сказал. он придумал хитрый способ атаки на RSA, хочет проверить. ему integer не интересует. ну и потом мало ли примений длинным целым... мне они нужны, что системы нелинейных алгебраических уравнений решать.
мне вообще не понятны мучения в этой ветке.
автору видней. может задание ему дали. а может самому интересно разобраться в алгоритме. я бы такое только поощрял.
Reindeer Moss Eater (2005-05-19 19:27:00) [4]ники, ту мэни квесчинс.
Я признаю что в этом вопросе не все так однозначно.
И признаю, что и вы и автор ветки имеет полное право заниматься тем, что обсуждается в этой ветке.
Фил Зиммерман тоже имел (вроде бы) полное право разрабатывать и публиковать свои труды.
Однако подвергался до определенного момента преследованиям со стороны компетентных органов.
Если речь идет исключительно об учебном процессе, скажем надо реализовать диффи-хелман алгоритм обмена открытыми ключами, - ну и наздоровье. Нафига использовать именно длинные числа?
Важен ведь сам алгоритм и принцип. Разве не так?
Если же имеется ввиду реазизация для практического применения - то здесь мне вообще не понятны мучения в этой ветке.
Велосипед давно есть и у него очень круглые колеса в отличие от самодельных.
nikkie (2005-05-19 19:12:00) [5]а ты о какой говорил? "здесь все равно не обойтись". я так понял, что про длинные целые. но потом я собирался задать вопрос и про шифрование. ну давай так. задам сразу все вопросы, которые меня интересуют.
1. имеет ли право некто прочитать Кнута и реализовать программно алгоритмы в нем описанные?
2. имеет ли право некто опубликовать исходные коды реализованных им алгоритмов в открытом источнике?
3. имеет ли право некто прочитать другую книжку с описанием алгоритма RSA или другого алгоритма шифрования, и реализовать его программно?
4. имеет ли право некто опубликовать и эти исходные коды в открытом источнике?
5. имеет ли право некто использовать исходные коды, реализующие алгоритм шифрования данных (написанные им же или взятые из открытого источника), в своей программе?
6. имеет ли право этот некто распространять такую программу? платно или бесплатно, с открытыми кодами или без.
7. имеет ли право некто использовать купленную или полученную бесплатно программу, использующую некий алгоритм шифрования.
если ответ на вопрос зависит от доп условий (например, RSA нельзя, а другой алгоритм можно, частное лицо может, организация - нет, бесплатно можно, а за деньги нельзя, можно если на программу получена лицензия), то хотелось бы услышать о них.
если ответ на хотя бы один вопрос "нет" или "нет при определенных условиях", то хотелось бы узнать какой закон регулирует это и что понимается под "шифрованием". по какой причине, например, хранение текста в DOS-кодировке не считается шифрованием оного.
Reindeer Moss Eater (2005-05-19 18:52:00) [6]Библиотеку для работы с большими числами или библиотеку стойкой криптозащиты?
nikkie (2005-05-19 17:27:00) [7]>Для учебных целей не нужны большие числа.
в средней школе хватает чисел до 1024, а в высшей - до 65534? :))
>Без библиотек здесь все равно не обойтись.
>Готовых или написанных самим автором.
так я не понял. автор имеет право написать эту библиотеку?
Reindeer Moss Eater (2005-05-19 17:16:00) [8]Для учебных целей не нужны большие числа.
А если речь идет об учебном процессе в ВУЗ'е который имеет лицензию на это (таих совсем немного), то в нем-то уж наверняка есть ПО для работы с большими числами.
Впрочем мы от темы отвлеклись.
Без библиотек здесь все равно не обойтись.
Готовых или написанных самим автором.
nikkie (2005-05-19 17:11:00) [9]судя по вопросам, речь идет о учебной студенческой работе. тоже нельзя?
Reindeer Moss Eater (2005-05-19 17:06:00) [10]Про вид деятельности я уже сказал выше.
Разработка средств криптографической защиты информации.
nikkie (2005-05-19 17:05:00) [11]вот не надо. хотите сказать о лицензировании - говорите. только по конкретнее, какая именно деятельность имеется в виду.
я тут про алгоритм Евклида рассказывал. может за мной уже выехали?
Reindeer Moss Eater (2005-05-19 17:01:00) [12]а математики - постановке на учет в соответствующие органы.
Приерно именно так и обстоит дело.
nikkie (2005-05-19 16:54:00) [13]> PS А вообще этот вид деятельности подлежит строгому лицензированию.
а математики - постановке на учет в соответствующие органы.
TUser (2005-05-19 16:51:00) [14]Что конкретно надо делать с такими невзьебенными числами. В ряде случаев это все действительно необходимо, тогда используют длинную арифметику или приблеженные подходы типа алгоритма Рабина-Карпа.
> PS А вообще этот вид деятельности подлежит строгому лицензированию.
ANB (2005-05-19 16:47:00) [15]1) В целое влезет только 8 байт (int64)
Используем в цикле shl и or.
2) Можно попробовать в плавающее, но так как тебе наверняка нужна полная точность, то выигрыша почти не будет (если не прав - мастера поправят)
3) Для более длинный чисел - нужно реализовывать свою арифметику со строками, как двоичным представлением числа, и все операции делать поразрядно. Я писал такую штуку для Clipper, но больше, чем сложение и вычитание я не вытянул, да мне и не надо было.
Shredder (2005-05-19 16:08:00) [16]Все это нужно для шифрования с открытым ключом. Шифруемое сообщение (в моем случае это симметричный ключ другого алгоритма) для реализации вышеупомянутого шифрования должно быть числом. Вот я и допустил возможность использовать произвольную строку с преобразованием ее в число.
Marser (2005-05-19 16:05:00) [17]Возможно Вам подойдёт Base64
http://www.delphikingdom.ru/asp/viewitem.asp?catalogid=691
Reindeer Moss Eater (2005-05-19 16:05:00) [18]Ему надо умножать делить и возводить в степень числа.
И они не укладываются в диапазоны значений типов поддерживаемых компилятором.
-=XP=- (2005-05-19 16:03:00) [19]Что значит "оперировать"?
Вам нужно строчное представление числа перевести в само число?
Или некое число, однозначно представляющее именно эту строку?
Возьмите коды символов в виде массива - эти числа Вам подойдут? По-другому (не как массив) представить строку произвольных символов трудно. Да и зачем?
Reindeer Moss Eater (2005-05-19 16:00:00) [20]СКЗИ он разрабатывает.
И нуждается в арифм. операциях с огромными числами.