Back to project
URL
https://opencores.org/ocsvn/rc4-prbs/rc4-prbs/trunk
[/ ] [rc4-prbs/ ] [trunk/ ] [README.txt ] - Blame information for rev 14
Go to most recent revision |
Details |
Compare with Previous |
View Log
Line No.
Rev
Author
Line
1
3
ortegaalfr
Hi,
2
3
I was looking for a quick implementation of RC4 and I couldn't find one, so I wrote one based on the wikipedia example.
4
5
It's quite easy to use:
6
7
1) First, issue rst
8
2) Load the password byte-by-byte into the password_input port. The lenght of the password is KEY_SIZE
9
3) Issue 768 clocks to perform key expansion
10
12
ortegaalfr
4) Now you should start receiving the pseudo-random stream via the output bus, one byte every two clocks. The output_ready signal signals when a valid byte is present at the output K.
11
To encrypt or decrypt using RC4 you simply xor your data with the output stream.
12
3
ortegaalfr
Also you shouldn't use the first kb of stream because of a known RC4 vulnerability, so please discard those bytes.
13
14
4
ortegaalfr
The testbench and makefile work using icarus verilog and you can peer into rc4_tb.v to see an example implementation.
15
3
ortegaalfr
16
4
ortegaalfr
After installing icarus verilog in your path, just issue:
17
18
make
19
20
and then
21
22
./rc4.vvp
23
24
And you should see the output of the simulation.
25
26
6
ortegaalfr
Any question or suggestion send an email to aortega@alu.itba.edu.ar, cc: alfred@groundworkstech.com
27
3
ortegaalfr
28
Cheers,
29
30
Alfredo
31
13
ortegaalfr
32
33
PS: This is licensed LGPL, not public domain or BSD, so you should, put a copy of the license in your software and stuff. Yes, I'm talking to you jhunjhun, you too have to do it.
34
© copyright 1999-2025
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.