Excerpt from HOP
sub tokens {
my $target = shift;
return sub {
TOKEN: {
return ['INTEGER', $1] if $target =˜ /\G (\d+) /gcx;
return ['PRINT'] if $target =˜ /\G print \b /gcx;
return ['IDENTIFIER', $1] if $target =˜ /\G ([A-Za-z_]\w*) /gcx;
return ['OPERATOR', $1] if $target =˜ /\G (\*\*) /gcx;
return ['OPERATOR', $1] if $target =˜ /\G ([-+*\/=()])/gcx;
return ['TERMINATOR', $1] if $target =˜ /\G (; \n* | \n+) /gcx;
redo TOKEN if $target =˜ /\G \s+ /gcx;
return ['UNKNOWN', $1] if $target =˜ /\G (.) /gcx;
return;
}
};
}
-----------------------------------------------------
cipher text 1 ciphertxt2 ciphertxt3
| | |
+-------------+ +----------+ +----
| | | | |
key--decryption | decrypt | decrypt
| | | | |
-------X +--X +----------X
| | |
plaintext 1 plntxt2 plntxt3
If you modify cipher text 1 it is obvious that plaintext 1 will change. Plaintext 2 will also change because of the XOR with ciphertext 1 (following the decryption). Ciphertext 2 is not different though (nor is ciphertext3) so plaintext 3 will not be different.
|