DSA Variant
DSA Variant
A signature elements of the digital signature is computed by first covering the long-term private
key d utilizing a single additive process to join the key d with a first value in order to generate a
digital signature of a message m. Then, the concealed value is multiplied by a second value to
gain components (ElGamal,1985).
The first value is enumerated using the message m and another component of the digital
signature, and the second value is obtained deploying the inverse of a component of the first
value. In such a way, the signature component s is therefore produced using a process that
counters the efficiency of side channel attacks, for instance, differential side channel analysis, by
keeping away from a direct multiplication employing long-term private key d.
The above algorithm is in connection to D-H algorithm, where both the use of exponentiation in
a finite field, and its security which is based on the rigidity of calculating discrete logarithms are
the backbone of it. ElGamal algorithm’s benefit is that each time exactly similar plaintext is
encrypted. His algorithm provides different cipher text with one drawback where the cipher text
length is double the length of the plain text. It also decrypts (verifies) the signature by employing
private key to encrypt (sign) and public key (Menezes, van Oorschot and Vanstone, 1996). Thus,
we can sum up ElGamal signature scheme as follows:
By looking at a cryptographic system having cryptographic parameters that involve a proper first
number p and a generator α. A signee A has long-term private key d and public key, which is
calculated by
y=αd mod p
Then, to generate an ElGamal signature for a message m, the following steps are used.
1- Select random integer k, with the value in the range 1 to p-2, where gcd (k, p−1) =1.
Rivest-Shamir-Adleman (RSA)
RSA is a public-key cryptosystem developed by Ron Rivest, Adi Shamir, and Leonard Adleman.
RSA involves the use of static keys, whereas the D-H key exchange algorithm required the
dynamic exchange of keys. The RSA system reduces communications overhead with the ability
to have static, unchanging keys for each receiver that are ‘advertised’ by a formal ‘trusted
authority’ (the hierarchical model) or distributed in an informal ‘web of trust’. The
computational problem that RSA addresses the integer factorization problem. For example, a
simple factorization problem is: What are the factors of the number 147? After trying a variety of
numbers, such as 2, 4 and 5, it is evident that they will not divide equally into 147. It soon
becomes apparent that after experimenting with more numbers, 147 only has 3 and 7 as factors.
This example is very easy, and it is worth remembering that Rivest, Shamir, and Adleman
experimented with much larger numbers, numbers with over 100 digits. Subsequently, Rivest
discovered a method that provides secure communications and did not suffer the key distribution
problem. It can be used to encrypt messages and provide digital signatures. It is the most
commonly used asymmetric algorithm, with high level of security (Alan Dhillon: 2002).
To sign a message m by RSA algorithm, the private key [d, N] is used in the equation.
𝑆≡𝑚𝑑 𝑚𝑜𝑑 𝑁
To verify the signature, the public key [e, N] is used in the equation.
𝑚≡𝑆𝑒 𝑚𝑜𝑑 𝑁
Where N is the product of two large primes p and q.
If the message m = the received (m) then the sender is authentic and the message has integrity.
However, generally if RSA is used for signing a message, it is more efficient to sign a hash value
for the message rather than the message itself.
Digital Signature Algorithm (DSA)
As mentioned above, the Digital Signature Algorithm (DSA) is one of the variations of ElGamal
digital signature scheme. In this algorithm, a signatory, which has public and private keys, is
used to generate a digital signature of digital message; and a verifier to validate the authenticity
of the signature as well. The private key of the signatory is utilized in the signature generation
process whereas the public key is used in the signature verification process. For both signature
generation and verification, the data (which is known as a message) is decreased by means of the
Secure Hash Algorithm, like SHA which is identified in FIPS 180-1. Thus, the correct signature
of the signatory cannot be generated if an adversary does not know the private key of the
signatory. For more clarification, these signatures cannot be faked, however anyone can justify a
correctly signed message by using the signatory’s public key.
The verifier shall also gain the domain parameters in case the DSA is utilized for generating the
digital signature. These public key and domain parameters may be concerted between the two
communicating parties or gained from a trusted party (e.g., Certificate Authority, CA) (Atreya,
Hammond, Paine, Starrett, & Wu: 2002).
To sign a message m digitally, the below equations are run to generate the signature, r and s:
Whereas p, q, g, y are public parameters, which is long-term private key; k is a random integer
for each message.
For verification purpose, the following is performed:
w=s’-1 mod q
v= (gH(m’.w)mod q . y(r’.w mod q)mod p) mod q
If v = r then the signature is verified.
Where r', s',m' are the received signature and message.
Modified DSA Algorithm (M.DSA)
There are various customized versions of standard DSA algorithm that are supported by the NIST,
have been built up which ensured efficiency of the execution time measurement of either on the
signing side or the verification side. The M.DSA, which was developed lately has shown good
improvement in the verification time, and it will be included and compared with the proposed GOST
algorithm in later chapter for examination of execution time for signing and signature verification.
In M.DSA versions, the equations contents of both signature and verification were altered.
The computation of signature s is adjusted at the sender side, while one equation of the DSA
verification calculation is deleted and the verification equation is also adjusted to accomplish the
signature validation at the received side. These adjustments have decreased the verification time but
reserved the same difficulty level for the signature and verification of NIST-DSA (M. Rifaat: 2017
and Ali, 2004). The M.DSA signing process consists of performing the following calculations
𝑠= ((𝑟.𝑘−ℎ(𝑚)).𝑥−1)𝑚𝑜𝑑𝑞
The calculated signature r and s are then sent to the recipient, together with the message m.
Modification of GOST
The modified M.GOST algorithm is aimed to produce improvements in the signature verification
processing time. Few alterations to the equations used for the calculation is done that reduces the
execution computation steps without affecting the security parameters that were used for the
original GOST algorithm. These alterations are written in details in the following sections that
include signing and verification. The mathematical proof of the modified verification process is
included next followed by a numerical example.