Added to Favorites

Popular Searches

Definitions

Multiple channel cryptography (MCC) is an emerging approach to block cipher cryptography based on multiple configuration inputs to a core algorithm. Designed in 2008 by Richard Ervasti, the MCC framework calls for a non-linear utilization 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 plaintext message, and also to calculate the formula's Cursor variable which is used for key expansion.
## Introduction

## Complexity

## Non-traditional keys

## The algorithm

### Encryption

1. Let there be a plaintext message, $M,$, to be encrypted.

2. Let there be a master Character Table, $CH,$, 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, $SBX,$, containing a number of entries not less than $2048,$ such that each entry is unique and contains an equal number of characters not less than $2,$. Let it be the**second** of eight channels.

4. Let there be a redirection R-box, $RBX,$, containing a number of entries not less than $SBX\_N,$, and let each entry's value be a randomly selected, randomly recurring integer within the range $16ldots\; SBX\_N,$. Let RBX be the**third** of eight channels.

5. Let there be a granularity G-box, $GBX,$, containing a number of entries not less than $SBX\_N/2,$ such that the value of each entry is a randomly selected, randomly recurring integer within the range $5cdots20,$.Let GBX be the**fourth** of eight channels.

6. Let there be a randomly generated One-Time-Pad Vector, $OTP,$, with a length equal to $M\_N,$, 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, $TIME,$, computed as machine time in epoch time plus microseconds.

8. Let $M,$ be embedded with a randomly generated string of any length not greater than $M\_N/7,$ called the Initialization Vector, $IV,$, and let the resulting string be called the Production Input, $PI,$. Let the algorithm be characterized as a probabilistic cipher. Let $PI,$ be the**sixth** of eight channels.

9. Let there be a Key, $K,$, computed by first concatenating all entries in $SBX,$ thus creating a string of not less than 4096 characters.

10. Let there be a Anti-Key, $AK,$, computed by first concatenating all entries in $RBX,$ thus creating a string of not less than 2048 characters.

11. Let there be a Starting Value, $ST,$, randomly selected for each cipher object such that its value has a range $1ldots\; SBX\_N,$. Let $ST,$ be the**seventh** of eight channels.

12. Let as $K,$ pass through the Shuffle Subprocess (see below SUB-PROCESSES: Shuffle ) with $ST,$ as $V,$.

13. Globally delete the character represented by $K\_\{ST\},$ from $K,$.

14. Let there be a Cursor Value, $CUR,$, computed as $sqrt\{(TIME/ST)mod\; K\_N\},$, and let it be the**eighth** of eight channels.

15. Let $AK,$ pass through the Shuffle Subprocess with $(CUR+PI\_N),$ as $V,$.

16. Let there be a Round Counter, $RC,$, initialzed to 1.

17. If $PI\_N,$ is less than $K\_N,$, go to step 34. Otherwise, loop through steps 18 through 33 while $PI\_N,$ is greater than $K\_N,$.

18. Let the next entry in $RBX,$, be $RBX\_i,$.

19. Remove $RBX\_i,$ and $RBX\_\{i+1\},$ from $RBX,$.

20. Let there be temporary RBX Pixels, $TR1,$ and $TR2,$, computed as $(RBX\_imod\; 60),$ and $(RBX\_i+1mod\; 200),$ respectively.

21. Let $CH,$ pass through the Shuffle subprocess with $TR1\_\{CUR\},$ as $V,$.

22. Let $CH,$ be packed into a character string and appended to $K,$.

23. Remove the next entry from $GBX,$ and let it be $GBX\_i,$ .

24. Let there be a temporary GBX Pixel, $TG,$, computed as $GBX\_\{i+RC\},$, and let it be appended to $GBX,$.

25. Let $TR1,$ and $TR2,$ be recomputed as $(TR1+CUR)\; mod\; SBX\_N,$ and $(TR2+CUR+GBX\_i)mod\; SBX\_N,$ respectively and let them be appended to $RBX,$.

26. Let $K,$ be appended with $SBX\_\{TR1\},$ and $SBX\_\{TR2\},$ .

27. Let Reverse sub-Key, $RK,$, be the reverse of $K,$ and let it pass thru the Shuffle subprocess with $CUR,$ as $V,$.

28. For each $i,$ in $RK,$, compute $RK\_i\; oplus\; K\_i,$ and append it to $K,$.

29. Let $K,$ be appended with $CURtimes\; RC,$.

30. Let $CUR,$ be computed as $CUR\; +\; TR1\; +\; TR2\; +GBX\_i,$.

31. Let $K,$ be appended with $CUR,$.

32. If $AK\_N,$ is less than $K\_N,$, let a copy of $AK,$ pass through the Shuffle Subprocess with $(CUR\; +\; PI\_N),$ as $V,$, and let it be appended to $AK,$.

