Over the years, two novel encryption techniques have come to mind and been implemented as programming libraries that could be integrated into applications. However, how to analyze their security and vulnerability characteristics has never been very clear, and their usage has been limited to mainly experimental tests. Are there tools available for automated examination of such parameters one may be interested in understanding for an encryption library? Are there bodies of people who are interested in being introduced to new encryption concepts for the purpose of executing their own personal analysis on such a process? I'm not sure where to look.

The first encryption algorithm is a mono-alphabetic simple substitution cipher. It requires two keys to operate and is designed to frustrate frequency analysis. The longer of the keys forms a table by which plain-text has a normal substitution cipher applied. Each encoded byte is then split into four values of two bits each. The second, shorter key is then used to allow a random selection from four groups of sixty-four unique bytes each. Each two bit value from the encoded byte is used to select which group of sixty-four bytes to use. Encoding has two disadvantages: the output is four times larger, and repeated data encoding may allow some frequency analysis.

The second encryption algorithm is a stream cipher like the first but internally operates on blocks of data. It utilizes two keys to operate: the first is a two-dimensional array that describes how to construct a (virtual) multidimensional grid, and the second is an initialization vector for the encoding/decoding engine. It attempts to overcome frequency analysis by encoding bytes with a window of preceding bytes (initialized from the second key). A byte with its preceding window of bytes form a multidimensional index into the aforementioned grid. Unfortunately, encoding duplicate blocks of data longer than the window size starts yielding equivalent data.

  • 1
    $\begingroup$ Perhaps you should summarize the two encryption techniques in the question in order to get a more targeted answer. $\endgroup$ Commented May 23, 2012 at 18:23
  • 2
    $\begingroup$ You could try asking crypto.se. $\endgroup$ Commented May 23, 2012 at 19:22
  • 5
    $\begingroup$ Welcome to cstheory, a Q&A site for research-level questions in theoretical computer science (TCS). Your question does not appear to be a research-level question in TCS. Please see the FAQ for more information on what is meant by this and suggestions for sites that might welcome your question. Finally, if your question is closed for being out of scope, and you believe you can edit the question to make it a research-level question, please feel free to do so. Closing is not permanent and questions can be reopened, check the FAQ for more information. $\endgroup$
    – Kaveh
    Commented May 23, 2012 at 20:45
  • 2
    $\begingroup$ If you cannot analyze the ideas and are looking for other people to do that for you then this is unlikely to be a suitable question for cstheory. $\endgroup$
    – Kaveh
    Commented May 24, 2012 at 18:16
  • 3
    $\begingroup$ Reposted on Computer Science $\endgroup$ Commented May 24, 2012 at 22:07

1 Answer 1


I probably shouldn't answer this, and wouldn't if it had taken any length of time. However, for what it's worth the first cipher is not secure, unless the plaintext is relatively short and you choose new keys randomly with each use. This is because you map each letter to one of a fixed set of 4 byte strings independent of it's position, and the set for each letter is unique. Thus the cipher is simply a substitution cipher with homophones, and there are known ways to break these given sufficiently long cipher text.

Now, potentially your 'short key' could be enormous since the number of ways to partition all 256 strings into 4 sets of 64 strings is extremely large, and the longer this key the more ciphertext would be necessary to break the code, but this is only a polynomial increase with key length.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.