scopri l'algoritmo basato su alcuni esempi?

0

Ho un generatore OTP che riceve due numeri in meno di 99 come input e restituisce un numero di 8 cifre come output. So che ha un semplice algoritmo. perché il suo processore è solo un microcontrollore ATMEGA8!

Ho provato diversi numeri come input e ho scoperto che l'output dipende dal numero di input! Intendo coppie diverse che ha lo stesso valore moltiplicato, restituirà un risultato uguale! ad esempio, 2,5 e 5,2 e 1,10 e 10,1 hanno uguali risultati a 8 cifre! (poiché hanno lo stesso valore di moltiplicazione). Così creo una tabella di diversi valori multipli come input e il loro output correlato come di seguito:

 Output  | Multiply Of Inputs | Example Of Inputs

35057738    0                      0,x or x,0
05863266    1              
35049586    2
06122346    3
71382386    4
69282170    5
06385526    6
05860214    7
05057910    8                      1,8 or 2,4 or 4,2 or 8,1
06106462    9
34009178    10
06911858    11
34000994    12
06122474    13
71382514    14
69282298    15
06385654    16
05860342    17
05058038    18
06106590    19
34009306    20
06911986    21
34001122    22
06097786    23
71357794    24
69257578    25
06360934    26
05835622    27
05033318    28
06081870    29
33968202    30
06887266    31
33976434    32
14482282    33
79742322    34
77650298    35
14745462    36
14220150    37
13417846    38
14466398    39
42352730    40
15271794    41
42360930    42
05069786    43
70329794    44
72432074    45
05332934    46
04807622    47
04005318    48
02956782    49
37150954    50
03762114    51
37142738    52
06101930    53
71361970    54
69269946    55
06365110    56
05839798    57
05037494    58
06086046    59
33988762    60
06891442    61
33980578    62
46145226    63
11405266    64
09313242    65
46408406    66
45883094    67
45080790    68
46129406    69
10886650    70
46934738    71
10894786    72
44023546    73
09283554    74
11385834    75
44286694    76
43761382    77
42959078    78
44007630    79
12975562    80
44813026    81
12967410    82
49274538    83
14534578    84
16636858    85
49537718    86
49012406    87
48210102    88
47161502    89
18210202    90
47966898    91
18218402    92
15608698    93
80868706    94
78768490    95
15871846    96
15346534    97
14544230    98
13495630    99
43495498    100
14301026    101
43487346    102
14560106    103
79820146    104
77719930    105
14823286    106
14297974    107
13495670    108
14544222    109
42446938    110
  ????       x

Ora voglio sapere, questo algoritmo sembra abbastanza sicuro? C'è un modo per scoprire l'algoritmo?

    
posta TheGoodUser 06.12.2014 - 10:32
fonte

1 risposta

3

Questo algoritmo è abbastanza sicuro? Depends. Qual è il tuo modello di minaccia. Quella domanda non può essere risolta letteralmente senza creare un modello di quanto sia determinata e quanto sia ricca la tua minaccia.

Detto questo, generalmente direi "no, non abbastanza sicuro". Se hai trovato che gli input sono moltiplicati insieme nel primo passaggio, questo inizia automaticamente a creare attacchi. Non hai 100 * 100 = 10.000 ingressi possibili, hai solo 2.870 ingressi possibili.

Dato che non si dispone di un modello di minaccia, questo, di per sé, non è sufficiente per renderlo automaticamente insufficiente. Tuttavia, mostra che l'implementatore non ha capito la sicurezza durante lo sviluppo dell'algoritmo. Questo suggerisce che ci sono altri difetti che non sono stati ancora visti, e quindi istintivamente diffido della realizzazione.

    
risposta data 06.12.2014 - 19:55
fonte

Leggi altre domande sui tag