33. Let $CUR,$ equal $CURmod\; K\_N,$.

34. Let each $i,$ in $PI,$ be recomputed as $PI\_ioplus\; OTP\_i,$ .

35. Let each $i,$ in $K,$ be recomputed as $K\_ioplus\; AK\_i,$ .

36. Let there be Interim Ciphertext, $ICT,$, and let each $i,$ in $ICT,$ be computed as as $PI\_ioplus\; K\_i,$ .

37. Let $ST,$, $OTP,$ and $TIME,$ be concatenated and converted into an efficient expression, and let the resulting string be deterministically embedded into $ICT,$.

38. Let $ICT,$ be converted into its Base64 equivalent and let it be Encrypted Message, $E,$.

### Decryption

1. Compute the following configuration inputs from the key:

3. Reconstuct $K-9,$ and $AK-10,$ by stepping thru Encryption process steps 9-35 as needed.

4. Let there be Interim Recovered Plaintext, $IPT,$, and let each $i,$ in $IPT,$ be computed $E\_ioplus\; OTP\_i,$ .

5. Let each $i,$ in $IPT,$ be computed $IPT\_ioplus\; K\_i,$ .

6. Delete $IV-8,$ from $IPT,$ and let the remaining string be recovered Message, $M,$.

### SUB-PROCESSES

Shuffle

1. The string or array, $S,$, to be shuffled is fed to the process along with either one or two other values, $V\_i,$.

2. If $S,$ and a single $V,$ are submitted, $V=Vmod\; S\_N,$. Then, $S,$ is shortened by removing portion, $P,$, that ranges from $S\_Vldots\; S\_N,$.

3. If $S,$ and two values, $V\_1,$ and $V\_2,$ are submitted, both values are computed as $V\_imod\; S\_N,$. The string is shortened by removing portion, $P,$, that ranges from $S\_\{V\_1\}ldots\; S\_\{V\_2\},$.

4. In either case #2 or #3, $P,$ becomes New String, $NS,$, and is appended with what remains of $S,$.

5. $NS,$ is returned to the main processes.

## Speed and Efficiency

## Cryptanalysis

## Standardization

## See also

## References

## External Links

MCC was designed because, at the time, faster and more efficient computer resources coupled with advances in factorization techniques began to make insufficient the continued linear use of large primes and other mathematically complex numbers for 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 problem of the class NP-complete that 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

2. Let there be a master Character Table, $CH,$, consisting of a randomly generated set of all 256 ASCII values. Let it be the

3. Let there be an S-box table, $SBX,$, containing a number of entries not less than $2048,$ such that each entry is unique and contains an equal number of characters not less than $2,$. Let it be the

4. Let there be a redirection R-box, $RBX,$, containing a number of entries not less than $SBX\_N,$, and let each entry's value be a randomly selected, randomly recurring integer within the range $16ldots\; SBX\_N,$. Let RBX be the

5. Let there be a granularity G-box, $GBX,$, containing a number of entries not less than $SBX\_N/2,$ such that the value of each entry is a randomly selected, randomly recurring integer within the range $5cdots20,$.Let GBX be the

6. Let there be a randomly generated One-Time-Pad Vector, $OTP,$, with a length equal to $M\_N,$, and let it be the

7. Let there be a Timestamp Vector, $TIME,$, computed as machine time in epoch time plus microseconds.

8. Let $M,$ be embedded with a randomly generated string of any length not greater than $M\_N/7,$ called the Initialization Vector, $IV,$, and let the resulting string be called the Production Input, $PI,$. Let the algorithm be characterized as a probabilistic cipher. Let $PI,$ be the

9. Let there be a Key, $K,$, computed by first concatenating all entries in $SBX,$ thus creating a string of not less than 4096 characters.

10. Let there be a Anti-Key, $AK,$, computed by first concatenating all entries in $RBX,$ thus creating a string of not less than 2048 characters.

11. Let there be a Starting Value, $ST,$, randomly selected for each cipher object such that its value has a range $1ldots\; SBX\_N,$. Let $ST,$ be the

12. Let as $K,$ pass through the Shuffle Subprocess (see below SUB-PROCESSES: Shuffle ) with $ST,$ as $V,$.

13. Globally delete the character represented by $K\_\{ST\},$ from $K,$.

14. Let there be a Cursor Value, $CUR,$, computed as $sqrt\{(TIME/ST)mod\; K\_N\},$, and let it be the

15. Let $AK,$ pass through the Shuffle Subprocess with $(CUR+PI\_N),$ as $V,$.

16. Let there be a Round Counter, $RC,$, initialzed to 1.

17. If $PI\_N,$ is less than $K\_N,$, go to step 34. Otherwise, loop through steps 18 through 33 while $PI\_N,$ is greater than $K\_N,$.

18. Let the next entry in $RBX,$, be $RBX\_i,$.

