Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.54 MB
Время: 0.041 c
1-1116524779
Gear
2005-05-19 21:46
2005.06.06
Шифрование.


14-1116636141
Максим О.
2005-05-21 04:42
2005.06.06
Помогите с Dephi 8


3-1114768405
qazxsw
2005-04-29 13:53
2005.06.06
Microsoft SQL Server


9-1110394276
Arkafon
2005-03-09 21:51
2005.06.06
GDI


14-1116589607
WOLFphantom
2005-05-20 15:46
2005.06.06
DerectX и OpenGL в Delphi