Quali sono le solite strategie di crittografia base64?

Sebbene la codifica base64 non abbia lintento di crittografare, non è inverosimile pensare che il processo di codifica possa essere temperato in qualche modo per creare una crittografia. Sicuramente, non sono la prima persona a pensare a un tale tentativo di crittografia utilizzando la codifica base64. Pertanto, vorrei chiedere quali tipi di strategie di crittografia base64 sono conosciute?

Commenti

  • Come un cifrario a flusso di 6 bit?
  • generalmente la crittografia avviene prima che i dati vengano eseguiti tramite Base64
  • I ‘ ho visto schemi di crittografia base64 usati in precedenza, ma tutti potrebbero essere banali rotto. Questa domanda ha senso perché le persone potrebbero cercare algoritmi come questo. Tuttavia, il buon senso probabilmente significa che indichiamo che base64 non è inteso come cifra ed è il risultato di confondere la codifica con la crittografia. Tieni presente che molti di noi presumeranno che la premessa di questa domanda è sbagliata: che uno schema di codifica può essere utilizzato per la crittografia. Ciò potrebbe portare a voti negativi, anche se la domanda è almeno interessante per molti crittografi principianti.
  • Forse tangenzialmente pertinente: crypto.stackexchange.com/questions/62425/… , crypto.stackexchange.com/questions/5862/… e crypto.stackexchange. it / questions / 45215 / …

Risposta

Questo è tratto dalla voce Wiki per Base64:

esempio base64

Se davvero inteso a manomettere la codifica Base64 per fornire la crittografia, potrebbe essere fatto al livello di indice evidenziato sopra. Avresti bisogno di una chiave segreta, una funzione di derivazione della chiave su misura per creare un seme ad alta entropia che poi ha avviato un generatore di numeri pseudo casuali. Loutput del generatore (6 bit) verrebbe quindi sottoposto a XOR con lindice per cambiare la codifica di ogni carattere. E questa tecnica può essere invertita per decifrare il messaggio crittografato.

Vedi che è tutto un po fastidioso. Tradizionalmente si crea il testo cifrato e poi lo si codifica. Oltre a ritagliare una tipica sequenza casuale a 8 bit a 6 bit, il carico di lavoro è identico al stream cipher . In realtà hai bisogno del 33% di calcoli extra, ma non è né qui né lì.

Potresti essere il primo ad aver pensato a questa variante di Base64 poiché nessuno sembra essere consapevole di un comportamento simile. Questo dovrebbe funzionare comunque.

Commenti

  • Grazie per questo interessante suggerimento! In realtà, avevo in mente cose semplici, come permutare lassociazione della tabella delle lettere a 6 bit. O introdurre una chiave e eseguire unoperazione xor bit per bit su ogni lettera che scorre attraverso la chiave, o simili.
  • @Kagaratsch Beh, penso che ‘ stiamo pensando a cose simili Linee. Per permutarti ‘ avrai bisogno della funzionalità PRNG e per collegare una chiave a un PRNG devi ‘ avrai bisogno di una sorta di funzione di derivazione della chiave altrimenti lì ‘ sarà una mancata corrispondenza tra il formato della chiave e il formato / stato richiesto per utilizzare il PRNG. Se permuti semplicemente senza una chiave, o usi il ciclo del tuo carattere chiave, lo schema ‘ non è molto sicuro e dopotutto questo è crypto.SE 🙂
  • @PaulUszak Quel nome tecnico è in realtà abbastanza ovvio non appena lo conosci … ‘ si chiama semplicemente ” Cifratura XOR “. 😉 Tuttavia, nota che lanalisi della frequenza lo interromperà banalmente. Lo stesso vale per i noti attacchi con testo in chiaro. Oh, e per essere completi riguardo alla denominazione tecnica: quando lanci un prng, un tale ” cifrario XOR ” si trasforma in un ” cifratura del flusso “. Ma probabilmente lo sapevi già, ‘ t?
  • @PaulUszak Non sei sicuro del motivo per cui hai detto ” no “. Inoltre, puoi essere certo che io sappia cosa significa ” ciclismo “. Un codice XOR scorre la stessa chiave più e più volte e nello stesso ordine, proprio come descrivi. Controlla l ” esempio ” di quel link wiki; corrisponde al 100% alle tue descrizioni… a bitwise xor operation on each letter cycling through the key e Cycling round through the key means that the plain text will be XORed with the same sequence over and over, and in the same order. – che ‘ si chiama ” Cifratura XOR “. Nessun errore o lacuna linguistica lì.
  • Qualsiasi modo di modificare base64 in questo modo può essere preso in considerazione (a) nella definizione di un cifrario su stringhe di byte e poi (b) nellapplicazione dello standard base64 al suo output, mappando le stringhe di byte del testo cifrato al testo normale. ‘ non ha senso unire (a) e (b): non aggiunge sicurezza e complica inutilmente la descrizione sia del codice sottostante che dello standard implicito base64.