19. Remove $RBX\_i,$ and $RBX\_\{i+1\},$ from $RBX,$.

20. Let there be temporary RBX Pixels, $TR1,$ and $TR2,$, computed as $(RBX\_imod\; 60),$ and $(RBX\_i+1mod\; 200),$ respectively.

21. Let $CH,$ pass through the Shuffle subprocess with $TR1\_\{CUR\},$ as $V,$.

22. Let $CH,$ be packed into a character string and appended to $K,$.

23. Remove the next entry from $GBX,$ and let it be $GBX\_i,$ .

24. Let there be a temporary GBX Pixel, $TG,$, computed as $GBX\_\{i+RC\},$, and let it be appended to $GBX,$.

25. Let $TR1,$ and $TR2,$ be recomputed as $(TR1+CUR)\; mod\; SBX\_N,$ and $(TR2+CUR+GBX\_i)mod\; SBX\_N,$ respectively and let them be appended to $RBX,$.

26. Let $K,$ be appended with $SBX\_\{TR1\},$ and $SBX\_\{TR2\},$ .

27. Let Reverse sub-Key, $RK,$, be the reverse of $K,$ and let it pass thru the Shuffle subprocess with $CUR,$ as $V,$.

28. For each $i,$ in $RK,$, compute $RK\_i\; oplus\; K\_i,$ and append it to $K,$.

29. Let $K,$ be appended with $CURtimes\; RC,$.

30. Let $CUR,$ be computed as $CUR\; +\; TR1\; +\; TR2\; +GBX\_i,$.

31. Let $K,$ be appended with $CUR,$.

32. If $AK\_N,$ is less than $K\_N,$, let a copy of $AK,$ pass through the Shuffle Subprocess with $(CUR\; +\; PI\_N),$ as $V,$, and let it be appended to $AK,$.

33. Let $CUR,$ equal $CURmod\; K\_N,$.

34. Let each $i,$ in $PI,$ be recomputed as $PI\_ioplus\; OTP\_i,$ .

35. Let each $i,$ in $K,$ be recomputed as $K\_ioplus\; AK\_i,$ .

36. Let there be Interim Ciphertext, $ICT,$, and let each $i,$ in $ICT,$ be computed as as $PI\_ioplus\; K\_i,$ .

37. Let $ST,$, $OTP,$ and $TIME,$ be concatenated and converted into an efficient expression, and let the resulting string be deterministically embedded into $ICT,$.

38. Let $ICT,$ be converted into its Base64 equivalent and let it be Encrypted Message, $E,$.

- CH
- RBX
- SBX
- GBX

3. Reconstuct $K-9,$ and $AK-10,$ by stepping thru Encryption process steps 9-35 as needed.

4. Let there be Interim Recovered Plaintext, $IPT,$, and let each $i,$ in $IPT,$ be computed $E\_ioplus\; OTP\_i,$ .

5. Let each $i,$ in $IPT,$ be computed $IPT\_ioplus\; K\_i,$ .

6. Delete $IV-8,$ from $IPT,$ and let the remaining string be recovered Message, $M,$.

1. The string or array, $S,$, to be shuffled is fed to the process along with either one or two other values, $V\_i,$.

2. If $S,$ and a single $V,$ are submitted, $V=Vmod\; S\_N,$. Then, $S,$ is shortened by removing portion, $P,$, that ranges from $S\_Vldots\; S\_N,$.

3. If $S,$ and two values, $V\_1,$ and $V\_2,$ are submitted, both values are computed as $V\_imod\; S\_N,$. The string is shortened by removing portion, $P,$, that ranges from $S\_\{V\_1\}ldots\; S\_\{V\_2\},$.

4. In either case #2 or #3, $P,$ becomes New String, $NS,$, and is appended with what remains of $S,$.

5. $NS,$ is returned to the main processes.

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 by the designer.

No effective cryptanalysis of 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.

- The Multiple Channel Cryptography white paper, Contains a detailed description of the MCC algorithm (PDF file).
- The Multiple Channel Cryptography cracking competition, Contains numerous examples of plaintexts and their corresponding ciphertexts created by the MCC algorithm (ZIP file).

Wikipedia, the free encyclopedia © 2001-2006 Wikipedia contributors (Disclaimer)

This article is licensed under the GNU Free Documentation License.

Last updated on Friday October 10, 2008 at 09:40:35 PDT (GMT -0700)

View this article at Wikipedia.org - Edit this article at Wikipedia.org - Donate to the Wikimedia Foundation

This article is licensed under the GNU Free Documentation License.

Last updated on Friday October 10, 2008 at 09:40:35 PDT (GMT -0700)

View this article at Wikipedia.org - Edit this article at Wikipedia.org - Donate to the Wikimedia Foundation

Copyright © 2014 Dictionary.com, LLC. All rights reserved.