Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>I wrote a small prove of concept. Here is what I have done.</p> <p>I generated ten random binary strings with 64 digits as card content examples produced by a reference reader.</p> <pre><code>0010110111011011100000010001100011111001010100111101110111000100 0000000110001111101110001011110100000100111101100100110010100000 1111000010100111011000111000100111111001000010100101011100011001 0010011011100011001000010111100010110001001000010101001110000000 1111000100101100010011101011010011100111000000001111110010101110 0101011101000101110111000010100110000111001010000010000001110111 0101110010011010011110011110111100111001110010100111101001111101 0101110100100101110000101000001000011100010100010010110000010001 0111101011011010111001011011110101011100111011010111100110100101 0000101001000110111101000100111011110000000011010110001110101011 </code></pre> <p>Then I generated a random mapping table to simulate the different output of another reader for the same ten cards. It has the format <code>i -&gt; j</code> meaning bit <code>i</code> from the reference content occurs as bit <code>j</code> on the other reader.</p> <pre><code> 4 -&gt; 0 4 -&gt; 1 49 -&gt; 2 32 -&gt; 3 51 -&gt; 4 52 -&gt; 5 10 -&gt; 6 47 -&gt; 7 16 -&gt; 8 32 -&gt; 9 14 -&gt; 10 24 -&gt; 11 13 -&gt; 12 1 -&gt; 13 8 -&gt; 14 47 -&gt; 15 12 -&gt; 16 56 -&gt; 17 55 -&gt; 18 22 -&gt; 19 6 -&gt; 20 33 -&gt; 21 22 -&gt; 22 45 -&gt; 23 37 -&gt; 24 39 -&gt; 25 46 -&gt; 26 47 -&gt; 27 25 -&gt; 28 15 -&gt; 29 43 -&gt; 30 13 -&gt; 31 33 -&gt; 32 31 -&gt; 33 16 -&gt; 34 49 -&gt; 35 0 -&gt; 36 30 -&gt; 37 28 -&gt; 38 31 -&gt; 39 45 -&gt; 40 28 -&gt; 41 17 -&gt; 42 18 -&gt; 43 40 -&gt; 44 18 -&gt; 45 23 -&gt; 46 54 -&gt; 47 11 -&gt; 48 54 -&gt; 49 41 -&gt; 50 39 -&gt; 51 28 -&gt; 52 31 -&gt; 53 1 -&gt; 54 34 -&gt; 55 45 -&gt; 56 4 -&gt; 57 59 -&gt; 58 11 -&gt; 59 6 -&gt; 60 26 -&gt; 61 21 -&gt; 62 0 -&gt; 63 52 -&gt; 64 1 -&gt; 65 55 -&gt; 66 46 -&gt; 67 49 -&gt; 68 23 -&gt; 69 47 -&gt; 70 45 -&gt; 71 28 -&gt; 72 23 -&gt; 73 41 -&gt; 74 41 -&gt; 75 16 -&gt; 76 4 -&gt; 77 4 -&gt; 78 18 -&gt; 79 </code></pre> <p>For example bits one and two of the other readers output equal bit four of the reference reader output. The simulated output is 80 bits width and there are some bits duplicated and maybe some others missing.</p> <pre><code>11111101111000111110010001110110101100100100001010111001010100001011111011111110 00100100101110101100000110100111011100111101110000101100100001001001100110111001 00111010011111100011011001100101110110110111011101011111001000010111110011000001 00111011011000110110100001011100000100100101011101011001000011000010111011000001 00111110010111001101011011000001100110000010000000010011000001111100100000000000 00010000110011000000100011000101011000110110000000011110001011100100000010001000 11101100001101101000000001101000010101110111111111111111011101001101110011110111 11000111100111010001001010010111001001000010000000100010011000001100001000111110 11101101101101111110110110010000111100111111111010101110110111101110111111111111 11110001111010010110110100011001101101101111010101001001110010100010101110001111 </code></pre> <p>Now we want to find the mapping between both data sets. For this we just look at the correlation between the bits. That means for each combination of a bit index i (0 to 63) produced by the reference reader and each bit index j (0 to 79) produced by the other reader we just count how many examples have matching bits at this positions.</p> <pre><code> 111111111122222222223333333333444444444455555555566666 0123456789012345678901234567890123456789012345678901234567890123 0 3545.65456386363765535465634568436588433683666585575745656555647 1 3545.65456386363765535465634568436588433683666585575745656555647 2 4474534385457494458444376567873567875326554355654.48656783626534 3 64743565476336564544465525456333.7853368114353456646256765446574 4 669655438567727425624459656765356787734855435365684.656765446734 5 4656752763479454654464558367475525457744794735656666.72365644734 6 8676354543.33636254244956545235365655566334533456446476543266354 7 33638674585643657453154636365462565864334656463.5555545874333445 8 2434756747255656.54646334345655545255742576757474462652565642556 9 64743565476336564544465525456333.7853368114353456646256765446574 10 33636452963663.5549533285656964656786215665466763937547874535425 11 685853256165765447646475.365475725457744774555634666874343666536 12 6636334723613.36674666716343455565433764334555434462474343666376 13 6.5.554543655634494466758363455745457766554373434486654325686758 14 44745543.5477296438442396567853745677326776555854828656765444514 15 33638674585643657453154636365462565864334656463.5555545874333445 16 556564367438.363545575467478584636546655885646747757963476735843 17 42725365674574746364463545696733676535445565374768466547.3604552 18 5383647278564385547315483636744478786235445466585737347.74335445 19 9767443632944725363355.47434146456546675443644547355585434377465 20 445455.349453454656648352765655565453564538377274464216765644576 21 758562545656656356533766543656447.766455443466567757565874537665 22 9767443632944725363355.47434146456546675443644547355585434377465 23 534362745636656374775744565658663634465186766.565553545674735465 24 5747445834546725763577627276364634124.73667646345373761254753665 25 667637456565545625446457456563358585536.334351636648456547466754 26 6454552583477476436662576545655745657346774755.36626676547466534 27 33638674585643657453154636365462565864334656463.5555545874333445 28 5343667256564363347755463.54568454764255645466565555329656557465 29 445437476563365.634442554345613563455546356733654424474545262334 30 5343663854566547723553645436346434346653685.26767333783456353443 31 6636334723613.36674666716343455565433764334555434462474343666376 32 758562545656656356533766543656447.766455443466567757565874537665 33 5747445474366565567775467474764.34346655867486723555545436775647 34 2434756747255656.54646334345655545255742576757474462652565642556 35 4474534385457494458444376567873567875326554355654.48656783626534 36 .676334543855634254466956545255567635586534555638446476545468574 37 552586543456454356575564583236.434566453663666565373547436577467 38 2454556387255496658644174565.53765675326556375652846436765644536 39 5747445474366565567775467474764.34346655867486723555545436775647 40 534362745636656374775744565658663634465186766.565553545674735465 41 2454556387255496658644174565.53765675326556375652846436765644536 42 59496454345447435.5557647452566656566655443284343595545434777669 43 445453618545549445.644376765875745675324756377652846438763646336 44 5545645474388363547775467676586814346653.87668745555745456755645 45 445453618545549445.644376765875745675324756377652846438763646336 46 55856652965861853473334.5656744656788237665464765739547856355625 47 645455616565347425864457494365756587514653437565464623.745468356 48 55658654763.8163545555485656566636568455885666767557745658555845 49 645455616565347425864457494365756587514653437565464623.745468356 50 35458636743883657455534674565666143686338.5846765555963456553625 51 667637456565545625446457456563358585536.334351636648456547466754 52 2454556387255496658644174565.53765675326556375652846436765644536 53 5747445474366565567775467474764.34346655867486723555545436775647 54 6.5.554543655634494466758363455745457766554373434486654325686758 55 6474554365655474256444574745655387.75148332353656848458765448554 56 534362745636656374775744565658663634465186766.565553545674735465 57 3545.65456386363765535465634568436588433683666585575745656555647 58 68385745436536364746647565414377434575665545736342644563074.6558 59 55658654763.8163545555485656566636568455885666767557745658555845 60 445455.349453454656648352765655565453564538377274464216765644576 61 46563565654574544566863565.7673743433766758355434666634365844754 62 665653852745563267466.534565475567433784536377256484434565846796 63 .676334543855634254466956545255567635586534555638446476545468574 64 4656752763479454654464558367475525457744794735656666.72365644734 65 6.5.554543655634494466758363455745457766554373434486654325686758 66 5383647278564385547315483636744478786235445466585737347.74335445 67 6454552583477476436662576545655745657346774755.36626676547466534 68 4474534385457494458444376567873567875326554355654.48656783626534 69 55856652965861853473334.5656744656788237665464765739547856355625 70 33638674585643657453154636365462565864334656463.5555545874333445 71 534362745636656374775744565658663634465186766.565553545674735465 72 2454556387255496658644174565.53765675326556375652846436765644536 73 55856652965861853473334.5656744656788237665464765739547856355625 74 35458636743883657455534674565666143686338.5846765555963456553625 75 35458636743883657455534674565666143686338.5846765555963456553625 76 2434756747255656.54646334345655545255742576757474462652565642556 77 3545.65456386363765535465634568436588433683666585575745656555647 78 3545.65456386363765535465634568436588433683666585575745656555647 79 445453618545549445.644376765875745675324756377652846438763646336 </code></pre> <p>Above are the results from this with a dot representing ten matches. As you can see this recovers the mapping for all bits except bits 13, 54, and 65 where two possible matches are found.</p> <p>77 out of 80 bits with only ten samples is quite good. Admittedly this will not work that good if the bit patterns contain structure and are not just random bits or if you have to take bits computed from several bits into account. But if you have access to large enough sample sets you can uncover all possible mappings.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload