Professional Documents
Culture Documents
Implementation of DIGITAL SIGNATURE Algorithm Using C/C++/Python
Implementation of DIGITAL SIGNATURE Algorithm Using C/C++/Python
NAME : S Harshith
REG NO: 18BCI0099
Aim:
To develop the Digital Signature Algorithm using C/C++/Python.
Short-Procedure:
CODE:
import random
def modInverse(ai,m):
ai=ai%m
for x in range(1,m):
if((ai*x)%m==1):
return x
return 1
def hashFunction(mess):
li=[]
for i in range(0,len(mess)):
temp=list(str(ord(mess[i])))
for j in range(len(temp)):
li.append(list(bin(int(temp[j]))[2:]))
s=''
for i in range(len(li)):
if(len(li[i])!=4):
l=4-len(li[i])
li[i]=s.join(li[i])
li[i]=(l*'0')+li[i]
else:
li[i]=s.join(li[i])
var1=list("0000")
var2=list("0000")
for i in range(0,len(li),2):
for j in range(0,4):
var1[j]=str(int(var1[j])^int(li[i][j]))
var2[j]=str(int(var2[j])^int(li[i+1][j]))
temp2=s.join(var1)+s.join(var2)
temp3=0
for i in range(0,8):
temp3=temp3+(int(temp2[i])*(2**(7-i)))
return temp3
g=int(h**((p-1)/q))
x=int(random.randint(1,q))
y=(g**x)%p
print("PUBLIC KEY: ",y)
print("PRIVATE KEY: ",x)
OUTPUT:
SCREENSHOTS OF CODE:
THE END …….