- Multiple channel cryptography
Infobox block cipher
name = MCC
designers = Richard Ervasti
publish date = 2008–02
key size = variable
block size = variable
structure = SPN
rounds = 2
cryptanalysis = Multiple channel
cryptography(MCC) is an emerging approach to block ciphercryptography based on multiple configuration inputs to a core algorithm. Designed in 2008 by Richard Ervasti, the MCC framework calls for a non-linearutilization of a minimum of 7 inputs (the channels), each containing randomly generated, and in some cases, randomly recurring values. Pieces of each channel can be deployed within the keystream, to manipulate the keystream and the plaintextmessage, and also to calculate the formula's Cursor variable which is used for key expansion.
MCC was designed because, at the time, faster and more efficient computer resources coupled with advances in
factorizationtechniques began to make insufficient the continued linear use of large primes and other mathematically complex numbersfor generating strong encryption keys, particularly for long-term implementations. The algorithm is unpatented and freely available for use.
The complexity of MCC can be categorized as a
Boolean satisfiability problemof the class NP-completethat results from its use of a unique set of seven inputs comprising a formal axiomatic system. Four of the random inputs are created at key generation time and remain static throughout the life of the key. They are identified as the SBX table, the CH table, the GBX table, and the RBX table. The remaining three inputs, the OTP variable, the ST variable, and the CUR variable. are generated at run-time for each cipher object.
MCC does not use a key in the classic cryptographic sense. MCC keys are a hash digest of 4 of the 7 randomly generated configuration inputs required by the core algorithm. At runtime, the hash digest, which is also an efficient expression for the inputs, is read and expanded into the actual inputs which are then used to create 2 keys, K and AK, and the lengths of each match the length of the plaintext. The block size is the message size, and there are two rounds performed, one each for K and AK. An attacker must attempt to solve either K or AK, and OTP.
1. Let there be a plaintext message, , to be encrypted.
2. Let there be a master Character Table, , consisting of a randomly generated set of all 256 ASCII values. Let it be the first of eight channels.
3. Let there be an S-box table, , containing a number of entries not less than such that each entry is unique and contains an equal number of characters not less than . Let it be the second of eight channels.
4. Let there be a redirection R-box, , containing a number of entries not less than , and let each entry's value be a randomly selected, randomly recurring integer within the range . Let RBX be the third of eight channels.
5. Let there be a granularity G-box, , containing a number of entries not less than such that the value of each entry is a randomly selected, randomly recurring integer within the range .Let GBX be the fourth of eight channels.
6. Let there be a randomly generated One-Time-Pad Vector, , with a length equal to , and let it be the fifth of eight channels. Let the algorithm be characterized as a one-time-pad.
7. Let there be a Timestamp Vector, , computed as machine time in epoch time plus microseconds.
8. Let be embedded with a randomly generated string of any length not greater than called the
Initialization Vector, , and let the resulting string be called the Production Input, . Let the algorithm be characterized as a probabilistic cipher. Let be the sixth of eight channels.
9. Let there be a Key, , computed by first concatenating all entries in thus creating a string of not less than 4096 characters.
10. Let there be a Anti-Key, , computed by first concatenating all entries in thus creating a string of not less than 2048 characters.
11. Let there be a Starting Value, , randomly selected for each cipher object such that its value has a range . Let be the seventh of eight channels.
12. Let as pass through the Shuffle Subprocess (see below SUB-PROCESSES: Shuffle ) with as .
13. Globally delete the character represented by from .
14. Let there be a Cursor Value, , computed as , and let it be the eighth of eight channels.
15. Let pass through the Shuffle Subprocess with as .
16. Let there be a Round Counter, , initialzed to 1.
17. If is less than , go to step 34. Otherwise, loop through steps 18 through 33 while is greater than .
18. Let the next entry in , be .
19. Remove and from .
20. Let there be temporary RBX Pixels, and , computed as and respectively.
21. Let pass through the Shuffle subprocess with as .
22. Let be packed into a character string and appended to .
23. Remove the next entry from and let it be .
24. Let there be a temporary GBX Pixel, , computed as , and let it be appended to .
25. Let and be recomputed as and respectively and let them be appended to .
26. Let be appended with and .
27. Let Reverse sub-Key, , be the reverse of and let it pass thru the Shuffle subprocess with as .
28. For each in , compute and append it to .
29. Let be appended with .
30. Let be computed as .
31. Let be appended with .
32. If is less than , let a copy of pass through the Shuffle Subprocess with as , and let it be appended to .
33. Let equal .
34. Let each in be recomputed as .
35. Let each in be recomputed as .
36. Let there be Interim Ciphertext, , and let each in be computed as as .
37. Let , and be concatenated and converted into an efficient expression, and let the resulting string be deterministically embedded into .
38. Let be converted into its Base64 equivalent and let it be Encrypted Message, .
1. Compute the following configuration inputs from the key:
3. Reconstuct and by stepping thru Encryption process steps 9-35 as needed.
4. Let there be Interim Recovered Plaintext, , and let each in be computed .
5. Let each in be computed .
6. Delete from and let the remaining string be recovered Message, .
1. The string or array, , to be shuffled is fed to the process along with either one or two other values, .
2. If and a single are submitted, . Then, is shortened by removing portion, , that ranges from .
3. If and two values, and are submitted, both values are computed as . The string is shortened by removing portion, , that ranges from .
4. In either case #2 or #3, becomes New String, , and is appended with what remains of .
5. is returned to the main processes.
Speed and Efficiency
MCC is slightly slower than AES with message sizes less than 4,096 characters, and somewhat faster for larger messages. The only performance results available to date are those published "Dick Ervasti", " [http://dickervasti.blogspot.com/2008/07/performance-results-of-mcc-algorithm.html Performance results of the MCC algorithm] "] by the designer.
cryptanalysisof MCC has been found to date. There is an ongoing cracking competition for the algoritm.
MCC has yet to be submitted for inclusion in any recognized cryptographic standard.
Efficient Probabilistic Public-Key Encryption Scheme
* [https://secure.quty.com/aemsrc/mccpdf/MCC_white_paper.pdf The Multiple Channel Cryptography white paper] , Contains a detailed description of the MCC algorithm (PDF file).
* [http://quty.com/aemsrc/mccpdf/MCC_examples.zip The Multiple Channel Cryptography cracking competition] , Contains numerous examples of plaintexts and their corresponding ciphertexts created by the MCC algorithm (ZIP file).
Wikimedia Foundation. 2010.
Look at other dictionaries:
Cryptography — Secret code redirects here. For the Aya Kamiki album, see Secret Code. Symmetric key cryptography, where the same key is used both for encryption and decryption … Wikipedia
Network Security & Cryptography — is a concept to protect our network and data transmission over wireless network. Data Security is the main aspect of secure data transmission over unreliable network. Data Security is a challenging issue of data communications today that touches… … Wikipedia
History of cryptography — The history of cryptography begins thousands of years ago. Until recent decades, it has been the story of what might be called classic cryptography that is, of methods of encryption that use pen and paper, or perhaps simple mechanical aids. In… … Wikipedia
Public-key cryptography — In an asymmetric key encryption scheme, anyone can encrypt messages using the public key, but only the holder of the paired private key can decrypt. Security depends on the secrecy of that private key … Wikipedia
Salt (cryptography) — In cryptography, a salt consists of random bits, creating one of the inputs to a one way function. The other input is usually a password or passphrase. The output of the one way function can be stored rather than the password, and still be used… … Wikipedia
Padding (cryptography) — In cryptography, padding refers to a number of distinct practices.Classical cryptographyOfficial messages often start and end in predictable ways: My dear ambassador, Weather report, Sincerely yours , etc. The primary use of padding with… … Wikipedia
MCC — may refer to:Business, government and non profit organizations; Business related Topics * Merchant Category Code, a code assigned to companies accepting credit cards.; Business Corporations * Mitsubishi Chemical Corporation * Manhattan… … Wikipedia
Steganalysis — is the art and science of detecting messages hidden using steganography; this is analogous to cryptanalysis applied to cryptography. Overview The goal of steganalysis is to identify suspected packages, determine whether or not they have a payload … Wikipedia
cryptology — cryptologist, n. cryptologic /krip tl oj ik/, cryptological, adj. /krip tol euh jee/, n. 1. cryptography. 2. the science and study of cryptanalysis and cryptography. [1635 45; < NL cryptologia. See CRYPTO , LOGY] * * * Introduction … Universalium
Technical features new to Windows Vista — This article is part of a series on Windows Vista New features Overview Technical and core system Security and safety Networking technologies I/O technologies Management and administration Removed features … Wikipedia