Professional Documents
Culture Documents
Verification
Verification
Verification
Ici on va vérifier que le message n'a pas été altéré en recalculant sa signature et en la comparant avec celle reçue
Args:
ciphertext (int): The encrypted message.
n (int): The modulus.
key (int): The decryption key (private exponent).
Returns:
str: The original plaintext message.
"""
# Extract individual digits from the ciphertext
msg_cipher = []
while ciphertext != 0:
ciphertext, remainder = divmod(ciphertext, n)
msg_cipher.append(remainder)
block_padded.append(chr(int(block[: i - 3])))
msg_padded.extend(reversed(block_padded))
return "".join(msg_padded)
ReceivedhashMessage = decipherRSA(signedMessage, n, e)
Message signé =
1705005349270368498277509172464249830183610499908347876055100540079446178871775775625534318189666959363658281035106
20014076522006406820281559597222311502372285971682366339058893809026759964243011709466555681902343140492411557791117
30963788834098657920256898308736063022455560107595034120552352838746548580633064994529437278733134697823570111232982
59383299241882065533418358360173543344926543697779599980587570845155583920095419046047780300177531971118376805183556
42265606141020055286412950735220141735359301511497586383028927852728329005787244893192449307109608390400590686799705
2478078662508872995853236404431392527
Rehachage du message
In [ ]: import math
# MD5 Implementation
Args:
message (str): The input message to hash.
Returns:
str: The hexadecimal representation of the MD5 hash.
"""
# Initialize constants
K = [int(abs(math.sin(i + 1)) * 2 ** 32) for i in range(64)]
s = [7, 12, 17, 22] * 4 + [5, 9, 14, 20] * 4 + [4, 11, 16, 23] * 4 + [6, 10, 15, 21] * 4 # shifts values
A, B, C, D = a, b, c, d
for j in range(64):
if j <= 15:
temp = D
D = C
C = B
B = (B + leftRotate(A + F_func + K[j] + SubBlocks[g], s[j])) & 0xFFFFFFFF
A = temp
a = (a + A) & 0xFFFFFFFF
b = (b + B) & 0xFFFFFFFF
c = (c + C) & 0xFFFFFFFF
d = (d + D) & 0xFFFFFFFF
return hashMD5Hex
# Message hashing
hashMessage = MD5(message)
Message reçu =
Salut! On fait un test de notre implémentation des signatures numériques avec MD5 et RSA!
On va signer ce message et par la suite vérifier s'il n'a pas été altéré!
A plus pour la vérification...
Message haché =
00598162889abc65837467a804fbef25
Verification
if ReceivedhashMessage == hashMessage:
print("\nVérification réussie! Le message n'a pas altéré. Vous pouvez le lire en toute quiétude!")
else:
print("\nEchec de la vérification! Le message a été altéré! Veuillez démander qu'on vous le renvoie!")
Message haché =
00598162889abc65837467a804fbef25
Vérification réussie! Le message n'a pas altéré. Vous pouvez le lire en toute quiétude!