FPGA, SoC, And CPLD Boards And Kits
FPGA Evaluation and Development Kits
Announcements
Intel Support hours are Monday-Fridays, 8am-5pm PST, except Holidays. Thanks to our community members who provide support during our down time or before we get to your questions. We appreciate you!

Need Forum Guidance? Click here
Search our FPGA Knowledge Articles here.
5283 Discussions

I had coded RSA algorithm but i have some error(near end and end module and error in the if statement),i will attach my code, can you please check the code

RVava
Beginner
287 Views

module R1(c,m,p,q,i1,i2);

input [4:0]p;

input [5:0]q;input [7:0]m;

input[5:0] i1,i2;

output [19:0]c;

//reg [15:0]on;

wire [15:0]e;wire[15:0]d;wire [9:0]s;

integer k,l;

wire [9:0] j1,j2,j3,j4,j5,j6;

wire a1,a2,on;

always@(i1)

begin

k=i1;

l=i2;

if(i1[0]==1'b0 & i2[0]==1'b0)

begin

$display("not prime");

end

else

if((p%k==0)|(q%l==0))

$display("prime");

else

begin

$display("not prime");

end

end

assign s= p&q;

assign a1= p-1;

assign a2= q-1;

assign on = a1&a2;

 

module R1_enc(j5,j4,e);

input e;

output j5,j4;

always@(i1)

begin

//for (j=0;j<6;j=j+1)

//begin

assign j1=on % e;

assign j2=e % j1;

assign j3=j1 % j2;

assign j4=j2% j3;

assign j5=j3 % j4;

assign j6=j4 % j5;

//end

end

 

if(((j4%j5)==0)&((j3%j4)==1))

begin

//for(i=1;i<=n;i+1)

assign j1=on-(e&1010);

assign j2=e -(j1&1);

assign j3=j1-(j2&110);

assign j4=j2 -(j3&1);

end

else

begin

R1_enc(j5,j4,e);

end

 

//if((j3 -(j4&1))==1)&&((j4 -(j4&1))==0))

//if((j4 -(j4&1))==0)

begin

always@(e)

begin

if((j3-(j4&1))==1)

assign j4= j2-(j3&1);

if((j3-(j2&1))==1)

if((-1&j2)|(j3&10)==1)

assign j3= j1-(j2&110);

if(((-1&j2)|(j3&10))==1)

if((10&j1)|(-j2&1101)==1)

assign j2= e-(j1&1);

if((10&j1)|(-j2&1101)==1)

if((-1101&e)|(j1&1111)==1)

assign j1= on-(e&1010);

end

if(((-1101&e)|(j1&1111))==1)

if(((1111 & on)|(e & -10100011)|(e & on)|(-e & on))==1)

if(((1111 -e)& on)|(e & (on-10100011))==1)

if(((110011101 & e)|(on & -100110)) ==1)

end

always@ (e)

begin

if(((110011101 & e) % on )== 1)

begin

$display("110011101 is d");

$display("private key is (e,n)");

$display("public key is (d,n)");

end

endmodule

0 Kudos
1 Reply
RichardTanSY_Intel
86 Views

Not familiar with the RSA algorithm. Though, I saw there is a lot of 'if' statement stack together near the end of code, shouldn't we use 'else if' statement if there is more than one statement within an IF block. Correct me if I am wrong.

Reply