Cryptography is a complex and difficult subject for students to learn: a message is scrambled using a key and an algorithm that tends to be highly abstract. That is why many different uses of technology have been explored to make it more concrete and easier to understand. One of these is visual cryptography. In visual cryptography, the "key" is simply a sheet of clear plastic with apparently-random dots printed on it. The "encrypted message" is another such sheet, which also appears to be random. But when the two sheets are set on top of each other, a hidden message appears. There is an enormous literature on visual cryptography (see all of the References section below, other than the first four). It was originally invented and developed for cryptographic reasons, but the pedagogical uses are clear. It allows the student to physically manipulate the elements of the system, and visually see the decryption process in action. Although a computer must still be involved to create the two images, the student can carry out the decryption step without a computer. For example, the reader is invited to experiment with the visual cryptography system online at Baird (2000).
The more recent field of concurrent codes is even more abstract and difficult for students to grasp. The original code developed in that field is the Baird Bahn Collins (BBC) algorithm (Baird, Bahn, & Collins, 2007), which is complex enough that students may have difficulty grasping it at first. This suggests that it would be useful to have something analogous to visual cryptography for BBC codes. This paper proposes the first such Visual BBC system, and gives several variants.
In BBC, an algorithm is used to convert a message into a binary string of mostly zeros with only a few ones. This string is the codeword for that message. For example, Figure 1 shows how the three messages "Red", "Green" and "Blue" might be encoded as BBC codewords.
[FIGURE 1 OMITTED]
This is just a simple example. In an actual implementation, the codewords would be much longer, and would be generated in a more complex way.
[FIGURE 2 OMITTED]
In cryptography, encryption is used to hide messages. In BBC coding, the goal is the opposite: to make the messages clear, even when they are superimposed. Two messages are superimposed by taking a bitwise OR of their bits. For example, the "Red" and "Green" messages can be superimposed as in Figure 2. Both messages can be transmitted simultaneously by transmitting their superimposed codeword.
Note that there is a 1 in the "Red, Green" result in every position where there is a 1 in "Red" or "Green" or both. It is clear by inspection that given the "Red+Green" string, it can be seen to contain "Red" and "Green", but not "Blue". This decoding can be done easily when there are only 3 possible messages. But it is tedious to do without a computer when there are, say, [2.sup.100]0 possible messages.
A superimposed combination of BBC codewords can be separated back into their original messages through a very simple algorithm. Although the BBC decoding algorithm will not be given here, it is a linear-time algorithm that separates images with very low error rates, as long as the combination of codewords has more 0 bits than 1 bits.
At this point, it would be natural to go on and show the students the details behind encoding and decoding. But first, it would be useful to put the above examples in a form that the students can understand more easily. In the example above, each string contains 25 bits, and is written as a long row of bits. The example might be clearer if they were instead written as a 5 by 5 array of bits. In that case, the example would look like Figure 3.
[FIGURE 3 OMITTED]
This might be clearer if the digits 1 and 0 were replaced with black and white squares, respectively, as in Figure 4.
[FIGURE 4 OMITTED]
In this form, a type of visual BBC system could be created. …