generarcodi:=proc(xifres) local p1,p2,m,n,phin,e,d; randomize(); m:=floor(xifres/2+1); p1:=1; while p1<10^(m-1) do p1:=nextprime(rand(10^m)()); end do; p2:=p1; while (p2=p1) or (p1*p2<10^xifres) do p2:=nextprime(rand(10^m)()); end do; n:=p1*p2; phin:=(p1-1)*(p2-1); e:=phin; while igcd(e,phin)<>1 do e:=rand(10^6)() mod n; en do; d:=e^(-1) mod phin; [n,phin,e,d]; end proc; encriptarbloc:=proc(missatge,e,n) local i,llistanum,num,numencript; llistanum:=convert(missatge,bytes); num:=sum(llistanum[i+1]*256^i,i=0..nops(llistanum)-1); numencript:=Power(num,e) mod n; numencript; end proc; desencriptarbloc:=proc(numencript,d,n) local i,num,missatge,llistanum; num:=Power(numencript,d) mod n; llistanum:=convert(num,base,256); missatge:=convert(llistanum,bytes); missatge; end proc; e:= 234281 n:= 20131133042706409921684601 d:= 8592557834410647663644921 e1:= 183643 n1:= 10701535163116170996766471