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

Вниз

Большие числа для RSA   Найти похожие ветки 

 
Dark Elf   (2002-06-11 12:25) [0]

Народ, мне для криптосистемы RSA нужны ОЧЕНЬ БОЛЬШИЕ ЦЕЛЫЕ ЧИСЛА - порядка 10 в степени 4000, чтобы эта криптосистема могла нормально шифровать. Скажите народ, как привести числа типа EXTENDED (другой не подойдет) к такому типу (типа Int64, но с большими числами (-10^4000...+10^4000)), чтобы с ним можно было проводить операции div, mod - это нужно для генерации ключа в RSA, или как определить свой тип такого типа. Заранее благодарен - желающим могу выслать программу и исходник - все равно собираюсь ее с исходником выкладывать.


 
AFROLOV   (2002-06-11 12:38) [1]

http://algolist.manual.ru/maths/longnum.php - но учти что более х..ю реализацию трудно найти


 
Skyle   (2002-06-11 12:44) [2]

См. ответ на вопрос про округление числа, там тебе помогут ...%)
А если серьёзно... Задавай числа в строковом виде (до 10^2147483648 можно догнать %))) Потом:
1) Перегрузи +
2) Перегрузи *
3) Задай x^-1
4) Задай -x
И будет тебе счастье %)))
Полный код писать не буду, сам понимаешь почему...:)
По идее, общий вид реализации понятен, то есть
1) Пусть a := "1234"; b := "567", и var A,B:MyType;
Заведи функцию, которая будет делать примерно так...
Переворачивать строки, а потом складывать по правилу:
var Value, InMind:Byte;
.......
Value := (ord(A[i])+ord[B[i])) mod 10;
C[i] := Value+InMind;
InMind :=(ord(A[i])+ord[B[i])) div 10
и т.д....%)))
А для того, чтобы перегрузить операции DIV и MOD тебе этого хватит...
Примерно так....дальше сам думай... работающий вариант проги у меня есть, а вот исходники померли в недрах борьбы с вирусами ...:(( Но тут ничего особо сложного нету, так что сам поди догадаешься :)))
Если что, пиши на мыло Skyle@ngs.ru


 
Skyle   (2002-06-11 12:47) [3]

Пока я писал, тут уже ссылочку воткнули %)))
Кстати, реально, очень беспантовая и гиморная реализация %)))


 
MBo   (2002-06-11 12:50) [4]

>1) Перегрузи +
Уши С++ торчат ;)


 
Skyle   (2002-06-11 13:05) [5]


> >1) Перегрузи +
> Уши С++ торчат ;)

Есть маленько...%) А что, плохо чтоли? %))))


 
MBo   (2002-06-11 13:45) [6]

Дык нету перегрузки операторов в Object Pascal.
Придется делать
function SuperIntAdd(i1,i2:SuperInt):SuperInt;
:)


 
Skyle   (2002-06-11 13:54) [7]

Ну да....либо так, либо чисто по-русски %)
Например "перегрузка" (так точнее) операторов для работы с векторами выглядела у меня в своё время примерно так
function Plus (A,B:Vector):Vector;
%)
И никто не напрягался...%) А на С++ это выглядит всё-таки гораздо лучше (ИМХО)...
В данном случае дело просто в названиях...%)


 
Вячеслав   (2002-06-11 14:33) [8]

http://triade.studentenweb.org/GInt/gint.html


 
Slinker   (2002-06-13 17:28) [9]

Кстати, чем не нравится реализация на Algolist"е ?


 
Slinker   (2002-06-13 17:43) [10]

Кстати Skyle, такая функция перегрузки оператора будет работать в несколько раз медленнее, чем с const"ами.

Впрочем, насколько я понял, скорость не обязательна => так оно как раз попроще будет тогда.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.06.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.009 c
6-77541
DT
2002-04-14 16:23
2002.06.24
Сниффер


7-77635
Vitaly
2002-03-28 16:15
2002.06.24
Не получается переписать Audio-CD на болванку.


1-77360
Sniffer
2002-06-13 12:32
2002.06.24
Координаты чужого окна


1-77478
Big Daddy
2002-06-11 12:42
2002.06.24
передача файла


1-77443
kito
2002-06-10 09:04
2002.06.24
Как реализовать векторную графику в приложении





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский