Achtung: Je browser is verouderd. Daardoor werkt Gunfinder mogelijk niet overal goed. Update je browser zo snel mogelijk. Lees hier meer!
Gunfinder is also available in other languages.
Gunfinder Magazine

AES of ChaCha20 op mobiele platforms

AES of ChaCha20 op mobiele platforms

Mijn korte antwoord: Op moderne iPhones en high-end Android-apparaten kies ik meestal voor AES-GCM. Op oudere, goedkope of gemengde Android-apparaten is ChaCha20-Poly1305 vaak de betere keuze. Niet vanwege „meer veiligheid“, maar vanwege snelheid, CPU-belasting, warmte en batterij.

Als ik het onderwerp tot een eenvoudige regel zou samenvatten, dan deze:

  • AES-GCM past goed als er AES-hardware aanwezig is.
  • ChaCha20-Poly1305 past vaak beter als AES alleen in software draait.
  • Beide zijn alleen veilig als ik nonces nooit dubbel gebruik.
  • Ik verwerk data pas na een succesvolle controle.
  • Voor mobiele apps tellen uiteindelijk apparaatklasse, lokale opslag, overdracht, Keystore/Keychain en TLS 1.3 meer dan geloofsvragen over het algoritme.

Een punt springt eruit: draait AES zonder hardware, dan kan de inspanning volgens het artikel tot wel 10 keer meer CPU-cycli per byte kosten. Op instap-Android-apparaten kan ChaCha20 ongeveer 3× sneller zijn. Dat merk je bij foto-uploads, synchronisatie, berichten en cache.

Waar ik op let:

  • iOS / vlaggenschip-Android: meestal AES-GCM
  • Middenklasse / oudere Android-apparaten: vaak ChaCha20-Poly1305
  • Lokale data: keuze op basis van apparaatklasse
  • API-gebruikersdata en berichten: netjes sleutel- en nonce-beheer
  • Voor alle gevallen: Android Keystore, Apple Keychain, 96-bit nonce per operatie, TLS 1.3, regelmatige sleutelwissel

Kort gezegd: Als ik een app bouw voor veel Android-klassen, wil ik gelijke prestaties. Als ik mik op nieuwe apparaten met AES-hardware, is AES-GCM vaak mijn eerste keuze.

The Modern Cipher Showdown: A Deep Dive into ChaCha20-Poly1305 vs. AES-GCM

Quick Comparison

Punt AES-GCM ChaCha20-Poly1305
Veiligheid bij correct gebruik Hoog Hoog
Hardware-nabijheid Sterk Laag
Op nieuwe iPhones / vlaggenschepen Vaak vooraan Goed
Op oude / goedkope Android-apparaten Vaak zwakker Vaak vooraan
CPU-belasting zonder AES-hardware Vrij hoog Vrij lager
Warmte / batterij op zwakke apparaten Kan sterker stijgen Vaak gelijkmatiger
Hoofdrisico Nonce dubbel, data voor controle Nonce dubbel, data voor controle
Typische mobiele toepassingen lokale data, backend met AES-focus Berichten, uploads, gemengde Android-park

Ik vat het artikel zo samen: Niet „Welke algoritme is beter?“ is de kernvraag, maar „Op welk apparaat draait mijn app, en waar liggen de data?“

AES-GCM vs. ChaCha20-Poly1305: Hoe de twee methoden verschillen in mobiele apps

Uiteindelijk gaat het om drie dingen: opbouw, gebruik van de hardware en fouten bij de implementatie. Voor mobiele apps tellen in het dagelijks gebruik vooral de beschikbare hardware, de uitvoeringstijd in software en de vraag wat er gebeurt als er iets misgaat bij de implementatie.

AES-GCM op Android en iOS

AES-GCM is een AEAD-methode op AES-basis. Op apparaten met hardwareversnelling werkt het erg snel. Ontbreekt deze ondersteuning, dan daalt de prestatie vaak aanzienlijk.

ChaCha20-Poly1305 op Android en iOS

ChaCha20-Poly1305 is een AEAD-methode op ChaCha20-basis. Het is ontworpen voor uitvoering in software en is daarom vaak in het voordeel op oudere of goedkopere Android-apparaten.

Beveiligingseisen die beide methoden delen

Beide methoden hebben hetzelfde kritieke punt: Een nonce mag nooit met dezelfde sleutel opnieuw worden gebruikt. Gebeurt dat toch, dan wordt de beveiliging van beide methoden doorbroken. Bij AES-GCM kunnen dan zelfs vervalsingen mogelijk worden.

Even belangrijk: Ontsleutelde data mogen pas na succesvolle authenticatie worden verwerkt. Anders gezegd: eerst controleren, dan aanraken. Alles anders is alsof je de voordeur pas op slot doet nadat je bent binnengekomen.

Kenmerk AES-GCM ChaCha20-Poly1305
Type cipher AEAD-methode op AES-basis AEAD-methode op ChaCha20-basis
Authenticatie GCM Poly1305
Praktisch voordeel Erg snel met hardwareversnelling Voordelig op apparaten zonder AES-versnelling
Typische implementatierisico’s Nonce-hergebruik, verwerking voor authenticatie Nonce-hergebruik, verwerking voor authenticatie

Hoe dit uitpakt voor snelheid en batterij zie je in de volgende sectie.

Snelheid en batterij: waarom de apparaatklasse de doorslag geeft

AES-GCM vs. ChaCha20-Poly1305: Mobile Encryption Guide by Device Class

AES-GCM vs. ChaCha20-Poly1305: Mobile Encryption Guide by Device Class

Op mobiele apparaten maakt vooral de apparaatklasse het verschil. AES-GCM profiteert sterk van hardwareversnelling, terwijl ChaCha20-Poly1305 ook snel blijft als alles in software draait. Juist daar zie je het verschil tussen high-end, middenklasse en oudere apparaten.

Voor apps met foto’s, berichten en veilingupdates telt vooral één ding: Hoe goed lopen sync en encryptie op oudere smartphones? Want daar merk je vertragingen, hoge CPU-belasting en lege accu’s het snelst.

Moderne iPhones en Android-flagships

Op actuele iPhones en high-end Android-apparaten is AES-GCM meestal sneller. De reden is simpel: de hardware voert AES-operaties direct uit en haalt daarmee zeer hoge doorvoersnelheden. Tegelijk blijven CPU-belasting, warmteontwikkeling en batterijverbruik laag. Dat maakt de prestaties ook over verschillende Android-apparaten beter voorspelbaar.

Middenklasse-, oudere en instap-Android-apparaten

Veel oudere of goedkope Android-apparaten zonder ARMv8-cryptografie-extensies moeten AES volledig in software uitvoeren. Dat kost merkbaar meer rekentijd: software-AES kan tot 10 keer meer CPU-cycli per byte verbruiken dan hardwareversnelde AES. Het apparaat wordt dan sneller warm en de accu gaat merkbaar sneller leeg.

ChaCha20-Poly1305 is ontworpen voor uitvoering in software en heeft hier vaak duidelijk de overhand. Dat merk je direct bij syncs, foto-uploads en versleutelde lokale data.

De tabel laat zien hoe sterk de apparaatklasse invloed kan hebben op snelheid en batterij.

Platform Apparaatklasse AES-versnelling Prestaties CPU-belasting Warmte Accuverbruik
iOS Modern iPhone (A14+) Volledig (hardware) AES-GCM sneller* Zeer laag Minimaal Vernieuwbaar
Android Flagship Volledig (hardware) AES-GCM sneller* Laag Minimaal Laag
Android Middenklasse (bijv. SD 6-serie) Gedeeltelijk / variabel ChaCha20 vaak sneller* Gemiddeld Gemiddeld Gemiddeld
Android Instap / oudere apparaten Geen (software) ChaCha20 ~3× sneller* Hoog Snel opwarmen Hoog (bij AES)

Alle gegevens zijn benchmark-afhankelijk en variëren per SoC en bibliotheekimplementatie.

Benchmarks correct uitvoeren

Een enkele snelheidswaarde van een actueel testapparaat zegt in de praktijk weinig. Het is zinvoller om gericht op oudere apparaten te testen die nog actief gebruikt worden.

Meet daarbij over 5–10 minuten onder belasting:

  • Doorvoer
  • Latentie
  • Energie per byte

Belangrijk is ook: gebruik op beide platforms dezelfde bibliotheek. Anders vergelijk je uiteindelijk niet de algoritmen, maar alleen verschillen in implementatie.

Hoe sterk dit merkbaar is bij lokale data, afbeeldingen en API-aanroepen, zie je in het volgende hoofdstuk.

Offline-opslag en dataoverdracht in marktplaats-apps

Voor Gunfinder is vooral één ding belangrijk: Worden data lokaal opgeslagen of overgedragen? Daar hangt precies vanaf waar het risico ligt en welke beschermingsmaatregel het meest oplevert.

Offline-opslag: databases, cache, concepten en account- en profielgegevens

Lokaal opgeslagen gegevens worden vaak onderschat. Toch ligt daar precies een deel van het probleem. Opgeslagen zoekresultaten, winkelwageninhoud evenals account- en profielgegevens bevinden zich direct op het apparaat. Is er geen beveiligde backup of is het apparaat gecompromitteerd, dan kunnen deze gegevens toegankelijk worden.

Bij lokale gegevens telt vooral het doelapparaat. Heeft het apparaat AES-versnelling, dan is AES-GCM een sterke keuze. Ontbreekt deze ondersteuning, dan werkt ChaCha20-Poly1305 vaak efficiënter. De sleutel moet veilig worden opgeslagen in de Android Keystore of in de Apple Keychain respectievelijk in de Secure Enclave. En één punt is niet onderhandelbaar: Elk bestand heeft een eigen 96-bit nonce nodig. Wordt een nonce hergebruikt, dan wordt de veiligheid en integriteit verbroken.

Hetzelfde basisprincipe geldt ook bij overdrachten. Daar ligt de focus echter op een andere plek: op payload en logging.

Gegevensoverdracht: API-aanroepen, beelduploads, berichten en veilingupdates

TLS beschermt het transportpad. Dat betekent echter niet automatisch dat ook de payload zelf beschermd is. Als privéberichten tussen kopers en verkopers of biedgegevens bij veilingen in serverlogs terechtkomen, zijn ze zonder extra encryptie op app-niveau in platte tekst leesbaar. Juist hier komen AES-GCM en ChaCha20-Poly1305 in beeld. Ze vullen de transportencryptie aan als tweede beschermlaag.

De crux is dus niet primair het algoritme. Beslissend is of gegevens op het apparaat liggen of via het netwerk gaan.

Wat meer telt dan de keuze van de cipher

Bij lokale gegevens is de apparaatklasse het belangrijkste punt. Bij API-payloads, uploads en berichten draait het vooral om schoon sleutel- en noncebeheer.

Voor Gunfinder telt uiteindelijk precies dat: schoon sleutel- en noncebeheer. Welke variant in de praktijk beter past, toont het volgende hoofdstuk.

Besluitvorming en conclusie voor Gunfinder-apps

Voor Gunfinder is vooral één ding belangrijk: Welk apparaat gebruikt de app en welke gegevens worden verwerkt? Daaruit volgt in de praktijk de keuze van de methode. De onderstaande tabel brengt het op het punt en ordent typische Gunfinder-workflows.

App-vereiste Apparaatomgeving Prioriteit Aangeraden algoritme
Versleutelde concepten iOS / vlaggenschip-Android Hardwarebeveiliging AES-GCM
Gecachte listings Gemengde Android-apparaten Prestaties consistentie ChaCha20-Poly1305
Account- en transactiegegevens Alle platformen Gegevensintegriteit AES-GCM
Foto-uploads Oudere of instap-Android-apparaten Accu-efficiëntie ChaCha20-Poly1305
Marktplaatsberichten Gemengde Android-apparaten Lage latentie ChaCha20-Poly1305
Veilingupdates Backend-verkeer Bestaande AES-standaardisatie AES-GCM

Voor alle gevallen geldt hetzelfde basisprincipe: veilige sleutelopslag via Android Keystore of Apple Keychain, unieke nonces per operatie, TLS 1.3 voor elke overdracht en een regelmatige sleutelrotatie. Zonder deze punten helpt zelfs het beste algoritme maar half.

Wanneer AES-GCM de betere keuze is

AES-GCM past goed bij moderne iPhones en high-end Android-apparaten als er AES-hardware aanwezig is en de backend er toch al op is gebouwd. Dan speelt het proces zijn sterke punten uit waar de apparaten het direct goed ondersteunen.

Wanneer ChaCha20-Poly1305 de betere keuze is

Zodra ook oudere of goedkopere Android-apparaten meespelen, is ChaCha20-Poly1305 vaak de betrouwbaardere keuze. De reden is simpel: de prestaties blijven op zulke apparaten meestal constanter dan bij software-AES.

De belangrijkste inzichten

Beide algoritmes zijn veilig als je ze correct gebruikt. Kort gezegd: AES-GCM past goed bij hardware-intensieve omgevingen, ChaCha20-Poly1305 meer bij gemengde Android-vloten.

FAQs

Hoe herken ik of mijn doelapparaat AES-hardware heeft?

Of jouw doelapparaat AES-hardwareversnelling heeft, hangt af van de ingebouwde CPU. Veel nieuwere processors ondersteunen AES-NI. Dat maakt de encryptie aanzienlijk efficiënter.

Bij Android- en iOS-apparaten controleer je dit het beste in de technische specificaties van de processor. Bij ARM-gebaseerde smartphones en tablets is de hardwareversnelling voor cryptografische operaties vaak al ingebouwd. Het besturingssysteem gebruikt deze meestal automatisch.

Wat gebeurt er bij hergebruik van een nonce?

Als je een nonce meer dan één keer gebruikt, ondermijn je de veiligheid van de encryptie.

Dan kunnen aanvallers patronen in de versleutelde data zien of zelfs conclusies trekken over de gebruikte sleutel.

Dit raakt de vertrouwelijkheid van je data hard. Daarom geldt: de nonce moet bij elke encryptieoperatie nieuw en uniek zijn.

Is TLS 1.3 voldoende zonder extra app-encryptie?

Nee. TLS 1.3 beschermt data tijdens de overdracht. Lokaal opgeslagen app-data op het apparaat valt er niet onder.

Als je data doorlopend wilt beschermen, heb je daarom ook lokale encryptie nodig. Bij gevoelige transacties kan ook AES-256 nuttig zijn.

Pas de combinatie van veilige overdracht en lokale encryptie helpt ook als er technische problemen zijn of iemand ongeautoriseerd toegang krijgt tot het eindapparaat.

Gerelateerde blogposts

Passende aanbiedingen

Gesponsorde aanbiedingen

Dit vind je misschien ook interessant

Meer artikelen over dit onderwerp

Alle artikelen bekijken
Alle artikelen bekijken