Verschuiving naar links of rechts

Hashfuncties zijn essentieel binnen blockchainnetwerken voor het omzetten van gegevens in unieke numerieke waarden, waardoor snelle en efficiënte zoekopdrachten mogelijk zijn. Een belangrijke techniek die vaak wordt gebruikt in hashfuncties is ‘bit-rotatie’. Bit-rotaties zijn relatief eenvoudige bewerkingen die de bits in een binair getal naar links of naar rechts verschuiven. Een linkse rotatie schuift de bits naar links, waarna de meest rechtse bit de meest linkse bit wordt. Een rechtse rotatie doe precies het tegenovergestelde, waarbij de meest linkse bit de meest rechtse bit wordt. Rotaties worden vaak gebruikt om variatie in hashwaarden te creëren en dragen bij aan sterkere hashfuncties.

 

Rechts, links, bit-rotatie

 

Hashcollisies

Een goede hashfunctie moet een gelijkmatige verdeling van waarden produceren, om zogenaamde ‘hashcollisies’ (ook wel botsingen genoemd) te minimaliseren. Hashcollisies treden op wanneer twee verschillende invoerwaarden dezelfde hashwaarde opleveren, wat problemen kan veroorzaken in het hashproces. Door bit-rotaties in te voeren kunnen hashfuncties de invoerbits op verschillende manieren manipuleren, waardoor er een meer willekeurige mix ontstaat. Dit helpt om het risico van hashbotsingen te verminderen en de algehele prestaties van de hashfunctie te verbeteren.

Voorbeeld:

Stel dat we een eenvoudige hashfunctie hebben die de invoerwaarde als een binair getal neemt. We willen de hashwaarde variëren door bit-rotaties te gebruiken. Laten we eens kijken naar een paar voorbeelden van eenvoudige hashfuncties die linkse rotaties gebruiken:

  1. Neem een invoerwaarde als een binair getal.
  2. Voer vervolgens een linkse rotatie uit op het binaire getal.
  3. Voer nog een linkse rotatie uit.
  4. Gebruik het resultaat als de uiteindelijke hashwaarde

Door twee linkse rotaties uit te voeren, veranderen we de volgorde van de bits in de invoerwaarde. Dit helpt bij het creëren van meer variatie in de hashwaarden, waardoor het risico van hashcollisies afneemt.

 

Voorbeeld van een linkse rotatie van 4 bits:

Voor de rotatie: 1101

Na de rotatie:    1011

 

Voorbeeld van een linkse rotatie van 6 bits:

Voor: 101010

Na:    010101

 

Voorbeeld van een linkse rotatie van 8 bits:

Voor: 10011001

Na:    00110011

 

Voorbeeld van een rechtse rotatie van 4 bits:

Voor: 1101

Na:    1110

 

Voorbeeld van een rechtse rotatie van 6 bits:

Voor: 101010

Na:    010101

 

Voorbeeld van een rechtse rotatie van 8 bits:

Voor: 10011001

Na:    11001100

 

 

Verschillende lengtes

Bij een linkse bit-rotatie schuift iedere bit één positie naar links, waarbij de meest linkse bit naar de meest rechtse positie wordt verplaatst. Bij een rechtse bit-rotatie verschuift iedere bit één positie naar rechts, waarbij de meest rechtse bit naar de meest linkse positie verplaatst wordt. Deze rotaties kunnen worden toegepast op verschillende lengtes van binaire getallen om zo verschillende variaties te creëren.

 

Wat is het verschil tussen bit-rotatie en bit-verschuiving?

Bit-rotatie en bit-verschuiving zijn allebei bewerkingen die worden uitgevoerd op binair gerepresenteerde gegevens, maar de wijze waarop de bits worden verplaatst gaat anders. Bit-rotatie word ook vaak ‘cirkelverschuiving’ genoemd, omdat de verschuiving van de bits ‘cirkelvormig’ verloopt. De bits die aan het einde van het getal worden verschoven, komen aan de andere kant van het getal weer tevoorschijn. De bits worden dus verplaatst over de grenzen van het getal heen. Bit-rotatie kan linksom of rechtsom worden uitgevoerd. Bij een linkse rotatie worden de bits naar links verschoven, terwijl het meeste linkse bit aan de rechterkant wordt geplaatst. Een rechtse rotatie verschuift de bits naar rechts, waarbij het meest rechtse bit naar links wordt geplaatst.

 

