Ragnarok: Cascading Encryption

Cascading Encryption is the foundation for Ragnarok. It's principal is simple: take at least one original piece of data and use it throughout each stage of the encryption process thereby preventing anyone (even with the source code) from decrypting the code without that original piece of data.

The Phrase Cascading Encryption

The phrase "Cascading Encryption" technically means encrypting an encrypted code. Technically, the Ragnarok Encryption Module does that...14 times (1 + [The Iteration Number = 13]). We use the term cascading encryption to define the process of one original piece of data that is passed on to each new level of encryption for re-encryption (with a key based on the last stage of the encryption process).

Pseudo Encryption Example

  1. Username = "testuser"
  2. Encrypt "testuser" --> gobbledegook
  3. Reverse gobbledegook -> koogedelbbog
  4. Append the original username -> koogedelbbogtestuser
  5. Reverse koogedelbbogtestuser -> resutsetgobbledegook
  6. Change the encryption key to resutsetgobbledegook
  7. Re-Encrypt resutsetgobbledegook -> encryptedstring
  8. Reverse encryptedstring -> gnirtsdetpyrcne
  9. Append the original username -> gnirtsdetpyrcnetestuser
  10. Reverse gnirtsdetpyrcnetestuser -> resutsetencryptedstring
  11. Change the encryption key to resutsetencryptedstring
  12. Re-Encrypt [etc.]

Pseudo-Decryption Example

String = "resutsetencryptedstring"

  1. Reverse "resutsetencryptedstring" -> gnirtsdetpyrcnetestuser
  2. Remove the username ----- What is the username??? We don't know, therefore, it cannot be removed.
We know the username is testuser, but it could just as easily be estuser or netestuser. This uncertainty of the original piece of data prevents decryption of the code.


Unparalleled security. As of 0.6.1, the Ragnarok Encryption Protocol uses two pieces of data, the username and password, to encrypt along with the current encryption string. This prevents decryption (if it were possible in the first place) because, without the original username AND password, you cannot progress forward or backwards in the encryption process.


There are not flaws to the algorithm itself. For flaws with the Ragnarok Encryption Algorithm, see Ragnarok: About Ragnarok#Flaws.

Cascading Encryption in the Ragnarok Encryption Module

As of 0.6.5, all calls to the proof generators use the same algorithm, except when generating the code. When generating the code, the algorithm involves combining the Key with the About Code as to create a dependency.

The way that Ragnarok encrypts (as of 0.6.1) is by using both the username and password as the original pieces of data that cascade the encryption. The only difference between generating the proof and generating the username is, instead of '''password [encryption] username''' the generation subroutine generates the proof with '''code [encryption] key'''.


Topic revision: r1 - 2014-12-14 - ZachBornheimer
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2021 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback