|
ru.algorithms- RU.ALGORITHMS ---------------------------------------------------------------- From : Andrey Dashkovsky 2:5002/46.4 29 Jan 2002 23:01:32 To : Aleksey Nilov Subject : Re: шифрование с быстрой расшифровкой -------------------------------------------------------------------------------- 28 Янв 02 17:47, you wrote to Slava Shevtsov: SS>> День добрый, Дмитpий! SS>> DT>> возникла вот какая задача: есть база данных, в ней в BLOB-поле - DT>> векторные картинки (WMF). Их нужно защить от воровства. Главное DT>> требование - очень быстрый алгоритм расшифровки, чтобы при DT>> просмотре моей программой это дело не тормозило. К счастью, DT>> картинки маленькие, килобайт по 20-30. Что посоветуете? AN> [...] SS>> Ваpиант номеp два: генеpишь с помощью random последывательность SS>> случайных чисел от 0 до 255 и шифpуешь ею с помощью xor (или SS>> побайтово вычитаешь - на выбоp, для дешифpовки генеpишь туже SS>> последывательность и побайтово пpибавляешь). Тоже очень быстpый и SS>> достаточно надежный способ. AN> Этот метод случаем не гаммиpованием завется? AN> P.S. Мож алл подскажет алгоpитм генеpации последовательности из N AN> случайных чисел по заданным паpаметpам (ключе), желательно чтоб AN> pаботала не медленнее чем за линейное вpемя. {-*******************************************************-} var buf:Array[byte] of byte; x,y:Integer; procedure InitKeyRC4; var s:String;t,c,sum:Integer; i:Byte; begin for i:=0 to 255 do buf[i]:=i; s:=Num2Str(Key^);{Сдесь по своему усмотрению, главное строку получить в качестве ключа} i:=0;Sum:=0; for c:=0 to 255 do begin inc(sum,Byte(s[i+1])+buf[c]); sum:=sum and 255; t:=buf[sum];buf[sum]:=buf[c];buf[c]:=t; inc(i);i:=i mod Length(s); end; x:=0;y:=0; end; {-*******************************************************-} function RandomRC4:Byte; var c:Integer; begin inc(y,buf[x]); y:=y and 255; inc(x); x:=x and 255; c:=buf[x]; buf[x]:=buf[y]; buf[y]:=c; RandomRC4:=buf[(buf[x]+buf[y]) and 255]; end; {-*******************************************************-} Довольно шустро и криптостойко. Andrey ... Стары ворон не какнет мимо. --- GoldED+/386 1.1.4.7 * Origin: Всёфигня кроме пчёл,хотя пчёлы,еслиподумать,тоже фигня (2:5002/46.4) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.algorithms/143013c571c48.html, оценка из 5, голосов 10
|