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