mirror of
https://github.com/moparisthebest/rswiki-book
synced 2024-12-22 07:28:50 -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)
|
- [DMCA policy](./DMCA-policy.md)
|
||||||
- [Privacy policy](./Privacy-policy.md)
|
- [Privacy policy](./Privacy-policy.md)
|
||||||
- [Data](./Data.md)
|
- [Data](./Data.md)
|
||||||
- [Data-Types](./Data-Types.md)
|
- [Data-types](./Data-Types.md)
|
||||||
|
- [ISAAC cipher](./ISAAC-cipher.md)
|
||||||
- [Word](./Word.md)
|
- [Word](./Word.md)
|
||||||
- [DWord](./DWord.md)
|
- [DWord](./DWord.md)
|
||||||
- [QWord](./QWord.md)
|
- [QWord](./QWord.md)
|
||||||
|
Loading…
Reference in New Issue
Block a user