Maple-procedures bij RSA

to_number | from_number  ][  terug naar RSA


Hieronder staan de twee Maple-procedures waarmee omzettingen ten behoeve van eenvoudige RSA-coderingen kunnen worden bewerkstelligd.

to_number - omzetting van een tekst-string naar een getal

           > to_number := proc(st)
> local ll,nn,ss,ii,num;
> num :=
    table(['a'=1,'b'=2,'c'=3,'d'=4,'e'=5,'f'=6,'g'=7,'h'=8,'i'=9,'j'=10,'k'=11,/
    'l'=12,'m'=13,'n'=14,'o'=15,'p'=16,'q'=17,'r'=18,'s'=19,'t'=20,'u'=21,'v'=22,'w'=23,'x'=24,'y'=25,'z'=26,'` `'=27]):
> if not type(st,string) then ERROR(`wrong number (or type) of arguments`) fi;
> ll:=length(st);
> if ll= 0 then RETURN(0) fi;
> nn:=1;
> for ii from 1 to ll do
> ss:=num[substring(st,ii..ii)];
> if(not type(ss,numeric)) then ERROR(`wrong number (or type) of arguments`) fi;
> nn:=100*nn+ss;
> od;
> nn-10^(2*ll);
> end:

from_number - omzetting van een getal naar een tekst-string

           > from_number := proc(nn)
> local ss,mm,ll,ii,ans,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,` `,alpha;
> alpha:=
    table([1=a,2=b,3=c,4=d,5=e,6=f,7=g,8=h,9=i,10=j,11=k,12=l,13=m,14=n,15=o,16=p,/
    17=q,18=r,19=s,20=t,21=u,22=v,23=w,24=x,25=y,26=z,27=` `]):
> mm:=nn;
> if(not type(nn,integer)) then ERROR(`wrong number (or type) of arguments`) fi;
> ll:=floor(trunc(evalf(log10(mm)))/2)+1;
> ans:=``;
> for ii from 1 to ll do
> mm:=mm/100;
> ss:=alpha[frac(mm)*100];
> if(not type(ss,string)) then ERROR(`wrong number (or type) of arguments`) fi;
> ans:=cat(ss, ans);
> mm:=trunc(mm)
> od;
> ans;
> end:

Klik hier om terug te gaan naar de tekst.


begin pagina

[rsa-proc.htm] laatste wijziging op: 20-02-99