Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2013, 14:53   #1
Nastya2406
Пользователь
 
Регистрация: 27.05.2011
Сообщений: 22
По умолчанию шифрование алгоритма Эль-Гамаль

Ребят может у кого-нибудь есть программа на эту тему...чтобы шифровала и расшифровывала...очень срочно надо...помогите пожалуйста!!!
Nastya2406 вне форума Ответить с цитированием
Старый 16.12.2013, 15:32   #2
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

http://programmersforum.ru/showthread.php?t=246535
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 16.12.2013, 15:40   #3
Nastya2406
Пользователь
 
Регистрация: 27.05.2011
Сообщений: 22
По умолчанию

Спасибо...но может кто-нибудь готовую программу может скинуть,вместе с готовой формой

Последний раз редактировалось Nastya2406; 16.12.2013 в 15:47.
Nastya2406 вне форума Ответить с цитированием
Старый 16.12.2013, 15:50   #4
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Это и есть готовая программа. А готовый проект вы легко можете получить, положив на форму три кнопки.
7 edit'ов и один memo

Последний раз редактировалось ZX Spectrum-128; 16.12.2013 в 15:52.
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 16.12.2013, 16:07   #5
Nastya2406
Пользователь
 
Регистрация: 27.05.2011
Сообщений: 22
По умолчанию

а вы не могли бы мне помочь в этом...для меня форма это ужасная проблема
Nastya2406 вне форума Ответить с цитированием
Старый 18.12.2013, 14:08   #6
Nastya2406
Пользователь
 
Регистрация: 27.05.2011
Сообщений: 22
По умолчанию

Помогите пожалуйста.напишите комментарии к этой программе...а то разобраться в ней не могу
Nastya2406 вне форума Ответить с цитированием
Старый 18.12.2013, 14:55   #7
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Цитата:
Помогите пожалуйста.напишите комментарии к этой программе...а то разобраться в ней не могу
Вы и не стараетесь. Напишите сюда собственными словами: как работает этот алгоритм?

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог
_PROGRAMM_ вне форума Ответить с цитированием
Старый 18.12.2013, 17:30   #8
Nastya2406
Пользователь
 
Регистрация: 27.05.2011
Сообщений: 22
По умолчанию

ну вообще чисто теоретически это должно происходить так:
Шифрование:
Допустим что нужно зашифровать сообщение M=5.
Произведем генерацию ключей :
пусть p=11, g=2. Выберем x=8 - случайное целое число x такое,что 1 < x < p.
Вычислим y= (g^x)mod p=(2^8)mod 11=3.
Итак , открытым является тройка (p,g,y)=(11,2,3),а закрытым ключом является число x=8.
Выбираем случайное целое число k такое, что 1 < k < (p − 1). Пусть k=9.
Вычисляем число a=(g^k)mod p=(2^9)mod 11=512 mod 11=6.
Вычисляем число b=(y^k)*M*mod p=(3^9)*5*mod 11=19683*5*mod 11=9.
Полученная пара (a,b)=(6,9) является шифротекстом.
Расшифрование:
Необходимо получить сообщение M=5 по известному шифротексту (a,b)=(6,9) и закрытому ключу x=8.
Вычисляем M по формуле : M=b((a^x)^-1)mod p=9((6^8)^-1)\mod 11=5
Получили исходное сообщение M=5.

а так это или нет в проге незнаю.поэтому и прошу написать комментарии так как форму я сама делала и незнаю что куда вводить и как
Nastya2406 вне форума Ответить с цитированием
Старый 18.12.2013, 20:08   #9
_PROGRAMM_
Участник клуба
 
Аватар для _PROGRAMM_
 
Регистрация: 30.07.2009
Сообщений: 1,601
По умолчанию

Вы же содрали это из вики. Поймите, ни у кого нет желания Вам помогать, когда Вы сами ничего понять не хотите. Написанная и прокомментированная программа будет стоить денег. Либо выкладывайте Ваши наработки, либо платите. У меня нет времени все это: качать, устанавливать. Более того delphi на моем компьютере работать не будет.
Цитата:
так как форму я сама делала и незнаю что куда вводить и как
Это говорит о очень больших пробелах в Ваших знаниях.

В мире нет вечных двигателей, зато есть вечные тормоза...

Блог

Последний раз редактировалось _PROGRAMM_; 18.12.2013 в 21:01.
_PROGRAMM_ вне форума Ответить с цитированием
Старый 18.12.2013, 21:20   #10
Nastya2406
Пользователь
 
Регистрация: 27.05.2011
Сообщений: 22
По умолчанию

мне просто напросто нужны комментарии к этому коду:

Код:
Var
 primes : Array[1..7] Of integer =
      (2, 3, 5, 7, 11, 13, 17);
 abet:array[0..25] of char;
 p,g,k,y,x: Integer;

procedure TForm1.Button1Click(Sender: TObject);
Var
 i,j:integer;
 p1,g1,x1,y1:string;
begin
 j:=1+random(7);
 i:=2+random(6);
  while (j>i) or (j=i) do
   begin
    j:=1+random(7);
   end;
 p:={17}primes[i];
 g:={13}primes[j];
 x:={8}RandomRange(1,p-1);
 y:={1}(Round(exp(x*ln(g)))) mod p;
 p1:=p1+IntToStr({p}primes[i]);
 g1:=g1+IntToStr({g}primes[j]);
 x1:=x1+IntToStr(x);
 y1:=y1+FloatToStr(y);
 edit1.Text:=p1;
 edit2.Text:=g1;
 edit3.Text:=x1;
 edit4.Text:=y1;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
 i,j,M:integer;
 M1:string;
 a,b:Int64;
begin
Memo1.Lines.Clear;
k:={13}RandomRange(1,p-1);
edit6.Text:=IntToStr(k);
for i:=0 to 25 do abet[i]:=chr(97+i);
M1:=Edit5.Text;
for j:=1 to length(M1) do
  for i:=0 to 25 do
    if M1[j]=abet[i] then
      begin
        M:=i;
        a:=(Round(exp(k*ln(g)))) mod p;
        b:=(Round(exp(k*ln(y)))*M) mod p;
        Memo1.Lines[0]:=Memo1.Lines[0]+IntToStr(a)+','+IntToStr(b)+',';
      end;

end;


procedure TForm1.Button3Click(Sender: TObject);
var
SLA: array[1..50] of string;
SLB: array[1..50] of string;
 i,j,n,t,a,b,c,d,M,posS,sort:integer;
 M1,M2,a1,b1:string;
begin
 c:=1;
 d:=1;
 j:=1;
 sort:=1;
 M1:=Memo1.Lines.Text;

 while Pos(',',M1)<>0 do
  begin
  posS:=pos(',',M1);
    if (sort Mod 2)<>0 then
     begin
      SLA[c]:=copy(M1,0,posS-1);
      c:=c+1;
     end
    else
     begin
      SLB[d]:=copy(M1,0,posS-1);
      d:=d+1;
     end;
   sort:=sort+1;
   delete(M1,1,posS);
  end;


  For i:=1 to 20 do
   begin
    if SLA[i]='' then
     Break
     else
    a:=StrToInt(SLA[i]);
    {for n:=1 to k do
     begin
       a:=a*a;
     end; }
    b:=StrToInt(SLB[j]);
    M:=(b*(Round(exp((p-1-x)*ln(a))))) mod p;
    {M:=(b*a) mod p;}
    for t:=0 to 25 do
     begin
       if t=M then
       M2:=M2+abet[t];
       end;
       {M2:=M2+IntToStr(M);}
    j:=j+1;
     end;

 edit7.Text:=M2;
end;


end.


___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE]
(кнопочка на панели форматирования с решёточкой #)
Не забывайте об этом!

Модератор.

Последний раз редактировалось Serge_Bliznykov; 23.12.2013 в 13:04. Причина: отформатировал код
Nastya2406 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Описание алгоритма шифрования Эль-гамаль Mixim Свободное общение 10 14.12.2013 17:16
Шифрование текста методом Эль-Гамаля W. Aron Помощь студентам 1 27.10.2013 12:27
криптография (эль-гамаль) serega28 Общие вопросы Delphi 0 22.06.2011 11:54
шифрование информации по правилу алгоритма RSA chillin Помощь студентам 1 10.02.2011 17:00