mirror of
https://github.com/moparisthebest/rswiki-book
synced 2024-12-21 23:18:49 -05:00
Add details on ISAAC cipher
This commit is contained in:
parent
2f7502f346
commit
193f6c119c
22
src/ISAAC-cipher.md
Normal file
22
src/ISAAC-cipher.md
Normal file
@ -0,0 +1,22 @@
|
||||
# ISAAC cipher
|
||||
|
||||
ISAAC is a cryptographically secure pseudorandom number generator, and a stream cipher designed by Robert J. Jenkins Jr (see [ISAAC](http://burtleburtle.net/bob/rand/isaacafa.html)).
|
||||
|
||||
You can find the standard Java implementation used [here](https://github.com/PureCS/rs317-client/blob/master/src/com/runescape/client/io/ISAACCipher.java).
|
||||
|
||||
## ISAAC instance creation
|
||||
When a client logs into the server, two instances of ISAAC are created,
|
||||
and the generated seeds are transmitted between them.
|
||||
One instance is for encryption, and one for decryption.
|
||||
|
||||
The seed is comprised of 128-bits, half is generated by the client, and
|
||||
half by the server.
|
||||
This is to ensure that no individual entity has entire control of
|
||||
the key generation process.
|
||||
|
||||
## Use in the client
|
||||
ISAAC is used to encrypt and decrypt packet opcodes before transmission, to make packet manipulation harder.
|
||||
|
||||
When a packet is sent, its opcode becomes the original opcode added to the generated ISAAC opcode from the encryption instance.
|
||||
|
||||
The packet opcode is decrypted analogously on the server.
|
@ -8,7 +8,8 @@
|
||||
- [DMCA policy](./DMCA-policy.md)
|
||||
- [Privacy policy](./Privacy-policy.md)
|
||||
- [Data](./Data.md)
|
||||
- [Data-Types](./Data-Types.md)
|
||||
- [Data-types](./Data-Types.md)
|
||||
- [ISAAC cipher](./ISAAC-cipher.md)
|
||||
- [Word](./Word.md)
|
||||
- [DWord](./DWord.md)
|
||||
- [QWord](./QWord.md)
|
||||
|
Loading…
Reference in New Issue
Block a user