Layihə İşi Fakültə: Kompüter Elmləri Tələbə



Yüklə 120,93 Kb.
səhifə2/2
tarix02.05.2022
ölçüsü120,93 Kb.
#86384
1   2
Mehrac Qəribov İnformasiyanın qorunması və kriptologiyası

El-Qamal sxemi

El-Qamal sxemi — 1985-ci ildə Sahib El-Qamal tərfindən təklif olunmuşdu. Bu sxem elektron imza və şifrləmə (encryption) üçün istifadə olunur. El-Qamal alqoritmi Diffie-Hellman alqoritminə əsaslanır. O, Diffie-Hellman alqoritmini iki alqoritm şəklində ifadə etmişdi. El-Qamal sxemi vasitəsi ilə şifrləmə 3 kompanentdən ibarətdir:

  • Xüsusi açarın generasiyası

  • Şifrləmə alqoritmi (Encryption algorithm)

  • Deşifrlmə alqoritmi (Decryption algorithm)

Xüsusi açarın generasiyası.

  • n bit uzunluğunda təsadüfi p sadə ədədi generasiya olunur.

  • Zp çoxluğundan təsadüfi g primitiv elementi seçilir.

  • Elə təsadüfi x tam ədədi seçilir ki, 1

  • “y=gx mod p” hesablanır

  • Burada açıq açar (p,g,y) üçlüyü, qapalı açar isə x-dır

Şifrləmə alqoritmi

Hər hansı “M” məlumatı aşağıdakı şəkildə şifrlənir

  • Sessiya açarı seçilir - Elə təsadüfi k ədədi seçilir ki, 1

  • a=gk mod p” və b=ykM mod p hesablanır

  • (a,b) ədədlər cütü şifrlənmiş mətindir

Asanlıqla görmək mümkündür ki, şifrlənmiş mətnin uzunluğu daxil edilmiş M mətnindən iki dəfə çoxdur.Digər tərəfdən k-nı göstərilən intervalda deyildə 1-ə və ya p-1-ə bərabər götürsək onda verilmiş məlumatın deşifrlənməsi ilk addımda baş verər ki, buda çox göndərilən məlumat üçün çox təhlükəlidir.

Deşifrləmə alqoritmi

x qapalı açarını bilməklə (a,b) şifrlənmiş mətnindən qəbul edilən mətni aşağıdakı düstur vasitəsi ilə əldə etmək olar:



  • M=b(ax)-1 mod p

  • Asanlıqla görmək olar ki, (ax)-1 ≡ g –kx (mod p)

bu səbəbdən b(ax)-1 ≡ (ykM)g-xk ≡(gxkM) g-xk ≡ M (mod p) hesablamaq olar.

  • Praktiki hesablamaq üçün aşağıdakı düsturdan istifadə edilir:

M≡b(ax)-1 mod p= b*a (p-1-x) mod p

El-Qamal sxeminə aid aşağıdakı misala baxaq:



  • Şifrləmə:

Fərz edək ki, M=5 məlumatını şifrləmək  tələb olunur. Xüsusi açarın generasiya edək: Fər edək ki, p=11, g=2, x=8 y=gx mod p = 28 mod 11 =3

Göründüyü kimi, burada (p,g,y) üçlüyü (11,2,3) qapalı açar x isə 8-ə bərabərdir. Məlumatın şifrlənməsi üçün k=9 götürək. a=gk mod p=29 mod 11=512 mod 11=6 hesablanır.

b=ykM mod p =395 mod 11=19683*5 mod 11=9 Nəticədə alırıq ki, (a,b)=(6,9) şifrlənmiş məlumatdır.


  • Deşifrləmə

(a,b)=(6,9) şifrlənmiş məlumatından və x=8 qapalı açarından M=5 məlumatını almaq tələb olunur

  • M≡b(ax)-1 mod p= b*a (x) -1 mod p = 9 (68)-1 mod 11=5

Alırıq ki, ilkin mətn M=5-dir.

k-nın təsadüfi seçilməsi səbəbi ilə El-Qamal sxeminə ehtimal şifrləməsi və ya təsadüfi şifrləmədə deyilir.El-Qamal sxemi ilə şifrləmə zamanı çatışmayan əsas xüsusiyyət onun sonda alınan mətnin uzunluğunun daxil edilmiş mətindən iki dəfə uzun olmasıdır.

