Hvad er sædvanlige base64-krypteringsstrategier?

Mens base64-kodning ikke har til hensigt at kryptere, er det ikke langt fra at tro, at kodningsprocessen kunne tempereres med på en eller anden måde for at skabe en kryptering. Sikkert er jeg ikke den første person, der tænker på et sådant krypteringsforsøg, der bruger base64-kodning. Derfor vil jeg gerne spørge, hvilke slags base64-krypteringsstrategier der er kendt?

Kommentarer

  • Som en 6-bit stream-chiffer?
  • generelt sker krypteringen, før dataene køres gennem Base64
  • I ‘ har set base64-krypteringsplaner brugt før, men alle kunne være trivielt ødelagt. Dette spørgsmål giver mening, fordi folk muligvis søger efter algoritmer som denne. Men sund fornuft betyder sandsynligvis, at vi angiver, at base64 ikke er ment som en chiffer og er resultatet af forvirrende kodning med kryptering. Bemærk, at mange af os antager at forudsætningen for dette spørgsmål er forkert: at et kodningsskema kan bruges til kryptering. Dette kan resultere i nedstemninger, selvom spørgsmålet i det mindste er interessant for mange startende kryptografer.
  • Måske tangentielt relevant: crypto.stackexchange.com/questions/62425/… , crypto.stackexchange.com/questions/5862/… og crypto.stackexchange. com / spørgsmål / 45215 / …

Svar

Dette er taget fra Wiki-post for Base64:

base64-eksempel

Hvis du virkelig beregnet til at manipulere Base64-kodning for at give kryptering, kunne det gøres på det indeksniveau, der er fremhævet ovenfor. Du har brug for en hemmelig nøgle, en nøgleafledningsfunktion skræddersyet til at skabe et højt entropi-frø, som derefter startede en pseudo tilfældig talgenerator. Generatorens (6 bit) output ville så blive XORed med indekset for at ændre kodningen for hvert tegn. Og denne teknik kan vendes for at dechifrere den krypterede besked.

Du ser, at det hele er lidt af en gener. Traditionelt opretter du krypteringsteksten og koder den derefter. Bortset fra at beskære en typisk 8-bit tilfældig sekvens til 6 bit, er arbejdsbelastningen identisk med den traditionelle streamcipher . Faktisk har du brug for 33% ekstra beregninger, men det er hverken her eller der.

Du er måske den første til at have tænkt på denne Base64-variant, da ingen ser ud til at være opmærksom på lignende opførsel. Dette skal dog fungere.

Kommentarer

  • Tak for dette interessante forslag! Faktisk havde jeg tænkt på enkle ting, som at permutere 6bit brevtabelforening. Eller introducere en nøgle og have en bitvis xor-operation på hvert bogstav, der cykler gennem nøglen eller lignende.
  • @Kagaratsch Nå jeg tror, vi ‘ tænker på lignende linjer. For at permutere dig ‘ skal du bruge PRNG-funktionalitet og for at linke en nøgle til en PRNG, skal du ‘ behøver en slags nøglediveringsfunktion ellers ‘ Det vil være et misforhold mellem nøgleformatet og det format / tilstand, der kræves for at betjene PRNG. Hvis du simpelthen permitterer uden en nøgle eller bruger din nøglekarakter cykling, er ordningen ‘ ikke særlig sikker, og det er trods alt crypto.SE 🙂
  • @PaulUszak Det tekniske navn er faktisk ret indlysende, så snart du kender det … det ‘ kaldes simpelthen ” XOR-chiffer “. 😉 Bemærk dog, at frekvensanalyse trivielt vil bryde den. Det samme gælder for kendte almindelige tekstangreb. Åh, og for at være komplet med hensyn til den tekniske navngivning: når du smider en prng, bliver en sådan ” XOR-chiffer ” til en ” streamcipher “. Men det vidste du sandsynligvis allerede, ikke ‘ ikke dig?
  • @PaulUszak Er du ikke sikker på, hvorfor du siger ” nej “. Du kan også være sikker på, at jeg ved, hvad ” cykling ” betyder. En XOR-chiffer cykler gennem den samme nøgle igen og igen og i samme rækkefølge, ligesom du beskriver. Kontroller ” eksempel ” for det wiki-link; det matcher dine beskrivelser 100% … a bitwise xor operation on each letter cycling through the key og 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. – at ‘ hedder ” XOR-chiffer “. Ingen fejl eller sproggab der.
  • Enhver måde, hvorpå du tilpasser base64 som denne, kan tages med i (a) at definere en chiffer på byte-strenge og derefter (b) at anvende standard base64 på dens output og kortlægge ciphertext-byte-strenge til almindelig tekst. Der ‘ har ingen mening i at flette (a) og (b) – det tilføjer ingen sikkerhed og komplicerer unødvendigt beskrivelsen af både den underliggende chiffer og den underforståede standard base64.

Svar

Dette giver ikke mening. Der er ingen hemmelig nøgle i base64: base64-kodning og afkodning er offentlige funktioner, som alle kan evaluere.

Den eneste måde, som base64 er relateret til kryptografi er, at det er praktisk at kode kodetekst fra noget kryptosystem, hvilket er jævnt fordelt i 8-bit strenge i et begrænset sæt US-ASCII, der ikke vil blive munget eller afvist i sammenhænge, der er begrænset til almindelig tekst, såsom XML.

Kommentarer

  • +1 (… og base64 producerer kortere output end hex-kodning, hvorfor det blev udviklet, og hvorfor det ofte bruges i applikationer.)
  • Det er perfekt sense 🙂 Spørgsmålet blev stillet som et hypotetisk, og OPen leder efter implementeringsmuligheder. Der ‘ er ingen naturlig lov, der kræver, at al kryptering skal være super dooper effektiv. Det skal bare krypteres / dekrypteres. Ved du, at folk stadig bygger dampmaskiner og er meget stolte af dem ..?
  • @PaulUszak Det giver ‘ ikke mening som base64, en offentlig transformation mellem to ækvivalente repræsentationer af data, er en anden type objekt end et krypteringsskema, der involverer hemmeligheder, som en modstander ikke kender. Enhver måde, hvorpå du ændrer grænsefladen og internerne i base64 for at placere en slags nøgle og chiffer i den, kan tages med i standard base64-transformationstransformationen og en underliggende chiffer, hvis sikkerhed er irrelevant for base64-delen. Hvis du lavede en dampdrevet Enigma-maskine, ville du sige, at du ændrede konceptet med dampkraft til et krypteringsskema?
  • @SqueamishOssifrage Ja.

Svar

Den gyldne regel for kryptografi skal være: “Det er ikke fordi du ikke kan læse teksten, at denne er krypteret”. Base64 er ikke beregnet til at blive brugt til at skabe ciphertext, og den skal ikke bruges til dette formål.

Krypteringsmetoder er altid afhængige af en hemmelighed eller artefakter, der sikrer, at kun kommunikationsaktørerne kan vende ciffertekst. Hvis det ikke gør, som med Base64, er det ikke kryptering.

Base64 er beregnet til at kode binært som tekst med forskellige fordele i forhold til andre kodningsordninger. Privatliv er ikke blandt disse fordele.

Svar

Ja, der er en interesse i at kryptere upstream base64: det er økonomien i iterationer. Når vi krypterer data og derefter koder dem, er vi nødt til at lave mindst to sløjfer: den ene om kryptering af dataene og den anden om kodningen af de genererede data. Ved at kryptere opstrøms kan vi reducere til en løkke og derfor få betydelig præstation.

@ e-sushi: Faktisk er der ikke mange eksempler undtagen denne, der kun bruger en loop: php_base64encrypted

Der er sandsynligvis andre måder at gøre det bedre på, men det viser, at det er muligt …

Rediger: undskyld, jeg er ikke særlig fortrolig med dette websted.

Kommentarer

  • Kan du give et eksempel (link til papir eller noget) af en sådan interesse i at kryptere upstream base64? Jeg forsøgte at finde mere info ved hjælp af min foretrukne søgemaskine , men på en eller anden måde mislykkedes jeg. En markør ville derfor være meget ca. eciated.
  • Base64-kodning er en streambar proces (dvs. det gør det muligt at kode en strøm af data trinvist, da den ‘ genereres uden først at skulle læse det hele). Således ville det være perfekt muligt at få et konventionelt krypteringsskema til at føre dets output til en inkrementel base64-kode uden at skulle ” lave mindst to sløjfer ” over dataene. Den eneste grund til, at dette ikke er ‘ t mere almindeligt, er sandsynligvis det faktum, at det for datastrømme, der er længe nok til at gøre dette nyttigt, ‘ s er normalt meget mere effektive til at springe base64-kodning helt over og bare sende og / eller gemme dem som rå binære data.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *