Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];

Вниз

Преобразование: строка -> число   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.53 MB
Время: 0.015 c
4-1113581358
rll-progr
2005-04-15 20:09
2005.06.06
Экран


14-1116583846
BugMaker
2005-05-20 14:10
2005.06.06
Подскажите, как правильно выделить части URL-адреса?


3-1114666775
Sergun
2005-04-28 09:39
2005.06.06
сортировка записей в DbGridEh


1-1116606252
Растишка
2005-05-20 20:24
2005.06.06
Цикл


6-1111263832
redlord
2005-03-19 23:23
2005.06.06
сокет в блокированном режиме





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский