5 ms·
I would really love to submit this encryption method to the PCI auditors.... "uses encryption extensively". Edit: seriously? The first example is a shift ciphe
by rnovak 12y ago
I would really love to submit this encryption method to the PCI auditors.... "uses encryption extensively".
Edit: seriously? The first example is a shift cipher and a one time pad of all 'M'.
- isomorphic 12y agoPerhaps you'd be happier with the term "obfuscation." But the code does meet the textbook definition of "encryption." Maybe not strong encryption...
- rnovak 12y agoWhere did I say it wasn't encryption? I said I'd like to submit it to my PCI auditor as _my_ method of encryption, much easier than proper applied crypto.
- KMag 12y agoIt's more accurate to call it a Caesar cipher in GF2(8) instead of a one-time pad.
- rnovak 12y agoCaeser cipher _is_ a shift cipher, which is exactly what I said it was...
- KMag 12y agoI was referring to "and a one time pad of all 'M'".
- rnovak 12y agoYeah, sorry, I'm not good enough with the math behind crypto enough to have recognized that :( learn something new every day.
- KMag 12y agoPerhaps my notation was a bit too terse. GF2(8) is a Galois field of order Pow(2, 8). The xor operation is addition in a Galois field, so 8-bit xor with 'M' is the same thing as a constant additive shift by 'M' in a Galois field of order Pow(2, 8). So, it's a Caesar shift cipher using the GF2(8) definition of byte addition rather than the standard modulo 256 definition.
- swatkat 12y agoAnd, the key 'MZ' used in DecryptStrings() seems to be a "tribute" to DOS executable header :)
- AlyssaRowan 12y agoYes: the term the VX scene uses is "crypter". Code size and unusualness/uniqueness are goals here, as they're for obfuscation, not strong encryption - the code needs to be small, hard for an AV to recognise with a heuristic (so tables and baked constants are bad) and ideally amenable to being passed through a polymorphic/metamorphic mutation engine.