Elgamal Şifrələmə, şifrələmə üçün istifadə olunan bir növ asimmetrik açar alqoritmdir. Açıq açar kriptoqrafiya üçün istifadə olunur və Diffie-Hellman açar mübadiləsinə əsaslanır.

Bu asimmetrik açar şifrələmə kriptoqrafiyası, g ^ a və g ^ k-ləri bildiyimiz, g ^ ak hesabladığımız mənasını verən tsiklik qrupda diskret loqarifma tapmaq çətinliyinə əsaslanır.

Hibrid kriptosistemlər də həmçinin bu alqoritmdən istifadə edir.

Alqoritm:



  • Elgamal Şifrələmə Alqoritmi üç hissədən ibarətdir



  1. Əsas generator

  2. Şifrələmə alqoritmi

  3. Şifrəni açma alqoritmi.

İctimai Parametr: Etibarlı bir üçüncü tərəf çox sayda p və bir generator generatorunu nəşr edir.

Aşağıda, Elgamal Şifrələmə Alqoritmi üçün Python'a giriş, istifadə, alqoritm və kodu daxil edək.

import random

from math import pow

a=random.randint(2,10)

#To fing gcd of two numbers

def gcd(a,b):

if a


return gcd(b,a)

elif a%b==0:

return b

else:


return gcd(b,a%b)

#For key generation i.e. large random number

def gen_key(q):

key= random.randint(pow(10,20),q)

while gcd(q,key)!=1:

key=random.randint(pow(10,20),q)

return key

def power(a,b,c):

x=1

y=a


while b>0:

if b%2==0:

x=(x*y)%c;

y=(y*y)%c

b=int(b/2)

return x%c

#For asymetric encryption

def encryption(msg,q,h,g):

ct=[]

k=gen_key(q)



s=power(h,k,q)

p=power(g,k,q)

for i in range(0,len(msg)):

ct.append(msg[i])

print("g^k used= ",p)

print("g^ak used= ",s)

for i in range(0,len(ct)):

ct[i]=s*ord(ct[i])

return ct,p

#For decryption

def decryption(ct,p,key,q):

pt=[]


h=power(p,key,q)

for i in range(0,len(ct)):

pt.append(chr(int(ct[i]/h)))

return pt

msg=input("Enter message.")

q=random.randint(pow(10,20),pow(10,50))

g=random.randint(2,q)

key=gen_key(q)

h=power(g,key,q)

print("g used=",g)

print("g^a used=",h)

ct,p=encryption(msg,q,h,g)

print("Original Message=",msg)

print("Encrypted Maessage=",ct)

pt=decryption(ct,p,key,q)

d_msg=''.join(pt)

print("Decryted Message=",d_msg)

Input= CodeSpeedy

Output:


Enter message.CodeSpeedy

g used= 60635310250822910920670085797255424040413892864017

g^a used= 43614735900565768923384780647044097770719380284049

g^k used= 41675490433882378107772354864700362515626473012377

g^ak used= 17548756165231195763385969811276881943441214592545

Original Message= CodeSpeedy

Encrypted Maessage= [1175766663070490116146859977355551090210561377700515, 1947911934340662729735842649051733895721974819772495, 1754875616523119576338596981127688194344121459254500, 1772424372688350772101982950938965076287562673847045, 1456546761714189248361035494335981201305620811181235, 1965460690505893925499228618863010777665416034365040, 1772424372688350772101982950938965076287562673847045, 1772424372688350772101982950938965076287562673847045, 1754875616523119576338596981127688194344121459254500, 2123399495992974687369702347164502715156386965697945]

Decryted Message= CodeSpeedy



Bu alqoritmdə kimsə mesajınızı yalnız a dəyərini biləndə bilə bilər.

Ədəbiyyat siyahısı:

  • İNFORMASİYA TƏHLÜKƏSİZLİYİ, Dərslik, Bakı, “İQTİSAD UNİVERSİTETİ“ nəşriyyatı, şəkilli, 2016 - 384 səh.

  • https://az.wikipedia.org

  • Əliquliyev R.M., İmamverdiyev Y.N. Rəqəm imzası texnologiyası, Bakı, Elm, 2003. – 132 с.

  • Taher ElGamal (1985). "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms"

Yüklə 120,93 Kb.

Dostları ilə paylaş:
1   2




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©genderi.org 2024
rəhbərliyinə müraciət

    Ana səhifə