Secure permutations with block ciphers

It’s been too long since I blogged about anything much, and way too long since I posted the first Damn Cool Algorithms post, which I promised would be a series. So here’s part 2. To start, I’m assuming you know what a permutation is - basically a shuffling of a sequence of items in a particular order. A permutation of the range 1-10, for example, is {5,2,1,6,8,4,3,9,7,10}. A secure permutation is one in which an attacker, given any subset of the permutation, cannot determine the order of any other elements. [Read More]

BWT (Burrows Wheeler Transform) Encoding Algorithm

Encoding Procedure for implementing the algorithm: 1. Select a block size to be used. Block size is directly related to effectiveness of encoding and inversely related to the time required. Hence a compromise has to be reached. 2. Convert the data byte stream to blocks of n bytes where n is the block size chosen. 3. The following example illustrates the procedure to be done next. Let n=6 and the first string be “kerala”. [Read More]