ICT Cubes Decode Webservice: From Slat Sequences to Cleartext Georg Böcherer and Sebastian Baur Institute for Communications Engineering, TU Munich georg.boecherer@tum.de,baursebastian@mytum.de AG Kommunikationstheorie Institute for Theoretical Information Technology RWTH Aachen University June 21, 2013 1/1
Institute for Communications Engineering Technische Universita t Mu nchen RWTH Information and Communication Technology Cubes 2/1
Slats Three types of slats: left, right, middle Purpose: Make stacked floors appear as a cube Keep building from heating up in the sun Side effect: Slats shadow the rooms 3/1
Design constraints Sequence of slats should look random Balance between cooling and shadowing: 40% left, 40% right, 20% middle 4/1
Idea: Write a text to the facade Challenge: Find a code that maps a text to a sequence of slats The generated slat sequence should respect the design constraints 5/1
Tool 1: Data compression Compressing (zip,rar,...) data generates a binary sequence that resembles the output of flipping a coin 6/1
Tool 2: Distribution matching Distribution matching maps the output of flipping a coin to a sequence that resembles the output of a desired source. 1 1 G. Böcherer, Capacity-achieving probabilistic shaping for noisy and noiseless channels, Ph.D. dissertation, RWTH Aachen University, 2012. 7/1
Tool 3: Law of large numbers Think of a source that generates slats with the probabilities Pr(left) = Pr(right) = 0.4, Pr(middle) = 0.2 For a long sequence of slats generated by this source, the empirical distribution is close to 40% left, 40% right, 20% middle. 8/1
Approach Text Compression binary sequence Matching slat sequence 9/1
Text: Quotes from researchers shannon the fundamental problem of communication is that of reproducing at one point either exactly or approximately a message selected at another point plato let no one ignorant of mathematics enter here schottky space permits only an approximate statement of the theory nyquist when the output of an amplifier is connected to the input through a transducer the resulting combination may be either stable or unstable hamming it is better to do the right problem the wrong way than the wrong problem the right way turing machines take me by surprise with great frequency fourier the profound study of nature is the most fertile source of mathematical discoveries wiener there are no answers only cross references gallager good communication is central to a civilized society knuth beware of bugs in the above code i have only proved it correct not tried it mackay combine a simple pseudo random code with a message passing decoder bell you cannot force ideas successful ideas are the result of slow growth kolmogorov the human brain is incapable of creating anything which is really complex gauss when i have clarified and exhausted a subject then i turn away from it in order to go into darkness again zuse it is not true that virtually all news in a totalitarian state is false marconi every day sees humanity more victorious in the struggle with space and time bernoulli it would be better for the true physics if there were no mathema 10/1
Compression code 2 : 000 a : 0111 b : 101110 c : 11110 d : 00110 e : 110 f : 10000 g : 010100 h : 11111 i : 0110 j : 00111000100 k : 00111001 l : 10110 m : 01011 n : 1001 o : 1010 p : 001111 q : 00111000101 r : 0010 s : 0100 t : 1110 u : 10001 v : 0011101 w : 101111 x : 001110000 y : 010101 z : 0011100011 2 F. Altenbach, G. Böcherer, R. Mathar, Short Huffman codes producing 1s half of the time, presented at ICSPCS 2011. 11/1
Matching code 3 0010 : lll 1101 : llr 00000 : llm 1100 : lrl 1111 : lrr 00011 : lrm 00010 : lml 01101 : lmr 0000111 : lmm 1110 : rll 1001 : rlr 01100 : rlm 1000 : rrl 1011 : rrr 01111 : rrm 01110 : rml 01001 : rmr 000010 : rmm 01000 : mll 01011 : mlr 001101 : mlm 01010 : mrl 1010 : mrr 001100 : mrm 001111 : mml 001110 : mmr 0000110 : mmm 3 G. Böcherer, F. Altenbach, M. Malsbender, R. Mathar, Writing on the facade of RWTH ICT Cubes: cost constrained geometric Huffman coding, presented at ISWCS 2011, best paper award. 12/1
Checking design constraints: Cooling and shadowing left right middle Generated sequence 38.7% 40.9% 20.4% Design constraint 40% 40% 20% 13/1
Checking design constraints: Appearance 14/1
Reading the Facade Two step approach: 1 Read (a part of) the slat sequence 2 Decode the slat sequence we start with step 2. 4 4 Sebastian Baur: ICT Cubes Decode Webservice: Von Lamellensequenzen zu Klartext, B.Sc. thesis, TU Munich, 2013. 15/1
Synchronization Problem on Slat Level rm rlr rrr mmr mll { }} { {}}{ {}}{ { }} { { }} { { }} { {}}{ {}}{ {}}{ {}}{ }{{} 1001 } 1011 {{ } 0 }{{} 0111 }{{} 0 010 }{{} 00 01111 } {{ } 1 } 001 {{ 10 } }{{} 10 10 }{{} 01 1011 n l a r h d o i rrm rlr mrr rlr rrr rmr lrr rrm mrm llr { }} { {}}{ { }} { { }} { {}}{ { }} { { }} { {}}{ {}}{ {}}{ }{{} 0100 } 1 1111 {{ } }{{} 0111 }{{} 1 001 }{{} 100 1 }{{} 101 0 }{{} 1001 }{{} 000 }{{} 11 1011 } {{ 111 } }{{} 1 1111 s h a n n o n t h e rmr lrm rrr lrr lrr 16/1
Synchronization Problem on Bit Level rmr lrr rrm mrm llr { }} { {}}{ { }} { { }} { {}}{ { }} { { }} { {}}{ {}}{ {}}{ 1111 } {{ } 0 } 1111 {{ } 0 }{{} 0110 }{{} 0 110 }{{} 1 010 }{{} 01 00 }{{} 011 1 }{{} 011 1111 } {{ 1000 } c c i i o s a a c rmr lrm rrr lrr rrl rmr lrr rrm mrm llr { }} { {}}{ { }} { { }} { {}}{ { }} { { }} { {}}{ {}}{ {}}{ }{{} 0100 } 1 1111 {{ } }{{} 0111 }{{} 1 001 }{{} 100 1 }{{} 101 0 }{{} 1001 }{{} 000 }{{} 11 1011 } {{ 111 } }{{} 1 1111 s h a n n o n t h e rmr lrm rrr lrr lrr 17/1
Example for Correct Decoding rmr lrr rrm mrm llr { }} { {}}{ { }} { { }} { {}}{ { }} { { }} { {}}{ {}}{ {}}{ 1111 }{{} 01111 }{{} 001 }{{} 100 1 }{{} 101 01001 }{{} }{{} 000 }{{} 11 10 } 11 {{ 111 } }{{} 1 1000 a n n o n t h e rmr lrm rrr lrr rrl 18/1
Observation Slat offset periodic no automatic synchronization Bit offset aperiodic automatic synchronization Since we want to decode very short parts of the slat sequence, we do not rely on automatic synchronization. 19/1
Approach Let ˆt be the decoded text and suppose we have the boolean function issynchronized(ˆt). for slatoffset = 0...2 for bitoffset = 0...maxLength decode with slatoffset and bitoffset if[issynchronized(ˆt)] return ˆt end if end for end for 20/1
Implementing issynchronized Pilot symbols: less quotes! Comparison with cleartext: loss of flexibility! Dictionary 21/1
Testing Dictionary Based Synchronization 1 frequency of correct decoding 0.8 0.6 0.4 0.2 1. word 1. word > 1 1. & 2.(3.) word>1 adapted evaluation 0 10 20 30 40 50 60 70 80 90 100 number of slats 22/1
Implementation Implemented in google programming language Go Deployed in the cloud using google s appengine 23/1
Webservice Interface HTTP GET request Slat sequence as query: http://ict-cubes.appspot.com/?slats=rlrrrrmmrmllrrmrlrmrrrlrrrrl Call from MATLAB: resp=urlread( http://ict-cubes.appspot.com/?slats=rlrrrrmmrmllrrmrlrmrrrlrrrrl ) Response as JSON string: { ClearText : shannon the fundamental, Length :24} 24/1
Outlook From photo to clear text: Make plain view of the 8 facades available to the reader Match photo to plain view Pass slat sequence covered by photo to the webservice. 25/1