Bij een bit-verschuiving worden de bits verplaatst binnen het getal zelf

Een bit-verschuiving is ook een bit-verplaatsing, maar hier worden de bits van een binair getal verschoven binnen het getal zelf. De bits gaan dus niet (zoals bij bit-rotatie) over de grenzen van het getal heen. Bij een linkse bit-verschuiving worden de bits naar links verschoven, waardoor het meest linkse bit wordt verwijderd en er aan de rechterkant een nul wordt toegevoegd Bij een rechtse bit-verschuiving worden de bits naar rechts verschoven, waarbij het meest rechtse bit wordt verwijderd en er aan de linkerkant een nul (of het meest linkse bit van het oorspronkelijke getal) wordt toegevoegd.

 

Optimaliseren van hashing-algoritmen

Met andere woorden: bij een bit-rotatie worden de bits over de grenzen van het getal heen verplaatst, waarbij de bits die aan de ene kant verdwijnen, aan de andere kant weer verschijnen. Bij een bit-verschuiving worden de bits verplaatst binnen het getal zelf, waarbij nieuwe bits worden toegevoegd aan de ene kant en oude bits aan de andere kant worden verwijderd. Bit-rotaties en bit-verschuivingen hebben verschillende toepassingen binnen digitale systemen, zoals het manipuleren van gegevens en het optimaliseren van bepaalde hashing-algoritmen.

 

 

Wat is het doel van bit-rotaties en bit-verschuivingen?

Het doel van een bit-rotatie is om gegevens op een efficiënte en cyclische manier te manipuleren. De rotaties worden gebruikt om bijvoorbeeld waarden te veranderen, zonder het bereik van de waarde te overschrijden. Bij cryptografische operaties wordt bit-rotatie vaak gebruikt bij het versleutelen van gegevens, waarbij het belangrijk is om bits op een bepaalde manier te verplaatsten om de beveiliging te verbeteren. Bit-verschuivingen worden vaak gebruikt om snel te vermenigvuldigen of te delen met machten van 2, en om bepaalde bits te isoleren of te verplaatsen. Bijvoorbeeld: een linkse bit-verschuiving met één positie is equivalent aan vermenigvuldigen met 2, terwijl een rechtse bit-verschuiving met één positie gelijk is aan delen door 2 (gehele deling).

 

Vlaggen wijzigen

Een bit-verschuiving kan ook worden gebruikt om bepaalde vlaggen of instellingen in een binaire waarde te wijzigen of te controleren, aangezien het verschuiven van bits snel en efficiënt is in computerprocessoren. Vlaggen zijn individuele bits in een speciaal register (statusregister). Deze vlaggen worden gebruikt om bepaalde condities of statussen van de uitgevoerde instructies en bewerkingen bij te houden . Ze dienen als indicatoren om de staat van de processor en de uitgevoerde bewerkingen te monitoren en te beheren.

 

Conclusie

Rotaties zijn eenvoudige, maar krachtige bewerkingen die in hashfuncties worden gebruikt om meer variatie en willekeur te creëren in de resulterende hashwaarden. Door de bits in een binair getal te verschuiven, kunnen hashfuncties efficiënter en betrouwbaarder werken. Bovendien helpen deze bewerkingen bij het minimaliseren van hashbotsingen. Rotaties spelen dan ook een essentiële rol bij gegevensbeveiliging op de blockchain.

 

Op de hoogte blijven van de ontwikkelingen op het gebied van blockchaintechnologie? Meld je dan nu aan voor de blogpost!

 

Meld je aan voor de blogpost!
Ik ga ermee akkoord dat mijn naam en e-mailadres worden gedeeld met Mailchimp.
Met de blogpost van Uitleg Blockchain blijf je automatisch op de hoogte van de nieuwste ontwikkelingen omtrent de blockchain technologie.
We hebben een hekel aan spam. Uw e-mailadres zal niet worden verkocht of gedeeld met anderen (afgezien van het marketing automation platform dat wij gebruiken voor onze e-maillijst).