erreur python

Miomio4081

erreur python

Message par Miomio4081 » 29 juin 2016 15:20

Bonjour,

Je suis en train de coder El Gamal (protocole de cryptographie, mais là n'est pas le problème; c'est simplement informatique voir peut être juste syntaxique) en python (sagemaths), le chiffrement fonctionne très bien, mais dans le déchiffrement, ligne par ligne le programme tourne, mis bout à bout, j'ai une erreur: quelqu'un la voit?

import random
def ElGamal (pb,pr,message,u):
if u=='e':
chiffre=[]
a=random.randint(0,pb[0])
message=list(message)
for i in range (0, len(message),1):
m=message
m=ord(m)-97
c1=(pb[1]**a)%pb[0]
c2=(m*(pb[2]**a))%pb[0]
chiffre=chiffre+[[c1,c2]]
return chiffre
if u=='d':
clair=[]
for i in range (0,len(message),1):
c1=pb[0]
c2=pb[1]
m=(c2*(1/(c1**pr)))%pb[0]
m=chr(m+97)
print m
clair=clair+[m]
message=string(clair)
return clair


ElGamal([101,3,41],5,[[53, 15], [53, 49], [53, 88]],'d')

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "_sage_input_20.py", line 10, in <module>
exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("RWxHYW1hbChbMTAxLDMsNDFdLDUsW1s1MywgMTVdLCBbNTMsIDQ5XSwgWzUzLCA4OF1dLCdkJyk="),globals())+"\\n"); execfile(os.path.abspath("___code___.py"))
File "", line 1, in <module>

File "/tmp/tmpWCZmIo/___code___.py", line 3, in <module>
exec compile(u"ElGamal([_sage_const_101 ,_sage_const_3 ,_sage_const_41 ],_sage_const_5 ,[[_sage_const_53 , _sage_const_15 ], [_sage_const_53 , _sage_const_49 ], [_sage_const_53 , _sage_const_88 ]],'d')" + '\n', '', 'single')
File "", line 1, in <module>

File "/tmp/tmp3h0Lgt/___code___.py", line 19, in ElGamal
c1=pb[_sage_const_0 ]
TypeError: 'sage.rings.integer.Integer' object has no attribute '__getitem__'


Merci :D

Miomio4081

Re: erreur python

Message par Miomio4081 » 29 juin 2016 15:21

Les indentations ne se sont pas affichées, mais elles sont bien là

Messages : 0

Inscription : 11 déc. 2015 08:24

Profil de l'utilisateur : Élève de lycée

Re: erreur python

Message par left_shift » 29 juin 2016 17:40

Dans ton exemple :

Code : Tout sélectionner

ElGamal([101,3,41],5,[[53, 15], [53, 49], [53, 88]],'d') 
pb est un tableau uni-dimensionnel donc les deux lignes ci-dessous provoquent une erreur :

Code : Tout sélectionner

c1=pb[i][0]
c2=pb[i][1]

Miomio4081

Re: erreur python

Message par Miomio4081 » 30 juin 2016 11:24

ah oui dur, je me suis juste trompé dans le nom de la liste, c'est message[0] etc. que je voulais mettre :p
MERCI

Messages : 9679

Inscription : 30 juil. 2008 16:59

Profil de l'utilisateur : Élève de lycée

Re: erreur python

Message par fakbill » 30 juin 2016 15:14

dediou les warnings de sage ne sont pas très lisibles...
Pas prof.
Prépa, école, M2, thèse (optique/images) ->ingé dans le privé.

Répondre