Friday, August 31, 2007

External Resources, links, and articles

This post is dedicated to collect others' opinion on this subject.

Everyone finds an article about secret communication, hidden signals, cheating a test, etc. Please post it here. We want to know what others are doing, is this totally useless, or it can prove to be a huge issue that has been long neglected.


Of course adding a link and a couple of lines explaining what are they doing will be more than enough.

Don't bother with technical papers, there is a lot of them, and they are already collected and archived in many places. Just focus on informal stuff, ideas, other blogs, ...

Thursday, August 30, 2007

Chatting during a Test !?!

Chatting during a Test !!! How is that possible?

It is very simple. First, let's find out what can you do that will not bother the proctor, (or warden !!). Then, we will have to find how we can agree on the meaning of these signals in an easy way (if it is very hard, it could have been easier studying).

An important note first. This is for proving to ourselves we can cheat if we want to, but we don't. It is totally different than not cheating because we can't, right ?

Permissible acts and signals:


There is a lot of things we can do here (and you will add a lot also):

  • Coughing or sneezing (which one you did is another piece of information)
  • Dropping a pen
  • Stretching your arms
  • Go to the restroom
  • Tap with the pen, how many times??
  • Finish early and leave! (obviously, helping others, not yourself anymore!)
  • At what time will you do any of the above, and how many times.


Agreeing on the code:


Let's take coughing as an example.

You can cough once every 4 minutes. Which minute, indicates your answer to one of the multiple choice questions (assuming 4 answers).

So in a 2-hour exam, you can send 120 min/4 = 30 questions (not bad, huh !!)

Can we do better? Sure we can :)

Using simple binary coding, we can send much more (twice in our case).
Every two minutes are for a single question (instead of 4).
If you didn't cough: Answer A
If you coughed once in the 1st minute: Answer B
If you coughed once in the 2nd minute: Answer C
If you coughed twice: Answer D
We have 60 questions in the 2hr exam.
quite simple... But lots of coughing is not good... Might raise suspicions. :)

So, let's use another signal. "Stretching your arms" for example:
Now, we can use coughing 0 times, or once every 4 minutes (as before): 4(+1 don't know the answer) options.
Also, you can, during the same 4 minutes, stretch your arms to the side, or above you, or both, or simply don't stretch them. Another 4 options.
Multiply these together. You have 16 options in all !!! That's 2 MC questions (with all of their 16 combinations, if each have 4 choices).
The same as before: in our 2-hour exam, 60 questions can be answered... That's quite great. With much less coughing and a little bit of stretching :)

Of course essay questions is a mess to do. But what do you think..we can a lot of other signals, you can literally dictate an essay this way :)

What can we do? Tools and Media Description

We need first to identify what is our raw material? What can we use? What is our channel ?
Formally: What is the communication channel, what is the capacity and bandwidth, and what are suitable codes to use?

Well, actual formulation of the problem has been studied a long time ago. From the early starts, there has been the Morse Code, Nyquist and his work in telegraph capacity, etc. But we can go even further in history: Take for example the English language, short words are more common to be used (or the other way around, they have been chosen to be shorter because they will be used more often); like I, am, is, are, us, we, cat, dog. And on the other hand there is: umbrella, discriminate, cognitive, ... (Mostly, I will dedicate another post just for this)

The first main formulation was, of course, by Shannon and Kolomogorov (late 1940's 50's, and 60's). And since then, tons of theoretical work, and heavy applications have been developed (e.g., digital phone lines, cell phones, data compression as in images: jpeg, gifs, ... movies: mpeg, ... archive formats: zip, arj, ... and well, computer networks in general).

So, let's take it simple.
If we stand in front of each other what might be our tools:
Then, it depends on what are the different actions I can make, and what are the corresponding responses. I can wave, close/open my eyes, yawn, stick my tongue out, stand on one leg, ... or any combinations of them.

If we are over the phone?
I can start with a hello, or hi, or just "is this Bob?", ...
And you can answer back with anything similar.

We can go like this for every possible situation.
The information we want to communicate has to be translated to some sort of code (something we agreed on: if I waved my hand then the meeting is canceled, if I yawn, then just delayed, ...)

The important question is how much information I can send you with these naive ways?
How to measure/evaluate this: The way to measure it is to take the whole number of possible signals I can do. If it covers the different choices I want to send you then, we are done. For example, I can do 10 different things over the phone (as we mentioned before), and I want to tell you what hour of day we will be meeting (from 9am to 5pm). Then it is enough. We can keep the extra choice to say: "No way I am going out, got lots of home work to do, or my dad won't give me the car".

Formally: You would take the log (base 2) to find the number of bits you can use. And do the same with your original information. (or base 10 and it will be digits, ...)


Believe it or not, you will find we can say a lot without anyone noticing.
And of course this is our goal, otherwise why not say it loud and clear: "I will lower the bid on the contract by 100,000". You need to cough twice, sneeze once, and close the phone call exactly after 15 minutes in order to tell me it is a 100,000 not 90,000 and not 110,000.

Welcome All

As a start, this blog is mainly for investigating techniques where two parties can communicate over elementary communication channels without anyone noticing.

A basic example: cheating in a test. How to do it without the proctor noticing? Of course, personally, I do not like that (being the 'proctor' in many cases :) ). But, this can have quite a high research value.

Many techniques exist with complicated schemes, and high throughput. However, we are here concerned with the simplest of forms; two people waving at each other, opening your web browser or not, is your cell phone working or in flight mode, ...

So, if you are not familiar with what is going on in the hard-core research community regarding these techniques, don't panic, you are still welcomed, and you can still heavily contribute (or not, who will know :) )