Risposta

Questo non ha senso. Non esiste una chiave segreta in base64: la codifica e la decodifica base64 sono funzioni pubbliche che chiunque può valutare.

Lunico modo in cui base64 è correlato alla crittografia è che è conveniente codificare il testo cifrato da qualche sistema crittografico, che è distribuito uniformemente in stringhe a 8 bit, in un insieme limitato di US-ASCII che non verrà modificato o rifiutato in contesti limitati al testo normale, come XML.

Commenti

  • +1 (… e base64 produce output più brevi rispetto alla codifica esadecimale, motivo per cui è stato sviluppato e perché tende ad essere utilizzato frequentemente nelle applicazioni.)
  • Rende perfetto senso 🙂 La domanda è stata posta come ipotetica e lOP sta cercando possibilità di implementazione. Non esiste ‘ alcuna legge naturale che imponga che tutta la crittografia debba essere super efficiente. Deve solo crittografare / decrittografare. Sai che le persone costruiscono ancora motori a vapore e ne sono molto orgogliose ..?
  • @PaulUszak Non ‘ non ha senso come base64, una trasformazione pubblica tra due rappresentazioni equivalenti di dati, è un tipo di oggetto diverso da uno schema di crittografia che coinvolge segreti non noti a un avversario. Qualsiasi modo in cui modifichi linterfaccia e gli interni di base64 per inserire una sorta di chiave e cifratura può essere preso in considerazione nella trasformazione della rappresentazione standard in base64 e in un codice sottostante la cui sicurezza è irrilevante per la parte base64. Se hai realizzato una macchina Enigma alimentata a vapore, diresti di aver modificato il concetto di potenza del vapore in uno schema di crittografia?
  • @SqueamishOssifrage Sì.

Risposta

La regola doro della crittografia dovrebbe essere: “Non è perché tu non puoi leggere il testo che questo è criptato”. Base64 non è concepito per essere utilizzato per creare testo cifrato e non dovrebbe essere utilizzato a tale scopo.

I metodi di crittografia si basano sempre su un segreto o su artefatti che assicurano che solo gli attori della comunicazione possano invertire il testo cifrato. In caso contrario, come con Base64, non è crittografia.

Base64 è concepito per codificare binario come testo con vari vantaggi rispetto ad altri schemi di codifica. La privacy non è tra questi vantaggi.

Risposta

Sì, cè interesse a crittografare base64 a monte: è leconomia in iterazioni. Quando crittografiamo i dati e poi li codifichiamo, dobbiamo fare almeno due loop: uno sulla crittografia dei dati e laltro sulla codifica dei dati generati. Crittografando a monte possiamo ridurre a un loop e quindi ottenere prestazioni significative.

@ e-sushi: In effetti, non ci sono molti esempi tranne questo che utilizza un solo loop: php_base64encrypted

Probabilmente ci sono altri modi per fare di meglio, ma dimostra che è possibile …

Modifica: scusa, non ho molta familiarità con questo sito.

Commenti

  • Puoi fornire un esempio (link a carta o qualcosa del genere) di tale “interesse per crittografare base64 a monte”? Ho provato a trovare maggiori informazioni usando il mio motore di ricerca preferito , ma in qualche modo ho fallito.Un puntatore sarebbe quindi molto appr eciated.
  • La codifica Base64 è un processo che può essere riprodotto in streaming (ad es. consente a un flusso di dati di essere codificato in modo incrementale mentre ‘ viene generato, senza dover prima leggere tutto). Pertanto, sarebbe perfettamente possibile che uno schema di crittografia convenzionale inserisca il suo output in un codificatore base64 incrementale, senza dover ” fare almeno due cicli ” sui dati. Lunico motivo per cui questo ‘ non viene fatto più comunemente è probabilmente il fatto che, per flussi di dati abbastanza lunghi da renderlo utile, ‘ di solito è molto più efficiente saltare completamente la codifica base64 e semplicemente trasmetterli e / o archiviarli come dati binari grezzi.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *