NL1028971C2 - Systemen en werkwijzen voor gegevenscompressie en decompressie. - Google Patents
Systemen en werkwijzen voor gegevenscompressie en decompressie. Download PDFInfo
- Publication number
- NL1028971C2 NL1028971C2 NL1028971A NL1028971A NL1028971C2 NL 1028971 C2 NL1028971 C2 NL 1028971C2 NL 1028971 A NL1028971 A NL 1028971A NL 1028971 A NL1028971 A NL 1028971A NL 1028971 C2 NL1028971 C2 NL 1028971C2
- Authority
- NL
- Netherlands
- Prior art keywords
- data
- checksum
- block
- data block
- file
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 56
- 238000013144 data compression Methods 0.000 title description 5
- 230000006837 decompression Effects 0.000 title description 4
- 238000004422 calculation algorithm Methods 0.000 claims description 87
- 238000013479 data entry Methods 0.000 claims description 41
- 238000013500 data storage Methods 0.000 claims description 13
- 230000006870 function Effects 0.000 claims description 7
- 238000011084 recovery Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 claims description 6
- 125000004122 cyclic group Chemical group 0.000 claims description 6
- 239000002131 composite material Substances 0.000 claims description 3
- 230000006835 compression Effects 0.000 description 65
- 238000007906 compression Methods 0.000 description 64
- 230000002441 reversible effect Effects 0.000 description 45
- 238000012360 testing method Methods 0.000 description 23
- 230000007717 exclusion Effects 0.000 description 21
- 206010009944 Colon cancer Diseases 0.000 description 14
- 238000010200 validation analysis Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- 241001421808 Theorema Species 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 235000015076 Shorea robusta Nutrition 0.000 description 1
- 244000166071 Shorea robusta Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- ANJTVLIZGCUXLD-DTWKUNHWSA-N cytisine Chemical compound C1NC[C@H]2CN3C(=O)C=CC=C3[C@@H]1C2 ANJTVLIZGCUXLD-DTWKUNHWSA-N 0.000 description 1
- 229940027564 cytisine Drugs 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000013011 mating Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/20—Manipulating the length of blocks of bits, e.g. padding or block truncation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/30—Compression, e.g. Merkle-Damgard construction
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bioethics (AREA)
- Power Engineering (AREA)
- Detection And Correction Of Errors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Description
SYSTEMEN EN WERKWIJZEN VOOR GEGEVENSCOMPRESSIE EN
DECOMPRESSIE
5
Deze aanvraag verwijst naar de provisionele Amerikaanse octrooi-aanvrage nr. 60/568.304, ingediend op 4 mei 2004, en de provisionele Amerikaanse octrooiaanvrage nr. 60/603.604, ingediend op 23 augustus 2004. De gehele inhoud 10 van de bovengenoemde aanvragen zijn hierin door verwijzing opgenomen.
Achtergrond
De stand van de techniek beschrijft verscheidene 15 takken van compressie-algoritmes. Statistische werkwijzen voor compressie vertrouwden op het reduceren van de grootte van frequente patronen in de gegevens. Compressie werd gebaseerd op redundantie van de gegevens en bracht vaak het werk van Shannon en anderen met zich mee. Er waren praktische 20 beperkingen aan het comprimeren van gegevens met redundantie.
Compressie volgens de stand van de techniek is statistisch. Compressie is gebaseerd op redundantie-modellering. De onderhavige uitvinding maakt het mogelijk dat controlesommen gebruikt worden om te bepalen ofeen getal in 25 een reeks van getallen overeenkomt met een gegeven controlesom en maakt de bestanden kleiner. Op dit moment worden bestanden beperkt door de hoeveelheid, redundantie die verwijderd kan worden. Een controlesomcompressor zou werken op hoe uniek een getal is door de uniciteit van de 30 controlesom - dat wil zeggen er is slechts één controlesomgetal dat met een gegeven getal geassocieerd kan worden.
1028971 2
Boodschapsamenvattingen (engels: message digests) werden gecreëerd om te verifiëren of gegevens de originele gegevens zijn en of bij de transmissie geen veranderingen zijn opgetreden. Zij kunnen gebruikt worden om te verzekeren 5 dat computerbestanden niet gemodificeerd zijn. Er zijn twee hoofdboodschap samenvattingen en handtekening-hashes de hedentendage gebruikt worden, Secure Hash Algorithm ("SHA") en Message Digest Algorithm No. 5 ("MD5"). MD5 is een van de eerste boodschapsamenvatting-algoritmes (message digest 10 algorithms)1 die zijn gecreëerd en ontwikkeld door Rivest-Shamir-Adleman ("RSA"). Zoals in het vakgebied bekend is, heeft MD5 een probleem met collisies en is MD5 niet gegarandeerd zo uniek als SHA.
SHA werd ontwikkeld door de Amerikaanse overheid 15 (N.S.A.) om een vingerafdruk van computergegevens te maken.
De overheid ontwikkelde SHA als middel voor het verifiëren van digitale informatie. SHA is een zoektocht voor het genereren van een unieke sleutel of "hash" voor een gegeven gegevensverzameling. Eén van de hoofddoelen van de overheid 20 is het volgen van gegevens en verzending van gegevens. Er zijn talrijke open bron implementaties van het SHA algoritme in C en C++ code.
/
Dit is een aantekening van de Amerikaanse overheid over SHA veiligheid. Het dient echter niet beschouwd te 25 worden als zijnde een bewering van de Amerikaanse overheid.
Dit document specificeert een veilig hash algoritme (Secure Hash Algorithm), SHA-1, voor het berekenen van een gecondenseerde representatie van een boodschap of een 30 gegevensbestand. Wanneer een boodschap van een willekeurige 1028971
Andere boodschap samenvattingalgoritmes omvatten MD2 (een boodschapsamenvatting hash functie die geoptimaliseerd is voor 8-bitsmachines), en MD4 (een boodschapsamenvatting hash functie die geoptimaliseerd is voor 32-bitsmachines).
3 lengte <2Λ64 bits ingevoerd wordt, produceert de SHA-1 een 160 bits uitvoer welke een boodschapsamenvatting genoemd wordt. De boodschapsamenvatting kan dan bijvoorbeeld ingevoerd worden in een handtekeningalgoritme die de 5 handtekening voor de boodschap genereert of verifieert. Het tekenen van de boodschapsamenvatting in plaats van de boodschap verbetert vaak de efficiency van het proces omdat de boodschapsamenvatting gewoonlijk veel kleiner in grootte is dan de boodschap zelf. Hetzelfde hash-algoritme moet 10 gebruikt worden door de verificateur van een digitale handtekening zoals gebruikt werd door de schepper van de digitale handtekening. Een willekeurige verandering in de onderweg zijnde boodschap zal, met zeer hoge waarschijnlijkheid, resulteren in een verschillende 15 boodschapsamenvatting, en de handtekening zal niet overeenkomen.
De SHA-1 wordt veilig genoemd omdat het na berekening ondoenlijk is een boodschap te vinden die correspondeert met de gegeven boodschapsamenvatting of om twee verschillende 20 boodschappen te vinden die dezelfde boodschapsamenvatting produceren. Elke willekeurige verandering in een onderweg zijnde boodschap zal met een zeer hoge waarschijnlijkheid resulteren in een verschillende boodschapsamenvatting en de handtekening zal niet overeenkomen.
25
Zowel SHA als MD5 zijn in het vakgebied bekend en een verdere beschrijving wordt hierin niet verschaft.
Samenvatting 30 De zoektocht naar uniciteit van gegevens door boodschapsamenvattingen kan tevens gebruikt worden om compressie te verbeteren. Hoe uniek een getal is kan gebruikt worden om dit getal te comprimeren. Een controlesom kan uniek 1 02 8971 4 of relatief uniek met collisies. Een unieke controlesom zou een uniek uitvoergetal voor elke invoer genereren. Een relatief unieke controlesom zou getallen genereren die hetzelfde zijn voor verschillende invoeren of zou collisies 5 tussen invoeren minimaliseren.
In één uitvoeringsvorm is het onderhavige systeem en de onderhavige werkwijze ontworpen om de aantallen gegevens op een computer via compressie te reduceren. In een andere uitvoeringsvorm is het onderhavige systeem en de onderhavige 10 werkwijze ontworpen om hash, boodschapsamenvattingen, controlesomtechnologie en hun toepassing op informatie en gegevensopslag te verbeteren. In een andere uitvoeringsvorm is het onderhavige systeem en de onderhavige werkwijze ontworpen om de uniciteit te verbeteren door gebruik te maken 15 van onderlinge uitsluiting in hash- en controlesomtesten. In een andere uitvoeringsvorm is het onderhavige systeem en de onderhavige werkwijze ontworpen om controlesomtesten te verbeteren, hetgeen een betere computerveiligheid verschaft. In een andere uitvoeringsvorm is het onderhavige systeem en 20 de onderhavige werkwijze ontworpen om een XML compressie formaat te creëren en om binaire compressieformaten om te zetten naar XML of een andere mark-up taal. In een andere uitvoeringsvorm, zijn het onderhavige systeem en de onderhavige werkwijze ontworpen om variabele-lengte-hashes en 25 boodschapsamenvattingen te gebruiken. In een andere uitvoeringsvorm zijn het onderhavige systeem en de onderhavige werkwijze ontworpen om een op XML-gebaseerde controlesom te creëren die gebruikt kan worden om de integriteit van bestanden te verifiëren.
30 Naast de verscheidene hierin beschreven uitvoeringsvormen kunnen het onderhavige systeem en de onderhavige werkwijze tevens aangepast worden voor encryptie-en verificatiegebruik, een verbeterde validatie en 1 02 8971 5 controlesommen teneinde te verzekeren dat een bestand onveranderd is of onaangepast is teneinde de bandbreedtes van gegevensoverdrachten (bijvoorbeeld ftp en stromende media) te vergroten en om andere gegevenscompressiewerkwijzen 5 (bijvoorbeeld mpeg) te vervangen.
Verdere voordelen van het onderhavige systeem en de onderhavige werkwijze omvatten verhoogde compressiemogelijkheid met open formaten, afgenomen bestandgroottes, gebruik makend van documenttype definities 10 (Document Type Definitions-DTD) teneinde de gecomprimeerde bestanden te valideren, gebruik makend van XML of andere mark-up talen teneinde gecomprimeerde bestanden te beschrijven, en gebruik makend van controletesten. Zulke testen kunnen gebruikt worden om getallen of gegevens te 15 comprimeren en om de integriteit van een bestand te valideren. Controlesomtesten kunnen tevens gebruikt worden om de integriteit van een bestand te verifiëren via een combinatie van digitale handtekeningen, modulussen of controlesommen. In combinatie kunnen zij tevens gebruikt 20 worden om bestanden te comprimeren indien de resulterende handtekeningcontrolesom kleiner is dan de grootte van een blok byte en weinig of geen collisies heeft. Zoals bekend is in het vakgebied betekent het verifiëren van de bestandsintegriteit het verzekeren dat de inhoud niet 25 veranderd is. In één uitvoeringsvorm zorgen het onderhavige systeem en de onderhavige werkwijze tevens voor verscheidene manieren om de bestandsintegriteit te verifiëren. Controlesommen kunnen getallen comprimeren en door gebruik te maken van meervoudige controlesommen kan bestandsveiligheid 30 en -integriteit geïmplementeerd worden met sterkere verzamelingen van controles.
Controlesomcompressie kan gebruikt worden om de grootte van gegevens te reduceren en kan vercommercialiseerd 10/8971 6 worden als een alternatief voor zip- en andere archief-compressieformaten. Deze zou verbeterde stromende media- en audio- en videobestanden mogelijk maken door het vergroten van de verhouding tussen van de kwaliteit en bandbreedte of 5 grootte. Verder zijn er veel open bron (open source) boodschapsamenvattingsprogramma's die een verbeterde toepassing kennen. Controlesomcompressie kan tevens opslagkosten reduceren en de productiviteit en efficiency verhogen.
10 Volgens een aspect is de onderhavige uitvinding gericht op een systeem voor gegevensopslag omvattende een of meer processoren die werkzaam zijn om een eerste controlesomwaarde van een gegevensblok en een tweede controlesomwaarde voor het gegevensblok te genereren, waarin 15 de genoemde eerste controlesomwaarde gegenereerd wordt door het toepassen van een eerste controlesomalgoritme op het genoemde gegevensblok en de genoemde tweede controlesomwaarde gegenereerd wordt door het toepassen van een tweede controlesomalgoritme, verschillend van het eerste 20 controlesomalgoritme, op het genoemde gegevensblok; een of meer processoren die werkzaam zijn om hun gegevensinvoer (data entry) te creëren omvattende gegevens te identificeren: de eerste en tweede controlesomwaarden, de eerste en tweede controlesomalgoritmes en tenminste één van de 25 geïdentificeerde attributen van het gegevensblok; en een of meer processoren die werkzaamzijn om de genoemde gegevensinvoer in een met een computer uitleesbaar medium op te slaan.
In verscheidene uitvoeringsvormen, kunnen de een of 30 meer processoren die werkzaam zijn om te genereren, de een of meer processoren die werkzaam zijn om te creëren en de een of meer processoren die werkzaam zijn om op te slaan al dan niet verschillend zijn. Eén processor kan bijvoorbeeld werkzaam 1028971 7 zijn om te genereren, te creëren en op te slaan. Als alternatief kan een aantal processoren werkzaam zijn om te genereren, te creëren en/of te slaan.
Volgens een aspect is de onderhavige uitvinding 5 gericht op een systeem voor gegevensopslag omvattende een of meer processoren die werkzaam zijn om een of meer attributen te identificeren van een eerste gegevensblok en een tweede gegevensblok, het tweede gegevensblok omvattende en verschillend van het genoemde eerste gegevensblok; een of 10 meer processoren die werkzaam zijn om een eerste controlesomwaarde voor het eerste gegevensblok te genereren, waarin de eerste controlesomwaarde gegenereerd wordt door het toepassen van een eerste controlesomalgoritme op het genoemde eerste gegevensblok; een of meer processoren die werkzaam 15 zijn om een tweede controlesomwaarde voor het tweede gegevensblok te genereren, waarin de tweede controlesomwaarde gegenereerd wordt door het toepassen van een tweede controlesomalgoritme op het genoemde tweede gegevensblok; een of meer processoren die werkzaam zijn om een gegevensinvoer 20 te creëren omvattende gegevens die identificeren: de eerste en tweede controlesomwaarden, en tenminste één van de geïdentificeerde attributen van de eerste en tweede gegevensblokken; en een of meer processoren die werkzaam zijn om de gegevensinvoer op te slaan op een met een computer 25 uitleesbaar medium.
In verscheidene uitvoeringsvormen kunnen de een of meer processoren die werkzaam zijn om te identificeren, de een of meer processoren die werkzaam zijn om te genereren van een eerste controlesomwaarde, de een of meer processoren die 30 werkzaam zijn om een tweede controlesomwaarde te genereren en de een of meer processoren die werkzaam zijn om te creëren en de een of meer processoren die werkzaam zijn om op te slaan al dan niet verschillend zijn. Eén processor kan bijvoorbeeld 1028971 8 werkzaam zijn om te identificeren, een eerste controlesomwaarde te genereren, een tweede controlesomwaarde te genereren, te creëren en op te slaan. Als alternatief kan een aantal processoren werkzaam zijn om te identificeren, om 5 een eerste controlesomwaarde te genereren om een tweede controlesomwaarde te genereren, om te creëren en/of op te slaan.
Volgens een aspect van de onderhavige uitvinding omvat het systeem verder een of meer processoren die verder 10 werkzaam zijn om een attribuut te bepalen voor het gegevensblok, waarbij het attribuut een is van een naam, grootte, lengte, hashtype, controlesomtype, samenvatting type, opvulling (padding), vloer, plafond, modulus, collisie, directory, root, drive, pad, datum, tijd, gemodificeerde 15 datum, toestemming, eigenaar, of bytevolgorde is; een of meer processoren die werkzaam zijn om een gegevensinvoer te creëren omvattende het attribuut; en een of meer processoren die werkzaam zijn om de genoemde gegevensinvoer op te slaan op een met een computer uitleesbaar medium.
20 In verscheidene uitvoeringsvormen, kunnen de een of meer processoren die werkzaam zijn om te bepalen, de een of meer processoren die werkzaam zijn om te creëren en de een of meer processoren die werkzaam zijn om op te slaan al dan niet verschillende zijn. Eén processor kan bijvoorbeeld werkzaam 25 zijn om te bepalen, te creëren en op te slaan. Als alternatief kan een aantal processoren werkzaam zijn om te bepalen, te creëren en/of om op te slaan.
Voor verscheidene aspecten van de onderhavige uitvinding is het tweede controlesomalgoritme gelijk aan het 30 eerste controlesomalgoritme; zijn de attributen een van een naam, grootte, lengte, hashtype, controlesomtype, samenvattingtype, opvulling, vloer, plafond, modulus, directory, root, drive, pad, datum, tijd, gemodificeerde 1028971 9 datum, toestemming, eigenaar, en bytevolgorde; is de gegevensinvoer geschreven in een mark-up taal; is de mark-up taal XML of SGML is; zijn de een of meer controlesomwaarden tenminste een van een gehashte waarde, een samenvatting en 5 een controlesomgetal is; worden de een of meer controlesomwaarden gegenereerd door gebruik te maken van tenminste een van een MD2 algoritme, een MD4 algoritme, een MD5 algoritme, een SHA algoritme, een cyclische redundante controlesomalgoritme (Cyclic Redundant Checksum algorithm), 10 een Ripe algoritme, een CRC16 controlesomalgoritme, een CRC32 controlesomalgoritme en een CRC64 controlesomalgoritme; zijn tenminste twee van de genoemde een of meer processoren parallel werkzaam.
Volgens een aspect, is de onderhavige uitvinding 15 gericht op een systeem voor gegevensherstel, omvattende een of meer processoren die werkzaam zijn om een gegevensinvoer te ontvangen die gegevens omvat die identificeren eerste en tweede controlesomwaarden, eerste en tweede controlesomalgoritmes en tenminste één attribuut van een 20 eerste gegevensblok; en gebaseerd op de genoemde gegevensinvoer; een of meer processoren die werkzaam zijn om het genoemde eerste gegevensblok te identificeren door (a) het toepassen van het genoemde eerste controlesomalgoritme op elk blok in een eerste verzameling gegevensblok teneinde een 25 eerste verzameling controlesomwaarden te genereren, waarbij elke waarde in de genoemde eerste verzameling controlesomwaarden correspondeert met een of meer gegevensblokken in de genoemde eerste verzameling van gegevensblokken;(b) het vergelijken van de genoemde eerste 30 verzameling controlesomwaarden met de genoemde eerste controlesomwaarde; (c) het identificeren van een of meer eerste kandidaat gegevensblokken als potentieel zijnde het genoemde eerste gegevensblok.
1028971 10
In verscheidene uitvoeringsvormen, kunnen de een of meer processoren die werkzaam zijn om te ontvangen en de een of meer processoren die werkzaam zijn om te identificeren als dan niet verschillend zijn. Eén processor kan bijvoorbeeld 5 werkzaam zijn om te ontvangen en te identificeren. Als alternatief kan een aantal processoren werkzaam zijn om te ontvangen en/of te identificeren.
Volgens een aspect van de onderhavige uitvinding omvat het systeem verder een of meer processoren die werkzaam 10 zijn om een of meer eerste kandidaat gegevensblökken te identificeren als corresponderende met de waarden in de genoemde eerste verzameling controlesomwaarden die gelijk zijn aan de eerste controlesomwaarde.
Volgens een aspect van de onderhavige uitvinding 15 omvat het systeem verder een of meer processoren die werkzaam zijn om een tweede verzameling controlesomwaarden te genereren door het toepassen van het tweede controlesomalgoritme op de eerste kandidaat gegevensblökken; een of meer processoren die werkzaam zijn om de tweede 20 verzameling controlesomwaarden te vergelijken met de genoemde tweede controlesomwaarde; een of meer processoren die werkzaam zijn om een tweede verzameling kandidaat gegevensblökken te identificeren als corresponderende met waarden in de tweede verzameling controlesomwaarden die 25 gelijk zijn aan de tweede controlesomwaarde; en een of meer processoren die werkzaam zijn om alle gegevensblökken te identificeren in de genoemde tweede verzameling kandidaat gegevensblökken als zijnde potentieel het eerste gegevensblok.
30 In verscheidene uitvoeringsvormen kunnen de een of meer processoren die werkzaam zijn om te genereren, de een of meer processoren die werkzaam zijn om te vergelijken, de een of meer processoren die werkzaam zijn een tweede verzameling 1028971 11 kandidaatblokken te identificeren, en de een of meer processoren die werkzaam zijn om alle gegevensblokken te identificeren, al dan niet verschillend zijn. Eén processor kan bijvoorbeeld werkzaam zijn om te genereren, te 5 vergelijken, om een tweede verzameling kandidaatblokken te identificeren en om alle gegevensblokken te identificeren.
Als alternatief kan een aantal processoren werkzaam zijn om te genereren, te vergelijken, om een tweede verzameling kandidaatblokken te identificeren en/of om alle 10 gegevensblokken te identificeren.
Volgens verscheidene aspecten van de onderhavige uitvinding wordt het eerste controlesomalgoritme toegepast op geselecteerde gegevensblokken in de eerste verzameling gegevensblokken via een van tenminste een lineaire scan of 15 een niet-lineaire scan; omvat de niet-lineaire scan een of meer van een oversla-scan, een modulus scan of een exponentiële scan; is aan elk kandidaat gegevensblok een uniek collisiegetal is toegewezen; omvat tenminste één van de een of meer processoren een geheel getal-berekeningseenheid 20 en een of meer hashregisters.
Volgens een aspect is de onderhavige uitvinding gericht op een systeem voor gegevensopslag, omvattende op de computer geïmplementeerde middelen voor het genereren van een eerste controlesomwaarde voor een eerste gegevensblok en een 25 tweede controlesomwaarde voor het eerste gegevensblok; op de computer geïmplementeerde middelen voor het creëren van gegevensinvoer omvattende de eerste en tweede controlesomwaarden; en op de computer geïmplementeerde middelen voor het opslaan van de genoemde gegevensinvoer in 30 een met een computer uitleesbaar medium.
In verscheidene uitvoeringen kunnen de middelen voor het generere, middelen voor het creëren en middelen voor het opslaan al dan niet verschillend zijn. Een middel kan 1028971 12 bijvoorbeeld genereren, creëren en opslaan. Als alternatief kan een aantal middelen genereren, creëren en/of opslaan.
Volgens een aspect is de onderhavige uitvinding gericht op een systeem voor gegevensopslag omvattende op de 5 computer geïmplementeerde middelen voor het identificeren van een of meer attributen van een gegevensblok; op de computer geïmplementeerde middelen voor het genereren van een eerste controlesomwaarde voor het gegevensblok en een tweede controlesomwaarde voor het gegevensblok, waarin de genoemde 10 eerste controlesomwaarde gegenereerd wordt door het toepassen van een eerste controlesomalgoritme op het genoemde gegevensblok en de genoemde tweede controlesomwaarde gegenereerd wordt door het toepassen van een tweede controlesomalgoritme, verschillende van het eerste 15 controlesomalgoritme, op het genoemde gegevensblok; op de computer geïmplementeerde middelen voor het creëren van een gegevensinvoer welke gegevens omvat die identificeren: de eerste en tweede controlesomwaarden, de eerste en tweede controlesomalgoritmes en tenminste een van de 20 geïdentificeerde attributen van het gegevensblok; en op de computer geïmplementeerde middelen voor het opslaan van de genoemde gegevensinvoer in een met een computer uitleesbaar medium.
In verscheidene uitvoeringsvormen kunnen de middelen 25 voor het identificeren, de middelen voor het genereren, de middelen voor het creëren, en middelen voor het opslaan al dan niet verschillend zijn. Eén middel kan bijvoorbeeld identificeren, genereren, creëren en opslaan. Als alternatief kan een aantal middelen identificeren, genereren, creëren 30 en/of opslaan.
Volgens een aspect is de onderhavige uitvinding gericht op een systeem voor gegevensherstel, omvattende op de computer geïmplementeerde middelen voor het identificeren van 1028971 13 ! een of meer attributen van een eerste gegevensblok en een tweede gegevensblok, het genoemde tweede gegevensblok omvattende en verschillend van het genoemde eerste gegevensblok; op de computer geïmplementeerde middelen voor 5 het genereren van een eerste controlesomwaarde voor het eerste gegevensblok, waarin de eerste controlesomwaarde gegenereerd wordt door het toepassen van een eerste controlesomalgoritme op het eerste gegevensblok; op de computer geïmplementeerde middelen voor het genereren van een 10 tweede controlesomwaarde voor het tweede gegevensblok, waarin de tweede controlesomwaarde gegenereerd wordt door het toepassen van een tweede controlesomalgoritme op het tweede gegevensblok; op de computer geïmplementeerde middelen voor het creëren van een gegevensinvoer die gegevens omvat welke 15 identificeren: de eerste en tweede controlesomwaarden en tenminste een van de geïdentificeerde attributen van de eerste en tweede gegevensblokken; en op de computer geïmplementeerde middelen voor het opslaan van de genoemde gegevensinvoer in een met de computer uitleesbaar medium.
20 In verscheidene uitvoeringsvormen kunnen de middelen voor het identificeren, middelen voor het genereren van de eerste controlesomwaarde, middelen voor het genereren van de tweede controlesomwaarde, middelen voor het creëren en middelen voor het opslaan al dan niet verschillend zijn. Eén 25 middel kan bijvoorbeeld een eerste controlesomwaarde identificeren en genereren, een tweede controlesomwaarde genereren, creëren en opslaan. Als alternatief kan een aantal middelen een eerste controlesomwaarde identificeren, genereren, een tweede controlesomwaarde genereren, creëren en 30 opslaan.
Figuren 1028971 14
Figuur 1 is een stroomdiagram dat de compressiestappen van de onderhavige systemen en werkwijzen illustreert;
Figuur 2 is een stroomdiagram dat de validatiestappen 5 van de onderhavige systemen en werkwijzen illustreert;
Figuur 3 is een stroomdiagram dat verder de werking van de stroom in Figuur 2 illustreert; en
Figuur 4 is blokdiagram dat een parallelle boodschapsamenvattingsprocessor illustreert.
10
Gedetailleerde beschrijving
Een controlesom is een berekende representatie van een ander getal. Er zijn vele typen controlesommen, waaronder, maar niet daartoe beperkt, 15 boodschapsamenvattingen, hashes, digitale handtekeningen, cyclische redundantiecontroles ("CRC") en numerieke controles. Een controlesom kan een groep hashes, handtekeningen, samenvattingen of een andere test omvatten die op unieke wijze of op relatief unieke wijze vingerafdruk 20 van een getal kan maken. Op deze wijze kan een controlesom krachtiger zijn dan een hash, handtekening, etc. alleen.
In één uitvoeringsvorm kan een controlesomtest (validatie) uitgevoerd worden op een geselecteerd getal om te verifiëren of een controlesom van het getal identiek is aan 25 een controlesom van het originele getal. Zoals begrepen zal worden, kan een getal een deelverzameling zijn van een groter getal, waardoor de controlesom gevalideerd wordt tegen een deelverzameling van het originele getal. Deelverzamelingen kunnen verder gecombineerd worden om additionele 30 controlesommen te vormen waardoor een additioneel niveau van validatie voor het onderliggende getal toegevoegd wordt. Een groot getal kan bijvoorbeeld gedeeld worden in 16 gelijke delen, die elk een controlesom hebben. Additioneel kan elk 1028971 15 naburig paar van getallen (8 paren) zijn eigen controlesom hebben en kan tevens elke helft van de meesterverzameling een controlesom hebben.
Een controlesom kan gecreëerd worden om een 5 willekeurig gegevensitem of een combinatie van gegevensitems te representeren. Controlesommen kunnen bijvoorbeeld gecreëerd worden welke de inhoud representeren van een bestand of de naam van een bestand. Verder kan een controlesom gecreëerd worden voor de bestandsnaam, de inhoud 10 ervan en een digitale handtekening voor het bestand. Zoals herkend zal worden, kan een controlesom gebaseerd zijn op een willekeurige numerieke representatie van gegevens, waaronder, maar niet daartoe beperkt, bestandsnaam, bestandsgrootte, bestandsdatum, bestandslengte, een bestandshash of 15 samenvatting, etc. Voor het gemak van de beschrijving kunnen de termen gegevens, gegevensitem en gegevensblok elke willekeurige combinatie van gegevens omvatten, waaronder, slechts als voorbeeld, enkele gegevensitems, gecombineerde gegevensitems, enkele of gecombineerde bestanden, 20 bestandsnamen, beschrijvers, metagegevens, blokken van gegevens, etc.
Een digitaal bestand kan gerepresenteerd worden als een serie getallen. In een voorkeursuitvoeringsvorm kunnen door gebruik te maken van een controlesom, gegevens in de 25 vorm van een digitaal bestand gecomprimeerd worden. In een andere uitvoeringsvorm kan een boodschapsamenvatting, hash of digitale handtekening gebruikt worden samen met de controlesom. Zoals begrepen zal worden, kunnen de onderhavige systemen en werkwijzen toegepast worden op willekeurige 30 bestandtypen, waaronder binaire bestanden. Bovendien zou een binair formaat gebruikt kunnen worden om een gecomprimeerd bestand te beschrijven alsmede te coderen. Zoals verder begrepen zal worden, zal een verhoging van het rekenvermogen 1028971 16 een betere compressie en een diepgaandere test kunnen verschaffen.
Compressie 5 Eén uitvoeringsvorm van gegevenscompressie is getoond in verband met Figuur 1. In deze uitvoeringsvorm worden gegevens gecomprimeerd door het draaien van een compressieprogramma op de gegevens. Details van de compressie worden weergegeven in verband met Figuur 1. Zoals is getoond 10 in Figuur 1, wordt in stap 102 een gegevensbestand, dat de gecomprimeerde bestandgegevens zal bevatten, tot stand gebracht. Deze stap kan tevens omvatten het vertalen van bestandattributen zoals bestandsgrootte, lengte, naam, blokgroottes, aantal blokken, te gebruiken 15 compressiewerkwijzen, etc.
In stap 104 worden gegevens gecomprimeerd door gebruik te maken van de gewenste compressiewerkwijze.
Gegevens kunnen bijvoorbeeld gecomprimeerd worden door het genereren van de SHA samenvatting, MD5 samenvatting, CRC of 20 een willekeurig andere samenvatting, digitale handtekening, controlesom of hashing werkwijze daarvan. Slechts als niet-beperkend voorbeeld kunnen andere digitale handtekeningen en controlesommen MD2, MD4, MD5, Ripe, SHA familie, CRC16, CRC32 en CRC64 omvatten. Gegevens kunnen tevens gecomprimeerd 25 worden door een modulus, modulus remainder en modulus exponent zoals hieronder beschreven is. In één uitvoeringsvorm kan de compressie reversibel zijn. In een andere uitvoeringsvorm kan de compressie niet reversibel zijn. Het verschaffen van een combinatie van handtekeningen 30 en controlesommen en modulussen maakt het mogelijk dat de handtekening reversibel is.
In een uitvoeringsvorm kunnen gegevens verdeeld worden in blokken van een willekeurige grootte voor de 1028971 17 compressie. Zoals herkend zal worden, is, wanneer gebruik wordt gemaakt van hashing, samenvattingen of controlesommen van vaste lengte, hoe groter de blokken des te groter de compressieverhouding. Zoals begrepen zal worden kunnen 5 collisies optreden en kan derhalve een collisieteller geïmplementeerd worden. Zulke tellers worden hieronder gedetailleerd beschreven. Het resultaat van een compressiewerkwijze wordt hierin de controlesomwaarde genoemd.
10 In stap 106 worden gegevens geschreven naar het gegevensbestand of kunnen deze opgeslagen in een tijdelijk of permanent computergeheugen (dat wil zeggen vluchtig of niet-vluchtig geheugen). Dergelijke gegevens omvatten in stap 104 de gecomprimeerde gegevens. In één uitvoeringsvorm bevat het 15 gegevensbestand tevens alle gerelateerde details van de gegevens. Zulke details kunnen, slechts als voorbeeld, omvatten de bestandsnaam, de originele bestandsgrootte, blokcategorieën, blokgrootte, blokidentificatoren, blokinvoeren, opvullingen die gebruikt worden voor 20 willekeurige blokken, controlesomgetallen, etc. Elke blokcategorie kan geïdentificeerd worden door een unieke blokidentificator. Verder kan elke blokcategorie een of meer blokinvoeren, opvulinvoeren, blokgrootte-invoeren, bloklengte-invoeren, etc. omvatten. Elke blokinvoer bevat 25 kenmerkend een hash, samenvatting, controlesom, omgekeerde hash of een andere invoer, zoals gecreëerd door de controlesomgenerator. Zoals hieronder gedetailleerd besproken wordt, worden dergelijke invoeren gebruikt wanneer de gegevens gevalideerd worden, dat wil zeggen dat de blokinvoer 30 controlesomwaarde vergeleken wordt met de controlesomwaarde van een ander getal. In een uitvoeringsvorm kunnen meervoudige blokinvoeren voor dezelfde gegevens (gebruik 1028971 18 makend van verschillende compressiewerkwijzen) gebruikt worden voor onderlinge uitsluiting.
Zoals begrepen zal worden en zoals hieronder gedetailleerd beschreven wordt, kan het gegevensbestand in 5 XM:. SGML of een andere mark-up taal geschreven worden. Wanneer SHA gebruikt wordt om een gegevensblok te controleren, kan bijvoorbeeld een XML invoer de controlesomwaarde bevatten die afgebakend wordt door SHA identificatoren, bijvoorbeeld :<SHA>controlesomwaarde</SHA>/,. 10 Een voorbeeld van een dergelijk mark-up bestand wordt hieronder gegeven.
Indien geen andere gegevens gecomprimeerd moeten worden, wordt het gegevensbestand bewaard en is de compressie voltooid (stap 108), anders gaat de stroom door naar stap 15 104.
Een uitvoeringsvorm van het onderhavige systeem en de onderhavige werkwijze omvat op mark-up gebaseerde controlesomcompressie met attributen als een alternatief voor binaire compressieformaten. De markup tags (etiketten) kunnen 20 een variabele lengte hebben en kunnen verkort worden, dat wil zeggen dat de tags genummerd kunnen worden om hun lengte te verkleinen (bijvoorbeeld ''<l></l><2></2>,,) . Zoals begrepen zal worden, is het gebruik van mark-up tags duidelijker dan een binair compressieformaat. Het bestand kan tevens openlijk 25 geconverteerd worden.
Zoals door de vakman begrepen zal worden, betekent openlijk omgezet worden hier dat er een open formaat is voor de XML of niet-XML tekst mark-up grammaticadefinitie voor bestandshandtekeningen. Verder kan er een computerprogramma 30 en een gebruiksprogramma zijn (zoals het Perl programma van bijlage A) voor het genereren van die bestandshandtekeningen volgens een vooraf bepaalde grammatica en voor het verifiëren volgens de documenttypedefinitie (DTD's) indien het 1028971 19 handtekeningbestand XML, SGML, Backus-Naur of een andere grammatica heeft. Additioneel kan een bestand-gebruiksprogramma (file utility) optionele argumenten hebben die gegeven commando-opties de bestandshandtekeninguitvoer 5 kunnen uitsluiten of kunnen modificeren. Het kan tevens betekenen dat het XML formaat voor een willekeurige tekst mark-up het voor groepen van controlesommen mogelijk maakt om samen toegepast te worden en voor controlesombewerkingen om speciaal gedefinieerd te worden in de DTD of 10 grammaticadefinitie. Een tekstformaat wordt openlijk beschreven, bekeken, overeengekomen, uitgebreid, en geverifieerd. Bovendien kunnen controlesombewerkingen gedefinieerd worden en overeengekomen worden in een open-consistent formaat. Een binair formaat is minder open doordat 15 deze in een niet-tekstformaat is die niet altijd door gewoon teksteditors leesbaar is. Een binair bestandshandtekeningformaat dat openlijk gedefinieerd is, kan tevens gebruikt worden voor handtekeningen, maar is minder open, resulterend in gegevens die niet vergrendeld zijn in 20 een propriëtaire compressie binair getal. Verder verschaft het een middel om het principe te gebruiken van onderlinge uitsluiting, waardoor SHA en MD5 (of andere hashing algoritmes) gebruikt kunnen worden om elkaar te controleren.
Zoals boven besproken is, kunnen gegevens 25 gecomprimeerd worden door gebruik te maken van een willekeurig mechanisme, bijvoorbeeld een hashing mechanisme. In één uitvoeringsvorm kunnen gegevens onderverdeeld worden in een groot aantal blokken en elk blok kan gehasht worden. Gegevens van een grootte van 1000 bytes kunnen bijvoorbeeld 30 onderverdeeld worden in vier 250 byte blokken, waardoor elk blok gehasht kan worden. Zoals begrepen zal worden, kunnen gegevens verdeeld worden in een serie blokken van n bytes lang met of zonder opvulling. Voor de compressie kunnen 1028971 20 gegevens van een grootte van 992 bytes onderverdeeld worden in vier blokken van 250 bytes elk, elk met 2 opvulbytes.
In één uitvoeringsvorm, kan elk blok gehasht worden door gebruik te maken van meer dan een hashing mechanisme.
5 Additioneel kunnen twee of meer blokken onafhankelijk gehasht worden teneinde twee respectievelijke controlesomwaarden te creëren, alsmede samen gehasht worden om een samengestelde (derde) controlesomwaarde te creëren. In één uitvoeringsvorm kunnen deze meervoudige controlesomwaarden gebruikt worden 10 voor onderlinge uitsluiting, zoals gedetailleerd hieronder beschreven wordt. Onderlinge uitsluiting verschaft echter kortweg een mechanisme om de waarschijnlijkheid te verhogen dat een gevalideerd getal het correcte getal is. Wanneer bijvoorbeeld een eerste blok gevalideerd wordt, (bijvoorbeeld 15 door het lokaliseren van een reeks getallen met dezelfde MD5 of SHA hash), kan een additionele samenvatting, hashwaarde, controlesom gevalideerd worden teneinde te verzekeren dat de reeks getallen de correcte reeks is. Met onderlinge uitsluiting is er een verkleinde kans om meer dan een 20 collisie, dat wil zeggen dat het statistisch onwaarschijnlijk is dat meervoudige hashes voor dezelfde reeks getallen alle zullen resulteren in collisies. Zoals begrepen zal worden kan een willekeurig aantal samenvattingen, hashwaarden of controlesommen gebruikt worden om de betrouwbaarheid verder 25 te verhogen. In één uitvoeringsvorm kan een getal tevens verwerkt worden via een omgekeerde controlesom of lopen door een variabele lengte-controlesom die een variable-lengtesleutel van 30 tot 50 bytes genereert. Zoals begrepen zal worden, zijn SHA en MD5 hash algoritmes van een vast 30 bytelengte, waarbij SHA de langere handtekeningsleutel zal hebben dan MD5.
Een voorbeeld van een compressie mark-up bestand is hieronder gegeven: 1 n 9 ft Q71 21 <bestandsnaam>Heracleon.doc</bestandsnaam> bloknummer=,,l"> <blokgrootte>2000</blokgrootte> <bloklengte>1233</bloklengte> 5 </opgevuld> <md5>42dcd3c7 6f0e69e8 614b999b dlf2acdc 8de47d88</md5> <sha>a9993e36 4706816a ba3e2571 7850c26c 9cd0d89d</sha> 10 <crc>129837129</crc> </bloknummer="l"> <bloknummer="2"> <blokgrootte>2000</blokgrootte> <bloklengte>133</bloklengte> 15 </opgevuld> <Md5>a993e3647068l6aba3e25717850c26c9cd0d89d</ md5> <sha> 2d795c01 ff54cfdl ba6771c5 99clac64 baflacc7</sha> 20 <crc>129837l29</crc> </bloknummer="2"> <bloknummer="3"> <blokgrootte>2000</blokgrootte> <bloklengte>133</bloklengte> 25 </opgevuld> <md5>a9993e364706816aba3e25717850c26c9cd0d89d</ md5> <sha> 2d795c01 ff54cfdl ba6771c599clac64 baflacc7</sha> 30 <crc>129837129</crc> </bloknummer="3"> </bestand> 1028971 22
Stel, als verder voorbeeld, dat een bestand met de naam "bestand" gecomprimeerd wordt tot in "bestand.archief". De grootte van "bestand" is bepaald op 120.233 bytes. Het kan wenselijk zijn dat de gegevens verdeeld worden in blokken.
5 Wanneer een blokgrootte gedefinieerd is als 20.000 bytes, zou "bestand" verdeeld kunnen worden in 7 blokken, waarbij het laatste blok slechts 233 bytes heeft. Elk blok kan gestuurd worden door een controlesomgenerator en een controlesom blokinvoer wordt geschreven voor elke compressiewerkwijze die 10 op het blok wordt toegepast. Wanneer blok nummer 2 gecomprimeerd wordt door gebruik te maken van SHA en MD5, zal bijvoorbeeld een blokinvoer voor elk blok ingevoegd moeten worden in de blokcategorie voor blokgetal 2. Andere invoeren kunnen opgesomd worden in deze blokcategorie, zoals het 15 blokgetal (hier "2”) waarnaar verwezen is, de blokgrootte (hier 2000 bytes), bloklengte, opvulling, etc. Alle blokken kunnen bewaard worden in een "bestand.archief", dat een bestandsgrootte kan hebben van slechts 2.156 bytes. Een voorbeeld van een bestand "bestand.archief" wordt hieronder 20 gegeven.
<bestandsnaam>bestand</bestandsnaam> <bloknummer="l"> <blokgrootte>20000</blokgrootte> 25 <bloklengte>20000</bloklengte> </opgevuld> <sha-omgekeerd>42ded03c7 6f2e69e8 614b999b dl123333 8de47d88</sha-omgekeerd> <sha>alllle36 4706816a ba3e2571 7850c26c 30 9cd0d89d</sha> <crc>12983712900000</crc> </bloknummer="l"> <b1o knumme r="2"> 1028971 23 <blokgrootte>20000</blokgrootte> <bloklengte>20000</bloklengte> </opgevuld> <sha-omgekeerd>a9b00e364706816aba3e25717850c 5 26c9cd0d89d</sha-omgekeerd> <sha> 2d700c01 ff54cfdl ba6771c5 99clac64 baflacc7</sha> <crc>1298371292l3123321</crc> J </bloknummer="2"> 10 <bloknununer="3"> <blokgrootte>20000</blokgrootte> <bloklengte>20000</bloklengte> </opgevuld> <sha-omgekeerd>a92222e364706816aba3e25717850c 15 26c9cd0d89d</sha-omgekeerd> <sha> 2d795c01 ff54cfdl ba6771c5 99clac64 baflacc7</sha> <crc>129837129</crc> </bloknummer="3"> 20 <bloknummer="4"> <blokgrootte>20000</blokgrootte> <bloklengte>20000</bloklengte> </opgevuld> <sha-omgekeerd>a99233e364706816aba3e25717850c 25 26c9cd0d89d</md5> <sha> 2deffc01 ffaaaadl ba6771c5 99clac64 baflacc7</sha> <crc>102839203342234</crc> </bloknununer="4 "> 30 <bloknummer="5"> <blokgrootte>20000</blokgrootte> <bloklengte>20000</bloklengte> </opgevuld> 1028971 24 <sha-omgekeerd>a883e364706816aba3e76555850c2 6c9cd0d89d</sha-omgekeerd> <sha> 2d795c01 ffffff ba6771c5 99clac64 baflacc7</sha> 5 <crc>1298371291233</crc> </blo knumme r="5"> <bloknuramer="6"> <blokgrootte>20000</blokgrootte> <bloklengte>20000</bloklengte> 10 </opgevuld> <sha-omgekeerd>eeeeee364706816aba3e25717850c 26c9cd0d89d</sha-omgekeerd> <sha> 2d00fc01 ffeeeedl ba6771c5 99clac64 baflacc7</sha> 15 <crc>12982344129</crc> </bloknummer="6"> <bloknummer="7"> <blokgrootte>20000</blokgrootte> <bloklengte>293</bloklengte> 20 </opgevuld> <sha-omgekeerd>22222e364706816aba3e25717850c 26c9cd0d89d</sha-omgekeerd> <sha> OOOOOcOl ff54cfdl ba6771c5 99clac64 baflacc7</sha> 25 <crc>129833129</crc> </b1o knummer=" 7 " > </bestand>
Reconstructie 30 In een voorkeursuitvoeringsvorm worden gearchiveerde gegevens gereconstrueerd door het draaien van een reconstructieprogramma op de gearchiveerde gegevens. Details van de validatie zijn weergegevens in verband met Figuur 2.
1028971 i 25
In stap 202 wordt een gecomprimeerd bestand geopend. Dit kan een archiefbestand zijn of zoals boven beschreven is, een XML, SGML of een ander bestand met gecomprimeerde bestandbeschrijvers zijn. Bestandbeschrijvers kunnen omvatten 5 de bestandsnaam, de originele bestandsgrootte, blokcategorieën, blokgrootte, blokidentificatoren, blokinvoeren, voor willekeurige blokken gebruikte opvulling, controlesomgetallen, blokidentificator, een of meer blokinvoeren, opvullinginvoeren, blokgrootte-invoeren, 10 bloklengte-invoeren, etc. Elke blokinvoer kan een of meer van een hash, samenvatting, controlesom, omgekeerde hash, of een andere invoer bevatten, zoals deze gecreëerd is door de controlesomgenerator. Verder kan de bestandbeschrijver tevens bestandsmetagegevens of gegevensattributen bevatten. Slechts 15 als niet beperkend voorbeeld kunnen gegevensattributen tenminste een zijn van de grootte, lengte, bestandsnaam, directory, root, drive, pad, datum, tijd, gemodificeerde datum, toestemming, eigenaar, byte volgorde, en type of andere eigenschappen en metagegevens. Elk van de 20 bestandsattributen kunnen in de archiefhandtekening voor dat bestand ingevoegd worden.
In stap 204 wordt een scan uitgevoerd op een bereik van getallen. Het scanproces is een werkwijze voor het vinden van een getal dat een controlesomwaarde genereert die 25 overeenstemt met een bekende controlesom, waarbij de som in een bereik van getallen onderzocht wordt om een gegevens blok te vinden resulterende in dezelfde controlesomwaarde als een bepaalde blokinvoer. In verscheidene uitvoeringsvormen kunnen verschillende scanwerkwijzen gebruikt worden waaronder, 30 slechts als voorbeeld, lineaire scans, niet-lineaire scans, oversla scans, exponentiële scans, restrictieve scans, modulus scans, etc. Zoals begrepen zal worden, kunnen verschillende scanwerkwijzen (aftastwerkwijzen) scantijden 1 028971 26 verbeteren door het reduceren van de verzameling getallen in het scanbereik. Zoals verder begrepen zal worden, kunnen tevens niet-scanwerkwijzen gebruikt worden in samenhang met het scannen teneinde het scanproces te vereenvoudigen.
5 Bepalen of een getal een priemgetal, samengesteld getal, een even getal of een oneven getal is, kan bijvoorbeeld gebruikt worden als stap in het validatieproces. Verscheidene scanwerkwijzen worden hieronder gedetailleerd besproken.
In één uitvoeringsvorm wordt elk getal in het 10 scanbereik geverifieerd ten opzichte van een bekende controlesom. In een andere uitvoeringsvorm wordt elk getal in het scanbereik geverifieerd ten opzichte van een bekende controlesom en wanneer de verificatie succesvol is, wordt het getal geverifieerd ten opzichte van een of meer opvolgende 15 controlesommen (zoals beschreven is in verband met een onderlinge uitsluiting). In een andere uitvoeringsvorm wordt elk getal in het scanbereik geverifieerd ten opzichte van alle bekende controlesommen.
In verscheidene uitvoeringsvormen kunnen niet-20 lineaire of oversla scans gebruikt worden gedurende het scannen. Niet-lineaire of oversla scans zijn scans die uit een sequentiële volgorde kunnen zijn of getallen kunnen overslaan, bijvoorbeeld oversla- of niet-lineaire scans kunnen elk oneven getal, elk even getal, elk vijfde getal 25 overslaan of willekeurig kunnen scannen. Additionele uitvoeringsvormen omvatten andere scanwerkwijzen, waaronder permutatiescan (dat wil zeggen een controlesomscan die gedraaid kan worden tegen een serie permutaties), een parallelle scan (dat wil zeggen een controlesomscan die het 30 gescande bereik op kan delen tussen meervoudige computers, microcomputers, processen, etc.), een restrictiescan (dat wil zeggen een scan die gedraaid kan worden tegen een reeks getallen, bijvoorbeeld van 0 tot N, of van M tot N). Met een 1028971 27 restrictiescan kan een vloer of plafond gedefinieerd worden zodat scanning slechts uitgevoerd wordt op de getallen tussen de vloer en het plafond. Deze en andere scanuitvoeringsvormen worden gedetailleerd hieronder beschreven.
5 Een invoer 0 (Invoer) kan bijvoorbeeld een controlesomuitvoer N hebben. Teneinde voor een getal M (gehasht) om gelijk te zijn aan de 0 (Invoer), moet dit gelijk zijn aan de controlesomuitvoer (N2). Dit betekent dat N=N2 voor 0=M. Dit aspect van scanning kan uitgedrukt worden j 10 door de volgende formule: O(Invoer) = Controlesomuitvoer(N) M(gehasht) = Controlesomuitvoer(N2)
In een uitvoeringsvorm wordt een lineaire scan 15 gebruikt. Dit is de meest basisscan, waarin een bereik van getallen, bijvoorbeeld van 1 tot n, incrementeel gescand wordt. Omgekeerde scans, bijvoorbeeld van n tot 1, kunnen eveneens toegepast worden. Andere scanwerkwijzen worden hieronder beschreven.
20 In een voorkeursuitvoeringsvorm kan een controlesom gebruikt worden om een getal te vinden dat geassocieerd is met de digitale handtekening, de boodschapsamenvatting, de controlesom, de hash, etc. van een bekend getal. Een willekeurige scanwerkwijze kan geïmplementeerd worden 25 teneinde de controle som te valideren. In een lineaire scan wordt bijvoorbeeld een getal opgehoogd en getest om te zien of het getal overeenkomt met de bekende controlesom. Indien het getal niet overeenkomt, wordt het getal opnieuw verhoogd en getest. Deze stappen worden herhaald totdat de controlesom 30 hetzij gevonden wordt of een maximumgetal bereikt is. Zoals begrepen zal worden, kunnen andere scanwerkwijzen, zoals | hierboven en hieronder genoemd worden, gebruikt worden om controlesommen te valideren.
i 1028971 28
In één uitvoeringsvorm wordt een parallelle scan gebruikt. Een illustratief voorbeeld van een parallelle scan volgt. Een scanbereik bestaat van 0 tot 100029000. Het scanbereik kan verdeeld worden tussen twee of meer 5 processoren en aan elke processor wordt een corresponderende fractie van dat bereik toegevoegd. Aan vier processoren wordt elk 1/4 van het bereik toegevoegd. 10029000 wordt verdeeld in vier delen en elke CPU voert controles uit teneinde te bepalen of één getal dezelfde controlesommen uitvoert. Indien 10 het getal een identieke controle genereert, eindigt de computerbewerking. Merk op dat additionele verwerking plaats kan vinden waarin onderlinge uitsluiting in opgenomen is. Onderlinge uitsluiting wordt in meer detail hieronder beschreven. Indien getal 12333 bijvoorbeeld de correcte MD5 15 hash genereert, is het getal potentieel gevonden. Onderlinge uitsluiting verificatie verschaft verzekering dat het getal correct is, dat wil zeggen dat het getal tevens de correcte CRC en SHA genereert en er een grotere waarschijnlijk is dat het getal correct is. Een paar digitale handtekeningen kan 20 eveneens gecreëerd worden, die collisies kunnen hebben, maar die ontworpen zijn om verschillende handtekeningresultaten te produceren wanneer deze samen gebruikt worden. Dit is een voorbeeld van onderlinge uitsluiting. Digitale handtekening xyz kan bijvoorbeeld ontworpen worden om andere handtekening 25 te produceren dan digitale handtekening zzz
Het volgende illustreert een parallelle scan.
CPU CPU2 CPU3 CPU4 0-2507250 2507251-50145499 5014500-72521750 72521751-10039000 30 Gelokaliseerd getal 12333: CPU 1 Controlesomresultaat: MD5: 42dcd3c7 6f0e69e8 614b999b dlf2acdc 8de47d88 SHA: 42dcd3c7 6f0e69e8 614b999b dlf2acdc 8de47d88 1231231 CRC: 123213231213 1n?R971 29
Resultaat: Getal 12333 komt overeen met de originele controlesommen
Originele controlesom: 5 MD5: 42dcd3c7 6f0e69e8 614b999b dlf2acdc 8de47d88 SHA: 42dcd3c7 6f0e69e8 614b999b dlf2acdc 8de47d88 1231231 CRC: 123213231213 10 In één uitvoeringsvorm kunnen er collisies zijn buiten een bepaald bereik van getallen en zou derhalve een scan door een gedefinieerd bereik kunnen itereren teneinde een getal X te vinden die geassocieerd is met een controlesom Y. Dit wordt vaak een restrictiescan genoemd. Een 15 restrictiescan kan een startpunt alsmede een eindpunt definiëren voor een scan, bijvoorbeeld van 12 tot 123. Een ander voorbeeld van een restrictiescan kan een kraag (Engels: collar) zijn zodat een getal N tot de xde macht functioneert als een startpunt met een getal M tot de Yde macht als 20 eindpunt.
In een andere uitvoeringsvorm kan een overslascan gebruikt worden om het aantal iteraties in een scan te I reduceren. Een dergelijke overslascan kan getallen gedurende het scanproces overslaan. De scan zou bijvoorbeeld oneven of 25 even getallen, elk nde getal, of een gedefinieerde overslaverzameling kunnen overslaan en voert controlesommen uit op de relevante getallen.
In een andere uitvoeringsvorm kan een modulusscan gebruikt worden. Een modulusscan wordt hieronder 30 gedetailleerd beschreven.
In een andere uitvoeringsvorm, en zoals boven beschreven is, kan onderlinge uitsluiting gebruikt worden om de snelheid van de validatie te vergroten alsmede om de 1028971 --------------------- 30 uniciteit van de gegevens te verzekeren. Zoals men zal begrijpen, zijn boodschapsamenvattingen, hashes, en digitale handtekeningen soortelijk aan de controlesommen doordat zij een alternatieve werkwijze verschaffen om een bekend 5 gegevenitem te representeren. In het onderhavige systeem en de onderhavige werkwijze, kunnen meervoudige controlesommen, handtekeningen, hashes, samenvattingen, etc. gebruikt worden om een bekende controlesom te valideren gebaseerd op het principe van onderlinge uitsluiting. In een uitvoeringsvorm 10 is onderlinge uitsluiting het resultaat van het paren van twee of meer handtekeningen of controlesommen zodat de handtekeningen en handtekeningresultaten andere handtekeningen en handtekeningresultaten ten opzichte van collisies valideren. Voor één digitale handtekening of hash 15 of controlesom kan er een collisie zijn, maar twee controlesommen kunnen verschillende resultaten produceren en daardoor de waarschijnlijkheid verhogen dat het correcte getal gevonden is. Digitale handtekeningen kunnen tevens gecreëerd worden die verschillende resultaten produceren voor 20 verschillende invoeren en die collisies minimaliseren.
Door het verschaffen van meer dan een wiskundige representatie van een bekend gegevensitem, bestand, blok, etc., verzekert onderlinge uitsluiting dat er een grotere statistische waarschijnlijkheid van uniciteit is wanneer de 25 gegevens door te scannen gevalideerd worden. Wanneer een collisie optreedt voor één boodschapsamenvatting, is het onwaarschijnlijk dat tevens een collisie voor een tweede samenvatting optreedt. Verder kunnen twee samenvattingen gebruikt worden om een verschillende en afzonderlijke sleutel 30 voor een gegeven invoer te genereren. Zoals begrepen zal worden, kunnen gebaseerd op het principe van onderlinge uitsluiting, twee of meer controlesommen door gebruik te maken van de verschillende controlesomwerkwijzen, gebruikt 1028971 31 worden om te verifiëren dat een controlesomgetal gevalideerd is ten opzichte van het originele getal. Met drie, vier of meer controlesommen, die elk een verschillende controlesomwerkwijze gebruiken, is het zelfs nog 5 onwaarschijnlijker dat collisies in alle samenvattingen zullen optreden.
De volgende invoeren genereren bijvoorbeeld dezelfde MD5 hash: 10 Dit is de hexinvoer voor bestand md5colll: dl 31 dd 02 c5 e6 ee c4 69 3d 9a 06 98 af f9.5c 2f ca b5 87 12 46 7e ab 40 04 58 3e b8 fb 7f 89 55 ad 34 06 09 f4 b3 02 83 e4 88 83 25 71 41 5a 15 08 51 25 e8 f7 cd c9 9f d9 ld bd f2 80 37 3c 5b d8 82 3e 31 56 34 8f 5b ae 6d ac d4 36 c9 19 c6
dd 53 e2 b4 87 da 03 fd 02 39 63 06 d2 48 cd aO
e9 9f 33 42 Of 57 7e e8 ce 54 b6 70 80 a8 Od le c6 98 21 bd b6 a8 83 93 96 f9 65 2b 6f f7 2a 70 20
Dit is de hexinvoer voor bestand mdcoll2 dl 31 dd 02 c5 e6 ee c4 69 3d 9a 06 98 af f9 5c 2f ca b5 07 12 46 7e ab 40 04 58 3e b8 fb 7f 89 25 55 ad 34 06 09 f4 b3 02 83 e4 88 83 25 fl 41 5a 08 51 25 e8 f7 cd c9 9f d9 ld bd 72 80 37 3c 5b d8 82 3e 31 56 34 8f 5b ae 6d ac d4 36 c9 19 c6
dd 53 e2 34 87 da 03 fd 02 39 63 06 d2 48 cd aO
e9 9f 33 42 Of 57 7e e8 ce 54 b6 70 80 28 Od le 30 c6 98 21 bd b6 a8 83 93 96 f9 65 ab 6f f7 2a 70 1028971 32
Zij genereren beide deze md5 samenvatting: 79054025255fbla26e4bc422aef54eb4.
Door het verschaffen van meer dan een wiskundige 5 representatie van de gegevensinvoeren, verzekert onderlingè uitsluiting dat er een hogere statistische waarschijnlijkheid van uniciteit is wanneer de gegevens door het aftasten gevalideerd worden. Hieronder is een voorbeeld van samenvattingen in een XML mark-up bestand, waardoor 10 verschillende samenvattingen gecreëerd zijn voor de bovengenoemde invoeren, waarbij het concept van onderlinge uitsluiting wordt geïllustreerd: <?xml versie="l.0" codering="ascii"?> 15 <!DOGTYPE COMPRIMEER_ARCH SYSTEEM "compress2.dtd"> <ARCH> <BESTAND> <NAAM>md5colll</NAAM> <GROOTTE>128</GROOTTE> 20 <md t="SHA">al9e89df4ccb344af4f0372907d8ad7d40296ea5</md> <mdr t="SHA">5aebda61fc4bc8ff3621f6304076b49Ia97a57ec</mdr> <md t="RIPE160">9c20bd94bc95d93dddd607ebdf0e2944061ab816</md> <mdr t="RIPE160">d43b384a04 6b91536a6ccl847ff4f906ba0e535</mdr> 25 <md t="MD5">79054025255fbla26e4bc422aef54eb4</md> <md t="MD5_OMGEKEERD">63692f882033b4e2cl3d437f35e33271</md> <md t="MD4,’>4dca774857ecceefbl8de6ea42af 36aed</md> <md t="MD2">85cf988625dl54279dllde59bf377cc3</md> <MODULUS>+9611342</MODÜLUS> 30 <VLOER></VLOER> <PLAFONDX/PLAFOND> </BESTAND> <BESTAND> 1 02 8971 33 <NAAM>md5coll2</NAAM> <GROOTTE>128</GROOTTE> <md t="SHA">9ed5cd2e6678248ab42c69961720b910e3618288</md> <mdr t="SHA"?fbe543c5b550374b3f4818dc24e80af8615dl91c</mdr> 5 <md t="RIPE160”>70f686e0ae36f7e0d59da69b473749e92c087740</md> <mdr t="RIPE160">e3b2a7b5f2630314a8b77e2aa429cd308e0c7871</ mdr> <md t="MD5">79054025255fbla26e4bc422aef54eb4</md> <md t="MD5-0MGEKEERD">bf5bf87f65e79b98af7985885f3e5ee0</md> 10 <md t="MD4">7a9919f9efb2ecael7012dcf94edc983</md> <md t="MD2">358aba7632d39f6c41f400eedb7b31de</md> <MODULUS>+4981022</MODULUS> <VLOERX/VLOER> <PLAFOND</PLAFOND> 15 </BESTAND> </ARCH>
In één uitvoeringsvorm verifieert onderlinge uitsluiting de met een bepaald gegevensitem geassocieerde 20 hash, samenvatting of controlesom met de minste processorinspanning als eerste. Op deze wijze behoeft de processor niet intensieve hashes, samenvattingen of controlesommen voor elk getal in het scanbereik te berekenen. Derhalve kan het aantal voor de processor intensieve stappen 25 gereduceerd worden. Additioneel kunnen door het incorporeren van een collisieteller (hieronder gedetailleerd besproken) volgende collisies een uniek collisiegetal incorporeren teneinde de validatie op unieke wijze te identificeren. De opvolgende onderlinge uitsluitingstesten worden slechts 30 uitgevoerd op het overeenkomende getal. Een kostenpiramide kan tevens verkregen worden voor de handtekening-samenvattingen van hogere kosten of controles die verwerkt worden en als laatste getest worden (en slechts indien een 1028971 34 eerdere controlesom of test succesvol was) en waarbij de samenvattingen van lagere kosten als eerste verwerkt worden. Indien er drie samenvattingen zijn, kunnen slechts de laatste twee gecontroleerd worden indien de eerdere controlesom of 5 digitale handtekeningtest succesvol is.
In stap 206 waarin een controlesomovereenstemming gevonden is, wordt het resulterende getal in de controlesomovereenkomst geschreven naar een uitvoerbestand. Indien de gevonden controlesom de eerste overeenstemming is, 10 kan het controlesombestand gecreëerd worden. In één uitvoeringsvorm bepaald een blokidentificator de positie van het gevonden getal in het uitvoerbestand. Een getal corresponderend met de identificator voor blok 1 zal bijvoorbeeld geplaatst worden op de eerste positie van het 15 uitvoerbestand en een getal corresponderend met de identificator voor blok 2 zal geappendeerd worden aan het einde van blok 1., maar zal verschijnen voor het getal in blok 3. Op deze wijze kunnen meervoudige computers, processoren, waaronder verdeelde netwerken, gebruikt worden om bestanden 20 te decomprimeren, terwijl op hetzelfde moment de gewenste volgorde in het uitvoerbestand behouden blijft.
Indien alle gegevens geverifieerd zijn, is de validatie voltooid en wordt het uitvoerbestand bewaard (stap 208). Indien additionele gegevens geverifieerd moeten worden, 25 gaat de stroom door naar stap 204.
Figuur 3 is een voorbeeld van de in Figuur 2 beschreven stroom. Zoals is weergegevens in stap 302, laat het decompressieprogramma een bestand in met de naam "bestand.archief". In stap 304, scant het de getallen van a 30 tot b en stuurt hen door SHA en omgekeerde-SHA en CRC teneinde een getal te vinden dat overeenkomt met de SHA handtekening. In stap 306, worden de blokken geïtereerd van blok 1 tot en met blok 7 teneinde een groep getallen te 1028971 35 vinden die overeenstemt met blok 1 tot en met blok 7 hash of controlesom. Omgekeerde SHA is het blok dat omgekeerd door SHA wordt gestuurd. In stap 308 wordt een getal, wanneer dit alle controlesommen gepasseerd heeft, als blok uitgevoerd.
5 Een beschrijving van het iteratieproces volgt.
Iteratie#l, Blok#l
Indien controlesom onwaar is voor blokinvoer 1 ten opzichte van gedefinieerde compressiewerkwijzen
Gaat de bewerking door naar 10 Iteratie#102999990128932901, Blok#l
Indien de controlesom waar is voor blokinvoer 1 ten opzichte van de gedefinieerde compressiewerkwijzen
Wordt het blok uitgevoerd naar bestand.on-archief.
Gaat de bewerking door voor alle volgende blokken.
15 Iteratiettl, Blok#n, tot Iteratie#n, Blok#n.
Modulus overslaan
Modulus overslaan is gerelateerd aan het Chinese Restant Theorema (Chinese Remainder Theorem). Dit theorema 20 beantwoordt vragen zoals: er is een getal n gedeeld door 233, welke gelijk is aan 3 en n gedeeld door 6 welke gelijk is aan 7. Wat is het getal? Modulus overslaan brengt het beantwoorden van de vraag met zich mee zoals: is er een binair getal n dat gedeeld door een miljoen (de modulus) 25 gelijk is aan 1233 en waarvan de SHA handtekening gelijk is aan x, en waarvan de MD5 handtekening gelijk is aan Y, en waarvan de lengte gelijk is aan 123 bytes. Wat is het binaire hele getal van 123 bytes?
Modulus overslaan is een type van overslascan zoals 30 boven beschreven is. Een bestand vormt kenmerkend een uniek getal in bits (bijvoorbeeld een 2 bytes bestand heeft een lengte van 16 bits en een numerieke waarde van 0 tot 65536) . Een bestandgetal kan het getal representeren dat gevormd is 1028971 36 door de bits van het bestand. Een bestandgetal kan gedeeld worden door een ander getal om een rest te verkrijgen. Een kleiner getal zal n keer in een groter getal gaan met een rest x (modulus en de rest). In een voorkeursuitvoeringsvorm 5 kan een bestandgetal de modulus van zijn hash hebben die gebruikt wordt als een iterator. Op deze wijze kan een bestandgetal gerepresenteerd worden als een meervoud van zijn modulus plus de rest. Dit maakt het mogelijk dat een bestand gezocht wordt door het itereren over de 10 (modulus*iteratie_getal+de rest) teneinde een handtekeningovereenstemming te vinden die gelijk is aan de starthandtekening van een onbekend bestandgetalblok.
Een reeks kan bijvoorbeeld gecomprimeerd worden volgens de onderhavige systemen en werkwijzen. In dit 15 voorbeeld beschrijft de term "hash" het resultaat van de compressiewerkwijze. Teneinde de originele reeks te vinden, kan men scannen over alle combinatie van reeksen teneinde één te vinden met dezelfde hash of itereren over de modulus en de rest om een overslascanproces uit te voeren voor een 20 gegevensblok die overeenstemt met een hash.
1000 modulus 15=10, of voor het getal 1000, gebruik makend van de modulus 15, heeft een rest 10. Het getal 1000 gedeeld door 15 is met andere woorden gelijk aan 66 (en 15*66=990) met een rest van 10. Een modulusscan kan dit 25 gebruiken om het aantal iteraties dat nodig is om een overeenstemmende hash te vinden, te reduceren. Hier zou een modulusscan voor het getal 1000, 66 keer itereren versus 1000 keer voor een niet-modulusscan. De volgende tabel illustreert dit punt.
30
Iteratie n * Modulus + Rest = Resultaat Hash 1 *15 +10 =25. abcccc 2 * 15 + 10 = 40. deeeee 1 02 8971 37 3 * 15 + 10 55. xeeeee 4 * 15 + 10 = 70. eeerrrr « * 66 * 15 + 10 = 1000. eeeeee 5
Men kan derhalve itereren over de modulus en hash het getal totdat men een getal vindt dat overeenstemt met een bepaalde hash, in plaats van het itereren over alle getalcombinaties en het nemen van de hash. Op deze wijze kan 10 men itereren door een meervoud van de modulus van een getal plus zijn rest teneinde een getal te vinden dat overeenstemt met een hash. Dit kan zeer klein lijken totdat men een 1000 bits getalblok neemt en de modulus van 128 bit en het restgetal, hetgeen de hashzoeking exponentieel versnelt. Deze 15 werkwijze kan een digitale handtekening zoekbewerking miljarden keren versnellen en de uniciteit verbeteren.
Hieronder is een voorbeeld van een iteratieve, niet-overslascan. Reeks "a" is gehasht en vervolgens is een reeks geïtereerd over de permutaties totdat een reeks getallen 20 overeenstemt met de hash van 0 tot 97 Null in aan c reeks De samenvatting van reeks a is 86F7E437FAA5A7FCE15D1DDCB9EAEAEA377667B8 Samenvattingreeks: 86F7E437FAA5A7FCE15D1DDCB9EAEAEA377667B8: reeks ai 25
Reeks Samenvatting DA39A3EE5E6B4B0D3255BFEF95601890AFD80709 000 Reeks Samenvatting BF8B4530D8D246DD74AC53A13471BBA17941DFF7 101 Reeks Samenvatting C4EA21BB365BBEEAF5F2C654883E56D11E43C44E 202 Reeks Samenvatting 9842926AF7CA0A8CCA12604F945414F07B01E13D 303 30 Reeks Samenvatting A42C6CF1DE3ABFDEA9B95F34687CBBE92B9A7383 404 Reeks Samenvatting 8DC00598417D4EB788A77AC6CCEF3CB484905D8B 5 05
Reeks Samenvatting 2D0134ED3B9DE132C720FE697B532B4C232FF9FE 606 Reeks Samenvatting 5D1BE7E9DDA1EE8896BE5B7E34A85EE16452A7B4 707 Reeks Samenvatting 8D883F1577CA8C334B7C6D75CCB71209D71CED13 8 08 35 Reeks Samenvatting AC9231DA4082430AFE8F4D40127814C613648D8E 909 1 028971 38
Reeks Samenvatting ADC83B19E793491B1C6EA0FD8B46CD9F32E592FC 10 0 10
Reeks Samenvatting 067D5096F219C64B53BB1C7D5E3754285B565A47 11 0 11
Reeks Samenvatting 1E32E3C360501A0EDE378BC45A24420DC2E53FBA 12 0 12
Reeks Samenvatting 11F4DE6B8B45CF8051B1D17FA4CDE9AD935CEA41 13 0 13 5 Reeks Samenvatting 320355CED694AA69924F6BB82E7B74F420303FD9 14 0 14
Reeks Samenvatting C7255DC48B42D44F6C0676D6009051B7E1AA885B 15 0 15
Reeks Samenvatting 6E14A407FAAE939957B80E641A836735BBDCAD5A 16 0 16
Reeks Samenvatting A8ABD012EB59B862BF9BC1EA443D2F35A1A2E222 17 0 17
Reeks Samenvatting C4F87A6290AEE1ACFC1F26083974CE94621FCA64 18 0 18 10 Reeks Samenvatting 5A8CA84C7D4D9B055F05C55B1F707F223979D387 19 0 19
Reeks Samenvatting 3CE0A1AF90B6E7A3DD8D45E410884B588EA2D04C 20 0 20
Reeks Samenvatting 7762EABF9387FE8EC5D648CD3B1D9EB6D820CAA2 21 0 21
Reeks Samenvatting A9D3C9CD54B1A392B21EA14904D9A318F74636B7 22 0 22
Reeks Samenvatting 094D98B399BF4ACE7B8899AB7081E867FB03F869 23 0 23 15 Reeks Samenvatting C2143B1AODB17957BEC1B41BB2E5F75AA135981E 24 0 24
Reeks Samenvatting E9C5D7DB93A1C17D45C5820DAF458224BFA7A725 25 0 25
Reeks Samenvatting EBDC2288A14298F5F7ADF08E069B39FC42CBD909 26 0 26
Reeks Samenvatting 27F57CB359A8F86ACF4AF811C47A6380B4BB4209 27 0 27
Reeks Samenvatting B830C46D24068069FOA43687826F355B21FDB941 28 0 28 20 Reeks Samenvatting 5983AD8F6BFEA1DEDA79409C844F51379C52BE2D 29 0 29
Reeks - Samenvatting 7FD88C329B63B57572A0032CF14E3E9EC861CE5F 30 0 30
Reeks - Samenvatting 953EFE8F531A5A87F6D2D5A65B78B05E55599ABC 31 0 31
Reeks Samenvatting B858CB282617FB0956D960215C8E84D1CCF909C6 32 0 32
Reeks ! Samenvatting 0AB8318ACAF6E678DD02E2B5C343ED41111B393D 33 0 33 25 Reeks " Samenvatting 2ACE62C1BEFA19E3EA37DD52BE9F6D508C5163E6 34 0 34
Reeks # Samenvatting D08F88DF745FA7950B104E4A707A31CFCE7B5841 35 0 35
Reeks $ Samenvatting 3CDF2936DA2FC556BFA533AB1EB59CE710AC80E5 36 0 36
Reeks % Samenvatting 4345CB1FA27885A8FBFE7C0C830A592CC76A552B 37 0 37
Reeks & Samenvatting 7C4D33785DAA5C2370201FFA236B427AA37C9996 38 0 38 30 Reeks ' Samenvatting BB589D0621E5472F470FA3425A234C74B1E202E8 39 0 39
Reeks ( Samenvatting 28ED3A797DA3C48C309A4EF792147F3C56CFEC40 40 0 40
Reeks ) Samenvatting E7064F0B80F61DBC65915311O32D27BAA569AE2A 41 0 41
Reeks * Samenvatting DF58248C414F342C81E056B40BEE12D17A08BF61 42 0 42
Reeks + Samenvatting A979EF10CC6F6A36DF6B8A323307EE3BB2E2DB9C 43 0 43 35 Reeks , Samenvatting 5C10B5B2CD673A0616D529AA5234B12EE7153808 44 0 44
Reeks - Samenvatting 3BC15C8AAE3E4124DD409035F32EA2FD6835EFC9 45 0 45
Reeks . Samenvatting 3A52CE780950D4D969792A2559CD519D7EE8C727 46 0 46
Reeks / Samenvatting 42099B4AF021E53FD8FD4E056C2568D7C2E3FFA8 47 0 47
Reeks 0 Samenvatting B6589FC6AB0DC82CF12O99D1C2D4OAB994E841OC 48 0 48 40 Reeks 1 Samenvatting 356A192B7913B04C54574D18C28D46E6395428AB 49 0 49 1028971 39
Reeks 2 Samenvatting DA4B9237BACCCDF19C0760CAB7AEC4A8359010B0 50 0 50
Reeks 3 Samenvatting 77DE68DAECD823BABBB58EDB1C8E14D7106E83BB 51 0 51
Reeks 4 Samenvatting 1B6453892473A467D07372D45EB05ABC2031647A 52 0 52
Reeks 5 Samenvatting AC3478D69A3C81FA62E60F5C3696165A4E5E6AC4 53 0 53 5 Reeks 6 Samenvatting C1DFD96EEA8CC2B62785275BCA38AC261256E278 54 0 54
Reeks 7 Samenvatting 902BA3CDA1883801594B6E1B452790CC53948FDA 55 0 55
Reeks 8 Samenvatting FE5DBBCEA5CE7E2988B8C69BCFDFDE8904AABC1F 56 0 56
Reeks 9 Samenvatting 0ADE7C2CF97F75D009975F4D720D1FA6C19F4897 57 0 57
Reeks : Samenvatting 05A79F06CF3F67F726DAE68D18A2290F6C9A50C9 58 0 58 10 Reeks ; Samenvatting 2D14AB97CC3DC294C51C0D6814F4EA45F4B4E312 59 0 59
Reeks < Samenvatting C4DD3C8CDD8D7C95603DD67F1CD873D5F9148B29 60 0 60
Reeks = Samenvatting 21606782C65E44CAC7AFBB90977D8B6F82140E76 61 0 61
Reeks > Samenvatting 091385BE99B45F459A231582D583EC9F3FA3D194 62 0 62
Reeks ? Samenvatting 5BAB61EB53176449E25C2C82F172B82CB13FFB9D 63 0 63 15 Reeks @ Samenvatting 9A78211436F6D425EC38F5C4E02270801F3524F8 64 0 64
Reeks A Samenvatting 6DCD4CE23D88E2EE9568BA546C007C63D9131C1B 65 0 65
Reeks B Samenvatting AE4F281DF5A5D0FF3CAD6371F76D5C29B6D953EC 66 0 66
Reeks C Samenvatting 32096C2EOEFF33D844EE6D675407ACE18289357D 67 0 67
Reeks D Samenvatting 50C9E8D5FC98727B4BBC93CF5D64A68DB647F04F 68 0 68 20 Reeks E Samenvatting E0184ADEDF913B076626646D3F52C3B49C39AD6D 69 0 69
Reeks F Samenvatting E69F20E9F683920D3FB4329ABD951E878B1F9372 70 0 70
Reeks G Samenvatting A36A6718F54524D846894FB04B5B885B4E43E63B 71 0 71
Reeks H Samenvatting 7CF184F4C67AD58283ECB19349720B0CAE756829 72 0 72
Reeks I Samenvatting CA73AB65568CD125C2D27A22BBD9E863C10B675D 73 0 73 25 Reeks J Samenvatting 58668E7669FD564D99DB5D581FCDB6A5618440B5 74 0 74
Reeks K Samenvatting A7EE38BB7BE4FC44198CB2685D9601DCF2B9F569 75 0 75
Reeks L Samenvatting D160E0986ACA4714714A16F29EC605AF90BE704D 76 0 76
Reeks M Samenvatting C63AE6DD4FC9F9DDA66970E827D13F7C73FE841C 77 0 77
Reeks N Samenvatting B51A60734DA64BE0E618BACBEA2865A8A7DCD669 78 0 78 30 Reeks O Samenvatting 08A914CDE05039694EF0194D9EE79FF9A79DDE33 79 0 79
Reeks P Samenvatting 511993D3C99719E38A6779073019DACD7178DDB9 80 0 80
Reeks Q Samenvatting C3156E00D3C2588C639E0D3CF6821258B05761C7 81 0 81
Reeks R Samenvatting 06576556D1AD802F247CAD11AE748BE47B70CD9C 82 0 82
Reeks S Samenvatting 02AA629C8B16CD17A44F3A0EFEC2FEED43937642 83 0 83 35 Reeks T Samenvatting C2C53D66948214258A26CA9CA845D7AC0C17F8E7 84 0 84
Reeks U Samenvatting B2C7C0CAA10A0CCA5EA7D69E54018AE0C0389DD6 85 0 85
Reeks V Samenvatting C9EE5681D3C59F7541C27A38B67EDF46259E187B 86 0 86
Reeks W Samenvatting E2415CB7F63DF0C9DE23362326AD3C37A9ADFC96 87 0 87
Reeks X Samenvatting C032ADC1FF629C9B66F22749AD667E6BEADF144B 88 0 88 40 Reeks Y Samenvatting 23EB4D3F4155395A74E9D534F97FF4C1908F5AAC 89 0 89 1028971 40
Reeks Z Samenvatting 909F99A779ADB66A76FC53AB56C7DD1CAF35D0FD 90 0 90
Reeks [ Samenvatting 1E5C2F367F02E47A8C160CDA1CD9D91DECBAC441 91 0 91
Reeks \ Samenvatting 08534F33C201A45017B502E90A800F1B708EBCB3 92 0 92
Reeks ] Samenvatting 4FF447B8EF42CA51FA6FB287BED8D40F49BE58F1 93 0 93 5 Reeks Λ Samenvatting 5E6F80A34A9798CAFC6A5DB96CC57BA4C4DB59C2 94 0 94
Reeks _ Samenvatting 53A0ACFAD59379B3E050338BF9F23CFC172EE787 95 0 95
Reeks ' Samenvatting 7E15BB5C01E7DD56499E37C634CF791D3A519AEE 96 0 96
Reeks a Samenvatting 86F7E437FAA5A7FCE15D1DDCB9EAEAEA377667B8 10 Gevonden reeks a met Samenvatting 86F7E437FAA5A7FCE15D1DDCB9EAEAEA377667B8
Samenvatting_reeks 86F7E437FAA5A7FCE15D1DDCB9EAEAEA377667B8
In één uitvoeringsvorm kan het gebruik van een 15 modulus het totaal aantal iteraties met 9 of 10 reduceren. Bijvoorbeeld 97 mod 10 = 7, zodat elk 10de getal plus 7 gehasht wordt teneinde te verifiëren of de hash overeenstemt met de door een handtekening gehashte originele reeks. Indien een overeenstemming optreedt, is de reeks gevonden.
20 De samenvatting van reeks a is 86F7E437FAA5A7FCE15D1DDCB9EAEAEA377667B8 Samenvatting reeks: 86F7E437FAA5A7FCE15D1DDCB9EAEAEA377667B8:reeks a! 25 Reeks Samenvatting 5D1BE7E9DDA1EE8896BE5B7E34A85EE16452A7B4 707
Reeks Samenvatting A8ABD012EB59B862BF9BC1EA443D2F35A1A2E222 17 0 17
Reeks Samenvatting 27F57CB359A8F86ACF4AF811C47A6380B4BB4209 27 0 27
Reeks % Samenvatting 4345CB1FA27885A8FBFE7C0C830A592CC76A552B 37 0 37
Reeks / Samenvatting 42099B4AF021E53FD8FD4E056C2568D7C2E3FFA8 47 0 47 30 Reeks 9 Samenvatting 0ADE7C2CF97F75D009975F4D720D1FA6C19F4897 57 0 57
Reeks C Samenvatting 32096C2E0EFF33D844EE6D675407ACE18289357D 67 0 67
Reeks M Samenvatting C63AE6DD4FC9F9DDA66970E827D13F7C73FE841C 77 0 77
Reeks W Samenvatting E2415CB7F63DF0C9DE23362326AD3C37A9ADFC96 87 0 87
Reeks a Samenvatting 86F7E4 37FAA5A7FCE15D1DDCB9EAEAEA377667B8 97 0 97 35 1028971 41
Gevonden reeks a met Samenvatting 8 6F7 E4 37 FAA5A7 FCE15D1DDCB9EAEAEA37 7 667 B8
Samenvatting_reeks: 86F7E437FAA5A7FCE15D1DDCB9EAEAEA377667B8 5
De becommentarieerde broncode zsha_str.c, welke is opgenomen in de bijgevoegde Bijlage 2, omvat een nieuwe modificatie van het publieke domeinprogramma shal.c, met de toevoeging van een SHA iterator itereerfunctie en een 10 modificatie van de hoofdfunctie voor reeksen.
In één uitvoeringsvorm, waarin een bestand klein is, kan men de hash appenderen aan een bestandsnaam.
Bijvoorbeeld: test.xyz met inhoud "a" (zoals in het bovengenoemde 15 voorbeeld) wordt: test.xyz.xz.sha.8 6F7E4 37 FAA5A7 FCE15D1DDCB9EAEAEA377 667B8.xz, en de inhoud van het bestand (10 tot 100 bytes) kan nul in plaats van 1 zijn. Dit maakt het mogelijk dat zeer kleine bestanden, die gewoonlijk opgeslagen worden als 4k blokken, 20 om voordeel te trekken uit bestandsnamen van 255 karakters en hash bestandsnaam toevoegingen teneinde de gegevens als lengte 0 te coderen. Merk op hier dat xyz en xz additionele beschrijvers voor het bestand kunnen zijn. Test.xyz.xz kan bijvoorbeeld test.archief.01 representeren.
25 Gedurende de validatie zou een scan uitkijken naar de bestandsnaam alsmede de compressiewerkwijze (here HASHTYPE), en een controlesomwaarde (hier HASHDIGEST). Andere beschrijvers kunnen evenzeer aan de bestandsnaam geappendeerd worden. De gemodificeerde bestandsnaam zou bijvoorbeeld 30 gerepresenteerd kunnen worden als: [BESTANDSNAAM].xz.[HASHTYPE].[HASHSAMENVATTING].zz, of [BESTANDSNAAM].xz.[HASHTYPE].[HASHSAMENVATTING].
1028971 42 [MODULUS].[HASHTYPE].[HASHSAMENVATTING].xz
Het Activeperl 5.6 sha6b.pl.bestand in Bijlage 2 voegt XML en DTD kop informatie toe alsmede een directoryterugkeer, vloer en commando-opties en 5 plafondberekeningen. Het bestand omvat tevens modulusberekening. Het heeft tevens uitgebreide opties om uit te kiezen welke dingen gedraaid moeten worden. De Perl script demonstreert verder de mogelijkheid en bruikbaarheid van XML handtekening tot voorbij de W3C. De Perl bestanden zijn 10 afhankelijk van bepaalde bekende vensters Activeperl modules. Bovendien kunnen de compress.xml bestanden gezipt worden, waardoor de grootte met ongeveer 3 tot 1 ten opzichte van de XML uitvoer verkleind wordt. Tevens in Bijlage 2 zijn de palindroom.txt.xml en comprimeer_modulus2.xml bestanden.
15
Mark-uo compressie lav out
Compressie mark-up bestanden kunnen XML, SGML of binaire bestanden zijn met bepaalde mark-up tags. Een mark-up taal kan gebruikt worden samen met een document typedefinitie 20 ("DTD") teneinde het compressiebestand te definiëren. Een DTD
kan gebruikt worden om te valideren dat het compressiebestand correct is en niet beschadigd is of gegevens bevat om decompressie toe te staan. Een voorbeeld van een DTD bestand volgt.
25 <bestandsnaam>bestand</bestandsnaam> —De bestandsnaamtag is de invoer bestandsnaam.
<Bloknummer="ln> — De bloktag is het bestandsblok 1 met het getal "no" attribuut als 1.
30 <Blokgrootte>20000</blokgrootte> —De blokgroottetag duidt de grootte van het gehashte blok aan.
<Bloklengte>20000</bloklengte> — De bloklengte duidt de lengte aan van het gehashte bestandsblok.
</opgevuld> — De opvultag duidt aan of het blok met nullen opgevuld is.
1 0 2 8 971 43 <sha-omgekeerd>42ded03c7 6f2e69e8 614b999b dll23333 8de47d88</sha-omgekeerd> — sha-omgekeerd is de SHA hash van de omgekeerde bytes van blok 1.
<sha>alllle36 4706816a ba3e2571 7850c26c 9cd0d89d</sha> — De sha tag is 5 de SHA gehashte bytes van het blok in normale volgorde.
<crc>12983712900000</crc> — De crc tag is de CRC van het blok. </Bloknummer="l"> — Het einde van blok 1.
<Bloknummer="2"> — De start van blok 2.
<blokgrootte>20000</blokgrootte> 10 <bloklengte>20000</bloklengte> </opgevuld> <sha-omgekeerd>a9b00e364706816aba3e25717850c26c9cd0d89d</sha-omgekeerd> <sha> 2d700c01 ff54cfdl ba6771c5 99clac64 baflacc7</sha> <crc>129837129213123321</crc> 15 </bloknummer="2"> <bloknummer="3"> <blokgrootte>20000</blokgrootte> <bloklengte>20000</bloklengte> </opgevuld> 20 <sha-omgekeerd>a92222e364706816aba3e25717850c26c9cd0d89d</sha-omgekeerd> <sha> 2d795c01 ff54cfdl ba6771c5 99clac64 baflacc7</sha> <crc>129837129</crc> </bloknummer=,,3"> <bloknummer="4”> 25 <blokgrootte>20000</blokgrootte> <bloklengte>20000</bloklengte> </opgevuld> <sha-omgekeerd>a99233e364706816aba3e25717850c26c9cd0d89d</md5> <sha> 2deffc01 ffaaaadl ba6771c5 99clac64 baflacc7</sha> 30 <crc>102839203342234</crc> </bloknummer="4"> <bloknummer="5"> <blokgrootte>20000</blokgrootte> <bloklengte>20000</bloklengte> 35 </opgevuld> <sha-omgekeerd>a883e364706816aba3e76555850c26c9cd0d89d</sha-omgekeerd> <sha> 2d795c01 ffffff ba6771c5 99clac64 baflacc7</sha> <crc>1298371291233</crc> </bloknummer="5"> 40 <bloknummer="6"> 1028971 44 <blokgrootte>20000</blokgrootte> <bloklengte>20000</bloklengte> </opgevuld> <sha-omgekeerd>eeeeee364706816aba3e25717850c26c9cd0d89d</sha-omgekeerd> 5 <sha> 2d00fc01 ffeeeedl ba6771c5 99clac64 baflacc7</sha> <crc>12982344129</crc> </bloknuramer="6"> <bloknummer="7"> <blokgrootte>20000</blokgrootte> 10 <bloklengte>293</bloklengte> </opgevuld> <sha-orogekeerd>22222e364706816aba3e25717850c26c9cd0d89d</sha-omgekeerd> <sha> OOOOOcOl ff54cfdl ba6771c5 99clac64 baflacc7</sha> <crc>129833129</crc> 15 </bloknummer="7"> </bestand> — De bestandstag is het einde van een bestandsmarkering.
1 02 8971 45
Boodschapsamenvattingprocessor
In één uitvoeringsvorm is een boodschapsamenvattingprocessor bij voorkeur aangepast om de i 5 bovenbeschreven systemen en werkwijzen toe te passen. Een dergelijke processor kan een klantgericht (custom) microprocessor zijn die gericht is op het vinden van blokken van gegevens behorend bij een of meer controlesomwaarden.
Deze processor is gerelateerd aan gegevenscompressie met 10 meervoudige boodschapsamenvattingen. Deze kan samenvattingcompressie duizenden, miljoenen of miljarden keren versnellen en maakt samenvatting controlesomcompressie uitvoerbaar. In één uitvoeringsvorm zou een samenvattingprocessor een willekeurig aantal processoren 15 kunnen hebben, bijvoorbeeld honderden of duizenden processorkernen en duizenden processoren afhankelijk van de configuratie en transistorgrootte én ander features waaronder i geheugen kerngrootte en vaste programmering of vaste-bedrade (hard wired) programmering. In één uitvoeringsvorm kan een 20 boodschapsamenvattingprocessor één processor zijn.
Figuur 4 is een diagram van een boodschapsamenvattingprocessor. Getoond in Figuur 4 is een 12 kern boodschapsamenvattingprocessor 402. De genoemde processor omvat 12 parallelle processoren. Dit is echter 25 slechts een voorbeeld en een willekeurig aantal processoren kan gebruikt worden. Tevens getoond in Figuur 4 zijn processorstempel (die) 404, coördinator CPU 406, chip pakket 408 en parallelle samenvattingkernen 410a-410n. Elementen van deze componenten worden hieronder beschreven. Voorbeeld 30 features van een Boodschap Samenvatting Processor (Message Digest Processor/MDP):
Maakt het voor een samenvatting mogelijk om snel parallel geautoriseerd te worden.
1028971 46
Een MDP kan valideren of een gegeven controlesom uniek is of een binair getal behorend bij een gegeven controlesom lokaliseren.
Een Boodschap Samenvatting Processor kan bestaan als 5 een computer coprocessor die helpt bij het verifiëren en valideren van handtekeningen voor een bereik van getallen teneinde de originele binaire invoer te vinden.
Meervoudige Boodschap Samenvatting Processor Chips kunnen parallel aan elkaar geketend worden.
10 Een Boodschap Samenvatting Processor kan een meesterprocessor 406 hebben, die bepaalt of de uitvoering stopt of doorgaat wanneer een binair handtekeninggetal gevonden is of coördineert de uitvoering.
Een Boodschap Samenvatting Processor kan een 15 microkern architectuur genoemd worden. Een microkernprocessor bestaan uit honderden of duizenden kleine processorkernen op een enkele processorchipstempel. Een grote kernprocessor heeft minder dan honderd kernen.
Een transistor chipstempel is verdeeld in parallelle 20 verwerkingskernen (410a-410n) met een minimale grootte. Elke kern heeft een kraspad (scratchpad) of buffergeheugen en programmageheugen teneinde een binair getal te testen op een samenvatting of om samenvattingen te testen tegen een gegeven samenvatting of modulus.
25 Processorinstructies bestaan uit een handtekeninggroepbundel en modulus en bytegrootte. Processorinstructies kunnen tevens bestaan uit programmacode om een digitale handtekening te verwerken. De instructies zijn VLIW of zeer grote instructiewoorden en kunnen 30 verscheidene 100 bytes lang zijn. Instructies kunnen variabele lengtegegevens hebben. Instructies kunnen bestaan uit gegevens en instructiehandtekeningcode.
1028971 47
De processor kan meervoudige toepassingsgerichte processorkernen per processor hebben.
Processor SIMD (Enkelvoudige Instructie Meervoudige Gegevens/Single Instruction Multiple Data).
5 De processor kan een groep van n bytes vinden die corresponderen met een gegeven handtekening of modulus of controlesom of een groep daarvan.
Processorinstructies kunnen groepen digitale handtekeningen en moduleparen hebben die opgebouwd zijn uit 10 een controlesom behorend bij een gespecificeerde grootte binaire byte teneinde een gespecificeerde binair getal te vinden dat overeenstemt met de controlesomgroep.
Onafhankelijke Paralle verwerking maakt het mogelijk dat elke eenheid onafhankelijk draait.
15 De controlesom of handtekeningcode kan verdeeld worden over de processoren.
Elke processor kan de bewerking stopzetten indien een binair getal gevonden is dat correspondeert met een gegeven handtekening of modulus en doorgaan indien er collisies zijn. 20 Elke processorkern heeft een minimum aantal transistoren voor een maximale verwerking. De 68000 heeft 68000+ transistoren maar zou een ideale grootte hebben als multikern handtekeningprocessor.
Elke processorkern heeft 512 of meer wat kleinere 25 byte geheel getallen (groot geheel getal) berekeningseenheid of geheugenbuffer teneinde het mogelijk te maken dat om getallen parallel en iteratief te testen ten opzichte van een controlesom of handtekening teneinde en overeenkomend getal met een ingestelde groep handtekeningen te vinden.
30 Elke processor heeft voldoende programmering om meervoudige samenvattingen (SHA, MD5, Ripe etc.) tegelijkertijd te berekenen en de resultaten op te slaan in registers ter vergelijking met een gegeven controlesomgroep.
1028971 48
Elke processorkern heeft hashregisters behorend bij verschillende samenvattingen (SHA register, MD5 register,
Ripe register), zoals ingebedde code of inlaadbare instructiecode. De instructie kan in een buffer zitten en kan 5 verdeeld worden naar de kernen in een processor.
De Samenvatting Instructies (Digest Instructions) voor een gegeven samenvatting kunnen vast bedrade chips zijn of geprogrammeerd zijn in een buffer.
Indien een processor bijvoorbeeld een budget van 300 10 miljoen transistoren zou hebben, zou je 1000 of meer processoren voor een kerngrootte van 300000 transistorén per processorkern moeten verpakken. Elke processorkern bevat registers en een grote geheel-getal-ondersteuning van 512 bytes of meer en meervoudige boodschapsamenvattingregisters 15 en programmageheugen. Een processor kan zelfs een miljoen kernen hebben.
In één uitvoeringsvorm bestaat een processorinstructie uit een willekeurig aantal samenvattingen (controlewaarden), een modulusgetal, een modulusrest, een 20 modulusexponent, en collisiegetallen indien er één is voor een gegeven groep samenvattingen, alsmede controlesom instructiecode voor de verschillende samenvattingen. Deze instructies kunnen tijdens de looptijd (run time) geladen worden in het kerngeheugen of geladen worden vanaf een 25 centrale flits-chip die de boodschapsamenvattingprogrammering kan actualiseren en deze kan verdelen over de kernen. Aan elke kern wordt een iteratiegetal toegewezen om het samenvattingsblok te vermenigvuldigen met het kerngetal.
Zoals boven beschreven is zou een iteratie, indien er 30 duizenden kernen zijn, beschreven kunnen worden als n*het modulusgetal*het kerngetal+het groot-geheel-getalregistergetal. De rest is geladen in een 512-bytes grote-geheel-getalregister. Indien er een exponent is, wordt 1028971 49 het modulusgetal verhoogd tot de macht van de exponent en toegevoegd aan de rest in het groot-geheel-getalregister.
Elke iteratie verhoogt de processor het 512 bytes grote-geheel-getal met ((processorgetal + startgetal) het 5 modulusgetal + (het registergetal of de rest)). De processor draait een willekeurig aantal controlesomtesten op het groot-geheel-getal (dat van een willekeurige grootte kan zijn, maar hier 512 bytes of groter is) een test om te zien of er een overeenstemming is met een gegeven pakket van controlesommen 10 (boven beschreven).
! Indien processorkern 12 bijvoorbeeld een 512-bytes geheel getal vindt dat overeenstemt met een gegeven boodschapsamenvatting of groep, kan deze een interrupt terugsturen naar een wachthouderprocessor. Een 15 wachthouderprocessor bepaalt of er mogelijke collisies zijn en stopt de processoren en stuurt het groot-geheel-getal blok van bytes terug die zich in de kern 12 bevinden indien er geen andere collisies zijn. Het hebben van meer dan een samenvatting maakt onderlinge uitsluiting mogelijk. Het 20 hebben van een 512 bytes blok met 3 of 4 samenvattingen van 20 bytes en een modulus rest en exponent maakt een parallelle en verdeelde zoekbewerking van een blok dat met de samenvattingen overeenstemt, mogelijk. Tevens kan een modulus gekozen worden die een rest produceert met het kleinste 25 aantal cijfers.
Een parallelle modulusscan kan gedemonstreerd worden door een itaratietabel van een groep van n processoren * n cpu kernen per processor. Om dit te verduidelijken zou het cpu iteratieresultaat * modulus+rest (bijvoorbeeld de hash 30 van het getal of samenvatting) moeten zijn. Het zou tevens de modulus kunnen zijn die verhoogd is tot een macht + de modulus * n cpu iteratieresultaat + de rest gehasht. Dit is gerelateerd aan het Chinese Rest Theorema dat zich bezighoudt 1028971 50 met vragen zoals: er is een getal n waarvan de rest gedeeld door 12 is 3 en gedeeld door 17 gelijk is aan 6 en gedeeld door 8 gelijk aan 2, wat is het getal? Het Chinese Rest Theorema zal dit resultaat stoppen in termen van een 5 vergelijking n * modulus + de rest (dat wil zeggen nu + rest waarin n de modulus is en u een onbekend getal is). Een juiste variant van het Chinese Rest Theorema is (nAz+n*u+rest=een getal dat de getallen karakteriseert met een logaritme en exponenten waarin n de modulus is en u en z 10 verscheidene getallen zijn plus de rest. Een voorbeeld is 45 modulus 2 welke de rest 1 is. Het getal 2Λ5=32. 2*6=12. Derhalve (2Λ5)+(2*6)+1=45. Het getal 47 mod 3=2. 3Λ3=27. 2*9=18. Derhalve (3Λ3)+(2*9)+2=47).
Neem bijvoorbeeld het aantal processoren, (als 15 voorbeeld 10 processoren met 1 kern per processor). Ter iteratie 1 start elke processor met een kerngetal 1 tot en met 10. Vervolgens wordt het totaal aantal processoren toegevoegd aan het startgetal van iteratie 1 voor iteratie 2 tot een getal n. Hieronder is een tabel weergegeven voor een 20 10-kerns processor met de kerniterand van 10.
In iteratie 1 wordt aan elke kern of processor een initieel getal van 1 tot 10 toegevoegd. Getoond in iteratie 2 is de processor startgetalwaarde+het aantal processoren en kernen (10 processoren of kernen). Iteratie 3 of meer toont 25 het startgetal plus de kern of het processortotaal.
Dit is een iteratietabel voor 10 microprocessoren.
Het resulterende getal wordt parallel vermenigvuldigd met de modulus+ de rest en parallel getest teneinde een overeenstemmende hash te vinden. De getallen 1 tot en met 10 30 kunnen tevens toegewezen worden als processor ID's of startwaarden of getallen. Aan de processoren kan tevens 0 tot en met 9 toegevoegd worden.
1028971 51
IteratietabeX cpu η (1 tot en met 10) I 2 3456789 10: Iteratie 1 aan elke kern wordt een getal toegevoegd II 12 13 14 15 16 17 18 19 20 : Iteratie 2 =startwaarde n+10 (cpu's) 21 22 23 24 25 26 27 28 29 30 : Iteratie 3 =n+10: Derhalve 11+10-21.
5 31 32 33 34 35 36 37 38 39 40 : Iteratie 4 41 42 43 44 45 46 47 48 49 50 : Iteratie 5 51 52 53 54 55 56 57 58 59 60 : Iteratie 6 61 62 63 64 65 66 67 68 69 70 : Iteratie 7 10 Iteratietabel cpu n (0 tot en met(9)
Voor Iteratie 1 Aan elke processor wordt een initieel getal toegevoegd
Aan processor 1 wordt toegevoegd een getal ID van 0 15 Aan processor 2 wordt toegevoegd een getal ID van 1 Aan processor 3 wordt toegevoegd een getal ID van 2
Aan processor 4 wordt toegevoegd een getal ID van 3
Aan processor 5 wordt toegevoegd een getal ID van 4
Aan processor 6 wordt toegevoegd een getal ID van 5 2 0 Aan processor 7 wordt toegevoegd een getal ID van 6
Aan processor 8 wordt toegevoegd een getal ID van 7
Aan processor 9 wordt toegevoegd een getal ID van 8
Aan processor 10 wordt toegevoegd een getal ID van 9 25 0123456789: Iteratie 1 Wijs aan elke kern een getal (0-9) toe 10 11 12 13 14 15 16 17 18 19 : Iteratie 2=startwaarde n+10 (cpu's) 20 21 22 23 24 25 26 27 28 29 : Iteratie 3 Nieuw getal is de eerdere waarde n+10: Derhalve voor cpu 0, is iteratie 3 waarde 20, 10+10=20.
30 31 32 33 34 35 36 37 38 39 : Iteratie 4 40 41 42 43 44 45 46 47 48 49 : Iteratie 5 30 50 51 52 53 54 55 56 57 58 59 : Iteratie 6 60 61 62 63 64 65 66 67 68 69 : Iteratie 7
Voorbeeld 1: Een getal gedeeld door (modulus) 12 is 2 en heeft een handtekening van x, vindt het getal.
1028971 52
In deze iteratietabel splitst elk van de processoren de getallen op en controleert deze om te zien of er een gegeven getal u*de modulus*de rest 2 is, waarvan de handtekening of de controlesom (waarin een controlesom een 5 groep handtekeningen of modulussen of CRC's kan zijn) gelijk is aan x. De processoren kunnen dit parallel doen en uitvoering onderbreken of door laten gaan indien er een collisie is waarin een of meer getallen een handtekening of handtekeningen delen en er een collisiegetal is waarnaar 10 gezocht wordt.
(0*12+2=2) (1*12+2=14) (2*12+2=26) (3*12+2=38) (4*12+2=50) (5*12+2=62) (6*12+2=74) (7*12+2=86) (8*12+2=98) (9*12+2=110) : Iteratie 1 15 (10*12+2=122) (11*12+2=134) (12*12+2) (13*12+2) (14*12+2) (15*12+2) (16*12+2) (17*12+2) (18*12+2) (19*12+2):
Iteratie 2 = startwaarde n + 10 (cpu's) (20*12+2) (21*12+2) (22*12+2) (23*12+2) (24*12+2) (25*12+2) (26*12+2) (27*12+2) (28*12+2) (29*12+2) ...........: 20 Iteratie 3 = voorafgaande n + 10: Derhalve 10 + 10 = 20.
Het gaat door met toevoegen en hashen of het doorlopen van controlesomtesten op het resulterende binaire getal in elke processor totdat het een overeenstemmende 25 controlesom of handtekening vindt of de bewerking gestopt wordt.
Voor (0*12+2=2) wordt het resultaat 2 gestuurd door een controlesom en indien de uitvoer controlesom overeenstemt met een gegeven controlesom en geen collisiegetallen bestaan, 30 wordt het getal teruggestuurd.
Dit is een tabel van 4 processorkernen startend met 1 tot en met 3. Voor elke startprocessorwaarde, wordt de eerdere waarde opgehoogd met 4 voor elke iteratie.
1028971 53
Iteratietabel cpu η (1 tot en met 4 0123: Iteratie 1: Dit wordt vermenigvuldigd met de modulus plus de rest en gehasht en vervolgens getest.
4567: Iteratie 2 8 9 10 11 : Iteratie 3 5
Het compressie controlesomarchief DTP
Er zijn verscheidene XML DTD's om handtekeningen en hashes te registreren. Dit XML DTS is ontworpen om de mark-up uit te drukken die vereist is voor het genereren van XML 10 compressiebestanden met Boodschapsamenvattingen (Message Digests) en controlesommen. Een pakket handtekeningen en constrictoren verschaft een werkwijze voor het vinden door brute kracht van een overeenstemmend blok van gegevens behorend bij een controlesom. Een compressie XML DTD gebruikt 15 de digitale handtekeningen en hashes en Modulussen teneinde een unieke identificator uit te drukken die gebruikt kan worden omgekeerd te scannen op een gegevensblok met behulp van de handtekeningattributen. Een normale handtekening Boodschapsamenvatting DTD is tamelijk algemeen. Het voordeel 20 van dit DTD is dat het flexibel kan zijn door het mogelijk te maken voor een programma om het XML formaat als attributen of tags te kiezen. De XML mark-up bestaat uit hashpakketten die corresponderen met bestanden binnen een archief. Het archief is een XML boom, die bestanden en directory's en 25 bestandsstructuur en de bijbehorende handtekening en bestand metagegevens bevat. Dit heeft twee vormen van gebruik, één waarvan is om de gegevens te hergenereren en de andere is om veiligheid mogelijk te maken door het verschaffen van een verbeterd Boodschapsamenvattings- of handtekeningsbestand 30 voor het verifiëren van de inhoud van de gegevens en tevens voor het verifiëren dat de gegevens niet veranderd of aangepast zijn.
1028971 54
Het XML compressie-archief DTD maakt het voor de inhoud van het XML archief mogelijk om geverifieerd en gecontroleerd te worden. Een bestand kan getest worden op DTD om te verzekeren dat de structuur en de inhoud geldig zijn.
5 XML maakt het mogelijk dat de structuur van een compressiebestand gezien wordt. De compressie-archiefgegevens worden normaliter niet gezien in gewone binaire gecomprimeerde bestanden. Door een bestand in XML te hebben, wordt het mogelijk verscheidene structuren te zien welke 10 structuren de bestandsattributen aanduiden. Het bezwaar van XML is dat er enige overhead is in de uitdrukking van de gegevens in tags versus de binaire uitdrukking van de gegevens. De compress.xml bestanden kunnen echter gezipt of gecomprimeerd worden met een gewone bestandscompressor 15 teneinde hun grootte te reduceren.
Het XML compressie-archief kan gebruikt worden als een metabasis om systeembestandsveranderingen te registreren en om de directory boom van een computerbestandsysteem te doorlopen en een veel grotere veiligheid en 20 integriteitscontrole te verschaffen.
He volgende is een demonstratief XML DTD van een handtekeningarchief voor compressie en gegevensintegriteitscontrole.
25 Taas en attributen en voorbeelden
Er zijn verscheidene XML DTD's om handtekeningen en hashes te registreren. Dit XML DTD is ontworpen om de mark-up uit te drukken die vereist is voor het genereren van XML compressiebestanden met Boodschapsamenvattingen en 30 controlesommen. Een pakket van handtekeningen en constrictors verschaft een werkwijze voor het vinden door middel van brute kracht van een overeenstemmend gegevensblok behorend bij een controlesom. Een Compressie XML DTD gebruikt de digitale 1028971 55 handtekeningen en hashes en modulussen teneinde een unieke identificator uit te drukken die gebruikt kan worden om omgekeerd te scannen naar een gegevensblok met de handtekeningattributen. Een normale handtekening 5 Boodschapsamenvatting DTD is tamelijk algemeen. Het voordeel van dit DTD is dat het flexibel kan zijn door het voor een programma mogelijk te maken om het XML formaat als attributen of tags te kiezen. De XML mark-up bestaat uit hashpakketten die corresponderen met de bestanden binnen een archief. Het 10 archief is een XML boom die de bestanden en directory's en bestandstructuur en bijbehorende handtekening en bestandsgegevens bevat. Dit heeft twee vormen van gebruik, één waarvan is om de gegevens te hergenereren, de andere is voor veiligheid te zorgen door het verschaffen van een 15 verbéterde Boodschapsamenvatting of handtekeningbestand voor het verifiëren van de inhoud van de gegevens en tevens voor het verifiëren dat de gegevens niet veranderd of aangepast zijn.
Het XML compressie-archief DTD maakt het mogelijk dat 20 de inhoud van het XML archief geverifieerd en gecontroleerd wordt. Een bestand kan getest worden tegen een DTD teneinde te verzekeren dat de structuur in de inhoud geldig zijn.
XML maakt het mogelijk dat de structuur van een compressiebestand gezien wordt. De compressie-archiefgegevens 25 worden normaliter niet gezien in gewone binaire gecomprimeerde bestanden. Door een bestand in XML te hebben, wordt het mogelijk verscheidene structuren te zien welke structuren de bestandsattributen aanduiden. Het bezwaar van XML is dat er enige overhead is in de uitdrukking van de 30 gegevens in tags versus de binaire uitdrukking van de gegevens. De compress.xml bestanden kunnen echter gezipt of gecomprimeerd worden met een gewone bestandscompressor teneinde hun grootte te reduceren.
1028971 56
Het XML compressie-archief kan gebruikt worden als een metabasis om systeembestandsveranderingen te registreren en om de directory boom van een computerbestandsysteem te doorlopen en een veel grotere veiligheid en 5 integriteitscontrole te verschaffen.
He volgende is een demonstratief XML DTD van een handtekeningarchief voor compressie en gegevensintegriteitscontrole.
De mark-up van een archiefbestand kan uitgedrukt 10 worden als tags of als attributen.
Het bestand uit is een voorbeeld van de getagde (geëtiketteerde) mark-up van een XML archief. Elke eigenschap van een computerbestand van de bestandsnaam of bestandsgrootte of bestandslengte tot de corresponderende 15 bestanden digitale handtekeningen of boodschapsamenvattingen of controlesommen kunnen als tag gecodeerd worden. In dit geval representeert de SHA tag de SHA handtekening van het bestand en representeert SHA_OMGEKEERD het omgekeerde van het bestand door de SHA gestuurd wordt. In XML compressie-20 archieven moeten de verscheidene tags en hun betekenis goed gedefinieerd worden. De SHAMODULUS tag representeert het bestand en zijn bijbehorende inhoud en een groot-geheel-getal van duizenden bytes in de modulus rest van de SHA samenvatting. De MODULUSEXPONENT representeert de macht tot 25 welke een modulus verheven kan worden door gebruikmaking van logaritmes teneinde een exponent te creëren. Een logaritme van de bestandsbytes, omgezet in een groot-geheel-getal en modulus gebruikt als basisgetal creëert een exponent. Deze binnen de MODULUSEXPONENT tag gevangen exponent, creëert een 30 exponent die de exponent macht zal representeren waartoe de modulus verheven kan worden om het bestandsgetal te berekenen. Om de originele groot-geheel-getalwaarde van het bestand of het blok te vinden, wordt de modulus verheft tot 1028971 57 een exponent en toegevoegd door een meervoud van de modulus verhoogd met n plus de rest en door de samenvatting gestuurd. Indien er geen exponent is, zou de modulus opgehoogd worden met m*modulus plus de modulusrest.
5 <?xml versie="10" codering="UTF-8"? <!DOCTYPE COMPRIMEER_ARCH SYSTEEM "compress2.dtd"> <BESTAND> <NAAM>uit</NAAM> 10 <GROOTTE>3961651</GROOTTE> <SHA>54173139a00072fdfa3988flb8cfOe4e9baf31ee</SHA> <SHA_0MGEKEERD>5563965239ce4ae€e66b23ed68afcdb83235577b </SHA_OMGEKEERD> <MD5>fllef3dfe3815469a41d8ec29157d32c</MD5> 15 <MD4>e0f9al30b5eal256d8c75126d26a6179</MD4> <MD2>26080751cl200a69978fdad60f886flf</MD2> <VLOER/> <PLAF0ND/> <SHAMODULUS>31222</SHAMODULUS> 20 <MODULUSEXPONENT>222</MODÜLÜSEXPONENT> <C0LLISIE_GETAL>12</COLLISIE_GETAL> </BESTAND>
Een attribuutarchief codeert de XML gegevens in tags 25 met attributen die abstracter zijn. Het bestand kan geheel met tags of attributen gecodeerd worden of kan door een samenstelling van zowel tags als attributen gecodeerd worden.
In dit voorbeeld is de bestandsnaam palindroom.txt en representeert de md tag de boodschapsamenvatting, waarbij 30 attribuut t het samenvattingstype representeert, welke gelijk is aan het veilige hashalgoritme (Secure Hash Algorithm/SHA). De mdr tag representeert de bestandsgegevens die omgekeerd door de SHA hash gestuurd worden. De md tag met het t 1028971 58 attribuut van MD5 zou de MD5 boodschapsamenvatting representeren. De vloer of plafond tag zou een factor representeren die hoger is dan of lager is dan het bestand-groot-geheel-getal (dat de numerieke waarde of het product 5 van de bytes van een bestand representeert) zijn.
<?xml versie="l.0" codering="UTF-8"?> <!DOCTYPE COMPRIMEER_ARCH SYSTEEM "compress2.dtd"> <ARCH> 10 <BESTAND> <NAAM>palindroom.txt</NAAM> <GR00TTE>12</GR00TTE> <md t="SHA">d2d2922f9c0bea8ac448a2c67741eca8bba4a271</md> <mdr t="SHA">d2d2922f9c0bea8ac448a2c67741eca8bba4a271</mdr> 15 <md t="RIPE160">b7bda536ef319629b87bla564678907834bdabae</md> <mdr t="RIPE160">b7bda536ef319629b87bla564678907834bdabae</ mdr> <md t="MD5">86e444818581edddef062ad4ddcd00dd</md> <md t="MD4,,>ae93876f99f0013b969313ee5483c051</md> 20 <md t="MD2">141ecbaal4a70771003b4b6973522cl4</md> <MILJOENMODULUS>+98097</MILJOENMODULUS> <VL0ER>+54</VL0ER> <PLAFOND>+55</PLAFOND> </BESTAND> 25 </ARCH>
De volgende sectie verschaft een lijst van de verscheidene tags en hun gebruik.
30 ELEMENT ARCH
Model <!ELEMENT ARCH (DIRECTORY?,BESTAND+)> 1028971 <!ATTLIJST ARCH naam CGEGEVENS #GEÏMPLICEERD> 59
Beschrijving
Het element Arch representeert de start van het 5 compressie-archief.
Gebruik
ELEMENT DIRECTORY
10
Model <!ELEMENT DIRECTORY (NAAM?, WACHTWOORD?, BESTAND+)> <!ATTLIJST DIRECTORY N CGEGEVENS #GEÏMPLICEERD> <!ATTLIJST DIRECTORY S CGEGEVENS #GEÏMPLICEERD> 15
Beschrijving
Het element Directory representeert de start van directorybestandattributen van een archief. Een directory bestaat uit meer dan een bestandselement of tag. Een 20 directory heeft een naam of wachtwoordtag die optioneel is. De directorynaam kan tevens uitgedrukt worden in het n attribuut. Het s attribuut kan tevens de grootte of het aantal directorybestanden aanduiden.
25 Gebruik
ELEMENT DIR
Model 30 <!ELEMENT DIR (NAAM?, WACHTWOORD?, BESTAND+)> <!ATTLIJST DIR N CGEGEVENS #GEÏMPLICEERD> <!ATTLIJST DIR S CGEGEVENS #GEÏMPLICEERD> 1028971 60
Beschrijving
Het element Dir representeert de start van directorybestandsattributen van een archief. Een directory bestaat uit meer dan een bestandselement of tag. Een 5 directory heeft een naara of wachtwoordtag die optioneel is.
De directorynaam kan tevens uitgedrukt worden in het n attribuut. Het s attribuut kan tevens de grootte of het aantal directorybestanden aanduiden.
10 Gebruik <DIR n+"bestandsnaam"> ELEMENT BESTAND 15 Model ELEMENT BESTAND (NAAM?, GROOTTE?, TIJD?, BLOK*, OS?, BYTEVOLGORDE?, WACHTWOORD?, CRC?, MD?/ MDR?, MDC?, MDX?, SHA, SHA_OMGEKEERD?, MD2?, MD2_OMGEKEERD?, MD3?, MD3_0MGEKEERD?, MD4?, MD4_OMGEKEERD?, MD5?, MD5_0MGEKEERD?, COLLISIE_GETAL?, 20 VLOER?, PLAFOND?)> <!—Bestandsnaamattribuut N—> <!ATTLIJST Bestand N CGEGEVENS #GEÏMPLICEERD> <!—Bestandsgrootte in Bytes attribuut S—> <!ATTLIJST Bestand S CGEGEVENS #GEÏMPLICEERD> 25
Beschrijving
Het element Bestand representeert de bestandsinhoud waaronder samenvattingen en controlesommen en handtekeninggegevens van een compressie-archief. Een bestand 30 kan meervoudige eigenschappen hebben binnen de elementen en tags waaronder bestandsnaam, bestandslengte en collisiegetal of vloer of plafond voor welke voor een boodschapsamenvatting overeenstemming gescand moet worden. De vloer of het plafond 1028971 61 of de modulus of logaritme exponent representeren constrictoren binnen welke voor een gegevensblok gescand wordt welke overeenstemt met het pakket van samenvattingen of controlesommen behorend bij een bestand. Een bestand kan 5 hebben een bestandsnaamtag of besturingssyteemtag, een wachtwoord, een boodschapsamenvattingtag, collisie-getal, vloer of plafond hebben. Deze bestandstags kunnen tevens uitgedrukt worden als attributen of blokken van afgebakende tekst. Additionele attributen of tags kunnen tevens 10 toegevoegd worden. De bytevolgordetag of mogelijk attribuut specificeert het bestand of de digitale handtekening bytevolgorde, hetzij big-endian of little-endian.
Gebruik 15 ELEMENT NAAM Model <!ELEMENT NAAM (#PCGEGEVENS)> 20
Beschrijving
Het element Naam representeert de start van een naam van een bestand binnen het compressie-archief.
25 Gebruik
ELEMENT OS
Model 30 <!ELEMENT OS (#PCGEGEVENS)>
Beschrijving 1028971 62
Het element OS representeert de besturingssyteemparametertag van een bestand.
Gebruik 5 ELEMENT BYTEVOLGORDE Model . <!ELEMENT BYTEVOLGORDE (# PCGEGEVENS)> 10
Beschrijving
Het element BYTEVOLGORDE representeert de bytevolgordeparametertag van een bestand. Deze tag specificeert of er little-endian of big-endian formaat voor 15 de bytes is. Deze kan tevens andere bytevolgordes specificeren van digitale handtekeninginvoergegevens of bestandsinvoer zodat de handtekening reproduceerbaar zal zijn op computers van verschillende volgorde.
20 Gebruik <BYTEVOLGORDE>little-endian</BYTEVOLGORDE> <BYTEVOLGORDE>big-endian</BYTEVOLGORDE> of <BYTEVOLGORDE>1</BYTEVOLGORDE> 25 <BYTEVOLGORDE>b</BYTEVOLGORDE>
ELEMENT WACHTWOORD
Model 30 <!ELEMENT WACHTWOORD (#PCGEGEVENS)>
Beschrijving 1028971 63
Het element Wachtwoord representeert de wachtwoordbescherming van een bestand in het compressie-archief. Een wachtwoordtag representeert dat enig zaad vermengd is met de samenvattingen om de gegevens te 5 versleutelen of te beschermen.
Gebruik
ELEMENT BLOK
10
Model <!ELEMENT BLOK (#PCGEGEVENS)> <!ATTLIJST BLOK NUM CGEGEVENS #VEREIST> <!ATTLIJST BLOK LNG CGEGEVENS #VEREIST> 15
Beschrijving
Het element Blok representeert het blok van een bestand. Dit maakt het mogelijk dat een bestand opgesplitst wordt in meervoudige blokken van n-bytes. De blokken kunnen 20 samenvattingen of handtekeningen hebben. De verscheidene handtekeningen kunnen genest worden zodat de blokken individueel getest worden. Een modulusscan staat een iteratie toe over een serie gegevens teneinde te controleren op een gegevensblok met een bijbehorende controlesom of 25 handtekening. De gehele bestandsuitvoer kan getest worden teneinde te verzekering dat de handtekening overeenstemt met het pakket van de handtekeningen of controlesommen.
Gebruik 30 ELEMENT GROOTTE Model 1028971 <!ELEMENT GROOTTE (# PCGEGEVENS)> 64
Beschrijving
Het element grootte representeert de grootte van een 5 bestandsblok of bestand in bytes.
Gebruik
ELEMENT TIJD
10
Model <!ELEMENT TIJD (#PCGEGEVENS)>
Beschrijving 15 Het element tijd representeert de tijd gedurende welke een handtekeninggroep op een bestand gedraaid werd.
Gebruik <TIJD> april 11, 2005 12.33PMC/TIJD> 20 ELEMENT MD Model <!ELEMENT MD (#PCGEGEVENS)> 25 <!ATTLIJST MD t CGEGEVENS #VEREIST> <!ATTLIJST MD 1 CGEGEVENS #VEREIST>
Beschrijving
Het element MD representeert de boodschapsamenvatting 30 van een bestandsblok of een bestand. Het t attribuut representeert het samenvattingstype en het 1 attribuut representeert de samenvattingslengte in bytes.
1028971 65
Gebruik ELEMENT MDR 5 Model <!ELEMENT MDR (#PCGEGEVENS)> <!ATTLIJST MDR t CGEGEVENS #VEREIST> <!ATTLIJST MDR 1 CGEGEVENS #VEREIST> 10 Beschrijving
Het element MDR representeert de boodschapsamenvatting van het omgekeerde van een bestandsblok of een bestand. Elke hash of digitale handtekening heeft de omgekeerde transformatie waarin de omgekeerde van de invoer 15 een verschillende hash genereert. De extreme.conditie is een palindroom waarin de handtekening of de samenvatting voorwaards en achterwaarde hetzelfde zijn. Het t attribuut representeert het samenvattingstype en het 1 attribuut representeert de samenvattingslengte in bytes.
20
Gebruik ELEMENT MDX 2 5 Model <!ELEMENT MDX (# PCGEGEVENS)> <!ATTLIJST MDX t CGEGEVENS #VEREIST> <!ATTLIJST MDX 1 CGEGEGENS #VEREIST> 30 Beschrijving
Het element MDX representeert het door de gebruiker gedefinieerde samenvattingsblok. Het t attribuut 1028971 66 representeert het samenvattingstype en het 1 attribuut representeert de samenvattingslengte in bytes.
Gebruik 5 ELEMENT MDC Model <!ELEMENT MDC (# PCGEGEVENS)> 10 <!ATTLIJST MDC t CGEGEVENS #VEREIST> <!ATTLIJST MDC 1 CGEGEVENS #VEREIST>
Beschrijving
Het element MDC representeert een afgesneden hash of 15 digitale handtekening. In feite betekent dit dat een handtekening zoals SHA een blok gegevens of een bestand kan hashen. De resulterende 20 byte hash of 40 byte hex hash kan afgesneden worden tot 2 bytes of zoveel bytes als nodig is. Indien derhalve een controlesom of digitale handtekening een 20 lengte van 20 bytes heeft, dan worden, indien de MDC lengte gelijk is aan 2, slechts 2 bytes of 4 karakters geselecteerd. Een hex versie van een 20 bytes handtekening zal 40 karakters lang zijn. Het t attribuut representeert het type en het 1 attribuut representeert de lengte.
25
Gebruik <mdc t="SHA"l="l">d2</mdc> <mdc t="RIPE160"1="3">b7bda5</mdc> <mdc t="MD2"1="2">14le</mdc> 30 ELEMENT SHA Model 1028971 <!ELEMENT SHA (#PCGEGEVENS)> 67
Beschrijving
Het element SHA representeert een SHA 160 bits 5 digitale handtekening. In feite betekent dit dat een , handtekening zoals SHA een blok gegevens of een bestand kan hashen.
Gebruik 10 ELEMENT SHA-OMGEKEERD Model <!ELEMENT SHA-OMGEKEERD (#PCGEGEVENS)> 15
Beschrijving
Het element SHA representeert een omgekeerde SHA 160 bits digitale handtekening. In feite betekent dit dat een handtekening zoals SHA omgekeerd een blok gegevens of een 20 bestand kan hashen.
Gebruik ELEMENT MD5 25
Model <!ELEMENT MD5 (#PCGEGEVENS)>
Beschrijving 30 Het element MD5 representeert een MD5 (Boodschapsamenvatting 5) digitale handtekening. In feite betekent dit dat een handtekening zoals MD5 een blok gegevens of een bestand kan hashen en de hash kan coderen als hex 1028971 68 binnen de MD5 open en gesloten tags of element. De MDC kan gebruikt worden om hash collisies te genereren of om collisies_getal tags voor kleine gegevens te creëren.
5 Gebruik ELEMENT MD5_0MGEKEERD Model 10 <!ELEMENT MD5_OMGEKEERD (# PCGEGEVENS)>
Beschrijving
Het element MD5 representeert een MD5 digitale handtekening met omgekeerde invoer van het bestand of van het 15 bestandsblok. In feite betekent dit dat een handtekening zoals MD5 de omgekeerde van een blok van gegevens of een bestand kan hashen en de hash als hex binnen de MD5_OMGEKEERD open en gesloten tags of element te coderen.
20 Gebruik ELEMENT MD4 Model 25 <!ELEMENT MD4 (#PCGEGEVENS)>
Beschrijving
Het element MD4 representeert een MD4 digitale handtekening. In feite betekent dit dat een handtekening 30 zoals MD4 een blok van gegevens of een bestand kan hashen en de hash kan coderen als hex binnen de MD4 open en gesloten tags of element.
1028971 69
Gebruik ELEMENT MD4_0MGEKEERD 5 Model <!ELEMENT MD4_0MGEKEERD (# PCGEGEVENS)>
Beschrijving
Het element MD4 representeert een MD4 digitale 10 handtekening met omgekeerde invoer van het bestand of het bestandsblok. In feite betekent dit dat een handtekening zoals MD4 de omgekeerde van een gegevensblok of een bestand kan hashen en de hash kan coderen als hex binnen de MD4_OMGEKEERDE open en gesloten tags of elementen.
15
Gebruik ELEMENT MD3 20 Model <!ELEMENT MD3 (#PCGEGEVENS)>
Beschrijving
Het element MD3 representeert een MD3 digitale 25 handtekening. In feite betekent dit dat een handtekening zoals MD3 een blok gegevens of een bestand kan hashen en de hash kan coderen als hex binnen de MD3 open en gesloten tags of element.
30 Gebruik
ELEMENT MD3_OMGEKEERD
1028971 70
Model <!ELEMENT MD3_OMGEKEERD (#PCGEGEVENS)>
Beschrijving 5 Het element MD3 representeert een MD3 digitale handtekening met omgekeerde invoer van het bestand of het bestandsblok. In feite betekent dit dat een handtekening zoals MD3 het omgekeerde van een blok gegevens of een bestand kan hashen en de hash kan coderen als hex binnen de 10 MD3_OMGEKEERD open en gesloten tags of elementen.
Gebruik ELEMENT MD2 15
Model <!ELEMENT MD2 (# PCGEGEVENS)>
Beschrijving 20 Het element MD2 representeert een MD2 digitale handtekening. In feite betekent dit dat een handtekening zoals MD2 een blok gegevens of een bestand kan hashen en de hash kan coderen als hex binnen de MD2 open en gesloten tags of elementen.
25
Gebruik ELEMENT MD2_OMGEKEERO 30 Model <!ELEMENT MD2_OMGEKEERD (#PCGEGEVENS)>
Beschrijving 1 028971 71
Het element MD2 representeert een MD2 digitale handtekening met omgekeerde invoer van het bestand of het bestandsblok. In feite betekent dit dat een handtekening zoals MD2 het .omgekeerde van een blok van gegevens of een 5 bestand kan hashen en de hash kan coderen als hex binnen de MD2_0MGEKEERD open en gesloten tags of elementen.
Gebruik 10 ELEMENT COLLISIEGETAL Model <!ELEMENT COLLISIEGETAL (#PCGEGEVENS)> 15 Beschrijving het element Collisiegetal representeert de collisiegetalbeperking over welke de modulusscan of overslascan zou moeten itereren. Dit is een restrictie om mogelijke gegevensblokken te differentiëren die dezelfde 20 handtekening of hetzelfde handtekeningblok delen. Groepen handtekeningen verzekeren tevens dat gegevens gedifferentieerd worden over een verzameling iteraties. Een modulusscan zal tevens differentiëren en de hoeveelheid iteraties reduceren teneinde een blok van gegevens te vinden 25 die behoort bij een pakket controlesommen of handtekeningen. In het geval dat een collisie bestaat (hetgeen kan in het geval van de afsnij hashtag) zal echter het collisiegetal de collisies differentiëren.
30 Gebruik
ELEMENT VLOER
1028971 <!ELEMENT VLOER (# PCGEGEVENS)> 72
Model
Beschrijving 5 Het element vloer representeert de vloerrestrictie over welke de modulusscan of overslascan zou moeten itereren. Dit is een restrictie om de hoeveelheid iteraties te minimaliseren om een gegevensblok te vinden behorend bij een pakket van controlesommen of handtekeningen. Kenmerkend 10 representeert dit een scan van beneden naar boven.
Gebruik ELEMENT CEIL 15
Model <!ELEMENT CEIL (#PCGEGEVENS)>
Beschrijving 20 Het element Ceil representeert de plafondrestrictie over welke de modulusscan of overslascan zou moeten itereren. Dit is een restrictie om de hoeveelheid iteraties te minimaliseren om een gegevensblok te vinden die behoort bij een pakket controlesommen of handtekeningen. Kenmerkend 25 representeert een scan van beneden naar boven, maar kan tevens een van boven naar beneden of omgekeerde scan representeren met het plafond als startpunt in een zoekbewerking voor overeenkomstigen ten opzichte van een gegeven pakket attributen van een bestand of blok.
30
Gebruik ELEMENT FACT
1028971 <!ELEMENT FACT (# PCGEGEVENS)> 73
Model
Beschrijving .
5 Het element Fact representeert de faculteit (factorial) restrictie over welke de modulusscan of overslascan zou moeten itereren. Dit is een restrictie om de hoeveelheid iteraties te minimaliseren om een gegevensblok te vinden die behoort bij een pakket controlesommen of 10 handtekeningen. Kenmerkend representeert dit een scan van beneden naar boven, maar kan tevens een scan van boven naar beneden of een omgekeerde scan representeren met het plafond als startpunt in een zoekbewerking voor overeenkomstigen ten opzichte van een gegeven pakket attributen voor een bestand 15 of een blok.
Gebruik
ELEMENT SHAMODULUS
20
Model <!ELEMENT SHAMODULUS (# PCGEGEVENS)>
Beschrijving 25 Het element SHAMODULUS representeert de modulusscanrestrictie over welke de modulusscan of overslascan zou moeten itereren. Dit is een restrictie om de hoeveelheid iteraties te minimaliseren om een gegevensblok te vinden die behoort bij een pakket controlesommen of 30 handtekeningen. Kenmerkend representeert dit een scan van beneden naar boven, maar kan tevens een scan van boven naar beneden of een omgekeerde scan representeren met het plafond als startpunt in een zoekbewerking voor overeenkomstigen ten 1028971 74 opzichte van een gegeven pakket attributen voor een bestand of een blok. Een bestand en de bijbehorende bytes worden omgezet in een groot-geheel-getal of een getal en vervolgens neemt het getal de modulus van de SHA samenvatting om de rest 5 te genereren. De rest van de modulus wordt gevangen binnen de SHAMODULUS open en gesloten tags teneinde te zorgen voor modulusscans of iteratie.
Gebruik 10 ELEMENT MD5MODIJLUS Model <!ELEMENT MD5 MODULUS (# PCGEGEVENS)> 15
Beschrijving
Het element MD5M0DULUS representeert de modulusscanrestrictie over welke de modulusscan of overslascan zou moeten itereren. Dit is een restrictie om de 20 hoeveelheid iteraties te minimaliseren om een gegevensblok te vinden die behoort bij een pakket controlesommen of handtekeningen. Kenmerkend representeert dit een scan van beneden naar boven, maar kan tevens een scan van boven naar beneden of een omgekeerde scan representeren met het plafond 25 als startpunt in een zoekbewerking voor overeenkomstigen ten opzichte van een gegeven pakket attributen voor een bestand of een blok. Een bestand en de bijbehorende bytes worden omgezet in een groot-geheel-getal of een getal en vervolgens neemt het getal de modulus van de MD5 samenvatting om de rest 30 te genereren. De rest van de modulus wordt gevangen binnen de MD5MODULUS open en gesloten tags teneinde te zorgen voor modulusscans of iteratie.
1 028971 75
Gebruik ELEMENT MODULUS 5 Model <!ELEMENT MD5MODULUS (# PCGEGEVENS)> <!ATTLIJST MODULUS n CGEGEVENS #GEÏMPLICEERD>
Beschrijving 10 Het element MODULUS representeert de modulusscanrestrictie over welke de modulusscan of overslascan zou moeten itereren. Dit is een restrictie om de hoeveelheid iteraties te minimaliseren om een gegevensblok te vinden die behoort bij een pakket controlesommen of 15 handtekeningen. Kenmerkend representeert dit een scan van beneden naar boven, maar kan tevens een scan van boven naar beneden of een omgekeerde scan representeren met het plafond als startpunt in een zoekbewerking voor overeenkomstigen ten opzichte van een gegeven pakket attributen voor een bestand 20 of een blok. Een bestand en de bijbehorende bytes worden omgezet in een groot-geheel-getal of een getal en vervolgens neemt het bestandgetal de modulus van het n attribuut teneinde de rest te genereren. De rest van de modulus wordt gevangen binnen de MODULUS open en gesloten tags teneinde te 25 zorgen voor modulusscans of iteratie. De modulustag kan een standaard (default) waarde hebben.
Gebruik
De tag vangt de modulusrest van een bestand dat is 30 omgezet in een groot-geheel-getalmodulus waarde, die is gevangen in het n attribuut.
ELEMENT HONDERDMODULUS
1028971
Model < ! ELEMENT HONDERDMODULUS (#PCGEGEVENS) > 76
Beschrijving 5 Het element HONDERDMODULUS representeert de modulusscanrestrictie over welke de modulusscan of overslascan zou moeten itereren. Dit is een restrictie om de hoeveelheid iteraties te minimaliseren om een gegevensblok te vinden die behoort bij een pakket controlesommen of 10 handtekeningen. Kenmerkend representeert dit element een scan van beneden naar boven, maar kan tevens een scan van boven naar beneden of een omgekeerde scan representeren met het plafond als startpunt in een zoekbewerking voor overeenkomstigen ten opzichte van een gegeven pakket 15 attributen voor een bestand of een blok. Een bestand en de bijbehorende bytes worden omgezet in een groot-geheel-getal of een getal en vervolgens neemt het bestandgetal de modulus 100 teneinde de rest te genereren. De rest van de modulus wordt gevangen binnen de MODULUS open en gesloten tags 20 teneinde te zorgen voor modulusscans of iteratie.
Gebruik ELEMENT PUIZENDMQDULUS 25
Model <!ELEMENT DUIZENDMODULUS (#PCGEGEVENS)>
Beschrijving 30 Het element DUIZENDMODULUS representeert de modulusscanrestrictie over welke de modulusscan of overslascan zou moeten itereren. Dit is een restrictie om de hoeveelheid iteraties te minimaliseren om een gegevensblok te 1 028971 77 vinden die behoort bij een pakket controlesommen of handtekeningen. Kenmerkend representeert dit element een scan van beneden naar boven, maar kan tevens een scan van boven naar beneden of een omgekeerde scan representeren met het 5 plafond als startpunt in een zoekbewerking voor overeenkomstigen ten opzichte van een gegeven pakket attributen voor een bestand of een blok. Een bestand en de bijbehorende bytes worden omgezet in een groot-geheel-getal of een getal en vervolgens neemt het bestandgetal de modulus 10 1000 teneinde de rest te genereren. De rest van de modulus wordt gevangen binnen de DUIZENDMODULUS open en gesloten tags teneinde te zorgen voor modulusscans of iteratie.
Gebruik 15 ELEMENT MILJOENMODULUS Model <!ELEMENT MILJOENMODULUS (#PCGEGEVENS)> 20
Beschrijving
Het element MILJOENMODULUS representeert de modulusscanrestrictie over welke de modulusscan of overslascan zou moeten itereren. Dit is een restrictie om de 25 hoeveelheid iteraties te minimaliseren om een gegevensblok te vinden die behoort bij een pakket controlesommen of handtekeningen. Kenmerkend representeert dit element een scan van beneden naar boven, maar kan tevens een scan van boven naar beneden of een omgekeerde scan representeren met het 30 plafond als startpunt in een zoekbewerking voor overeenkomstigen ten opzichte van een gegeven pakket attributen voor een bestand of een blok. Een bestand en de bijbehorende bytes worden omgezet in een groot-geheel-getal 1028971 78 of een getal en vervolgens neemt het bestandgetal de modulus 1 miljoen teneinde de rest te genereren. De rest van de modulus wordt gevangen binnen de MILJOENMODULUS open en gesloten tags teneinde te zorgen voor modulusscans of 5 iteratie.
Gebruik
ELEMENT MILJARDMODULUS
10
Model <!ELEMENT MILJARDMODULUS (#PCGEGEVENS)>
Beschrijving 15 Het element MILJARDMODULUS representeert de modulusscanrestrictie over welke de modulusscan of overslascan zou moeten itereren. Dit is een restrictie om de hoeveelheid iteraties te minimaliseren om een gegevensblok te vinden die behoort bij een pakket controlesommen of 20 handtekeningen. Kenmerkend representeert dit element een scan van beneden naar boven, maar kan tevens een scan van boven naar beneden of een omgekeerde scan representeren met het plafond als startpunt in een zoekbewerking voor overeenkomstigen ten opzichte van een gegeven pakket 25 attributen voor een bestand of een blok. Een bestand en de bijbehorende bytes worden omgezet in een groot-geheel-getal of een getal en vervolgens neemt het bestandgetal de modulus 1 miljard teneinde de rest te genereren. De rest van de modulus wordt gevangen binnen de MILJARDMODULUS open en 30 gesloten tags teneinde te zorgen voor modulusscans of iteratie.
Gebruik 1028971 79 F.T.F.MF.NT DMOD Model <!ELEMENT DMOD (#PCGEGEVENS)> 5 <!ATTLIJST BLOK A CGEGEVENS #VEREIST> <!ATTLIJST BLOK B CGEGEVENS #VEREIST>
Beschrijving
Het element DMOD representeert de dubbele 10 modulusscanrestrictie over welke de modulusscan of overslascan zou moeten itereren. Dit is een restrictie om de hoeveelheid iteraties te minimaliseren om een gegevensblok te vinden die behoort bij een pakket controlesoramen of handtekeningen. Kenmerkend representeert dit element een scan 15 van beneden naar bóven, maar kan tevens een scan van boven naar beneden of een omgekeerde scan representeren met het plafond als startpunt in een zoekbewerking voor overeenkomstigen ten opzichte van een gegeven pakket attributen voor een bestand of een blok. Een bestand en de 20 bijbehorende bytes worden omgezet in een groot-geheel-getal of een getal en vervolgens neemt het binaire bestandgetal een paar van modulusgetallen teneinde het restpaar te genereren. De rest van de modulus wordt gevangen binnen de DMOD open en gesloten tags teneinde te zorgen voor modulusscans of 25 iteratie. Het paar modulusgetallen kan ingesteld worden door deze te gebruiken binnen het attribuut a en attribuut b en het stoppen van de resten binnen de DMOD tag gescheiden met komma's. Indien er drie argumenten zijn, is het eerste getal modulus a, dan een komma en dan is het tweede getal een 30 exponent tot welke modulus a verheven kan worden en vervolgens gaat een komma vooraf aan het derde getal dat de tweede modulus is. Dit maakt het mogelijk dat één modulus geïtereerd wordt over en een tweede modulus gebruikt wordt 1028971 80 als een test die uitgevoerd wordt voor willekeurige andere handtekeningen voor controlesomverificatie.
Een voorbeeld hiervan is het volgende numerieke probleem waarin er een binaire getal x is dat gedeeld door 5 een miljoen (modulus a) gelijk is aan 12333 en gedeeld door (123333) modulus b gelijk is aan 1232 en waarvan de SHA handtekening 20 bytes is en waarvan de MD5 handtekening 16 bytes is en de modulus a een exponent macht van 23 heeft, vindt het getal. Het creëert tevens een moduluspaar voor de 10 bestandhandtekening.
Gebruik <DMOD A="1000000"B="123332">12333,23, 1232</DMOD> <DMOD>123332,123332</DMOD> 15 ELEMENT MQDULUSEXPONENT Model <!ELEMENT MODULUSEXPONENT (# PCGEGEVENS)> 20
Beschrijving
Het element MODULUSEXPONENT representeert de modulusscanrestrictie over welke de modulusscan of overslascan zou moeten itereren. Dit is een restrictie om de 25 hoeveelheid iteraties te minimaliseren om een gegevensblok te vinden die behoort bij een pakket controlesommen of handtekeningen. Kenmerkend representeert dit een scan van beneden naar boven, maar kan tevens een scan van boven naar beneden of een omgekeerde scan representeren met het plafond 30 als startpunt in een zoekbewerking voor overeenkomstigen ten opzichte van een gegeven pakket attributen voor een bestand of een blok. Een bestand en de bijbehorende bytes worden omgezet in een groot-geheel-getal of een getal en vervolgens 1 o 2 8 97 ί 81 neemt het bestandgetal de modulus van n teneinde de rest te genereren. De modulus kan verheft worden tot een macht of exponent welke is gegenereerd door het logaritme van het bestandgetal groot-geheel-getal en de modulusbasis teneinde 5 een exponent te vinden waarnaar de modulus geïtereerd kan worden + de rest. (dat wil zeggen (modulusA1200ste macht) + (modulus*1000)+rest) teneinde het aantal iteraties om een blok te vinden te reduceren.
10 Gebruik <MILJARDMODULUS>12333<MODULUSEXPONENT>122</MODULUSEXPONENT></ MILJARDMODULUS> ELEMENT MODUT.IJS VEELVOUD 15
Model <!ELEMENT MODULUSVEELVOUD (#PCGEGEVENS)>
Beschrijving 20 Het element MODULUSVEELVOUD representeert de modulusscanrestrictie over welke de modulusscan of overslascan zou moeten itereren. Dit is een restrictie om de hoeveelheid iteraties te minimaliseren om een gegevensblok te vinden die behoort bij een pakket controlesommen of 25 handtekeningen. Kenmerkend representeert dit een scan van beneden naar boven, maar kan tevens een scan van boven naar beneden of een omgekeerde scan representeren met het plafond als startpunt in een zoekbewerking voor overeenkomstigen ten opzichte van een gegeven pakket attributen voor een bestand 30 of een blok. Een bestand en de bijbehorende bytes worden omgezet in een groot-geheel-getal en vervolgens neemt het bestandgetal de modulus van n teneinde de rest te genereren.
102897T
82
De modulus kan vermenigvuldigd worden door de modulusveelvoud (dat wil zeggen 1000*modulo) teneinde het aantal iteraties om een blok te vinden te reduceren.
5 Gebruik <MODULUSVEELVOUD>1000</MODULUSVEELVOUD>
Dit is een tweede voorbeeld van het gebruik. Dit representeert een alternatief gebruik waarin de modulus van 10 een getal is 1 honderd en de rest is 12333 en de modulus van 1 honderd tot de macht 122 verheft kan wordenen een veelvoud van 1000 heeft. Dit vormt de vergelijking. Er is een getal dat gedeeld door 100 gelijk is aan 33 en waarvan de modulusexponent gelijk is aan 122 en een modulusveelvoud van 15 1000 heeft. Vindt het nummer. De modulusveelvoud is afzonderlijk van de exponent, zodat het een vergelijking 100Λ122+100*1000 vormt.
<HONDERDMODULUS>33<MODULUSEXPONENT>122</MODULUSEXPONENTXMODU 20 LUSVEELVOUD>1000</MODULUSVEELVOUD> </HONDERDMODULUS>
ELEMENT NUM
25 Model <!ELEMENT NUM (# PCGEGEVENS)>
Beschrijving
Het element NUM representeert een hexuitvoer van 30 enige van de bytes van een bestand of een algemeen getal teneinde het modulusgetal te definiëren.
Gebruik 1028971 83 <NUM>100000</NUM> <MODÜLUSXNUM>1000</NÜM>12321213213213</MODÜLUS> ELEMENT CRC 5
Model <!ELEMENT CRC (#PCGEGEVENS)>
Beschrijving 10 Het element CRC representeert een CRC controlesom.
Gebruik
Hieronder is een basis controlesom digitale handtekening XML archief DTD weergegeven.
15
Coupress2. dtd <!ELEMENT ARCH (DIRECTORY?, BESTAND+)> <!ATTLIJST ARCH naam CGEGEVENS #GEÏMPLICEERD> 20 <!ELEMENT DIRECTORY (NAAM?, WACHTWOORD?, BESTAND+)> <!ATTLIJST DIRECTORY N CGEGEVENS #GEÏMPLICEERD> <!ATTLIJST DIRECTORY S CGEGEVENS #GEÏMPLICEERD> <!ELEMENT DIR (NAAM?, WACHTWOORD?, BESTAND+)> 25 <!ATTLIJST DIR N CGEGEVENS #GEÏMPLICEERD> <!ATTLIJST DIR S CGEGEVENS #GEÏMPLICEERD> <!— Element Bestand: "BESTAND N="Bestandnaam" S=,,1232233">. . .</BESTAND>" —> 30 <!— Bestandnaam of Bestandsgrootte kan gespecificeerd worden als attribuut of element tag —> <!ELEMENT BESTAND (NAAM?, GROOTTE?, TIJD?, BLOK*, OS?, BYTEVOLGORDE?, WACHTWOORD?, CRC?, MD?, MDR?, MDC?, MDX?, SHA, 1028971 84 SHA_OMGEKEERD?, MD2?, MD2-0MGEKEERD?, MD3?, MD3_0MGEKEERD?, MD4, MD4_0MGEKEERD?, MD5?, MD5_0MGEKEERD?, COLLISIE_GETAL?, VLOER?, PLAFOND?)> <!— Bestandnaam attribuut N —> 5 <!ATTLIJST Bestand N CGEGEVENS #GEÏMPLICEERD> <!— Bestandsgrootte in Bytes attribuut S —> <!ATTLIJST Bestand S CGEGEVENS #GEÏMPLICEERD> <!— Elementnaam is de Bestandsnaam —> 10 <!ELEMENT NAAM (#PCGEGEVENS)> <!— Element OS is het Besturingssysteem Type —> <!ELEMENT OS (# PCGEGEVENS)> <!— Element BYTEVOLGORDE is de BYTEVOLGORDE van de computer 15 —> <!ELEMENT BYTEVOLGORDE (#PCGEGEVENS)> <!— Element Wachtwoord van bestand —> <!ELEMENT WACHTWOORD (#PCGEGEVENS)> 20 <!ELEMENT BLOK (#PCGEGEVENS) <!ATTLIJST BLOK NUM CGEGEVENS #VEREIST> <!ATTLIJST BLOK LNG CGEGEVENS #VEREIST> <!— Bestandsgrootte Bytes element —> 25 <!ELEMENT GROOTTE (#PCGEGEVENS)> <!— Bestand Handtekening Tijd —> <!ELEMENT TIME (#PCGEGEVENS)> <!— ELEMENT MD: Dppr gebruik gedefinieerde samenvatting: 30 attribuut t = Boodschapsamenvattingtyoe attribuut 1 = Boodschapsamenvattinglengte —> <!ELEMENT MD (#PCGEGEVENS)> <!ATTLIJST MD t CGEGEVENS #VEREIST> 1028971 <!ATTLIJST MD L CGEGEVENS #VEREIST> 85 <!- ELEMENT MDR: door gebruik gedefinieerde samenvatting van omgekeerde invoer: 5 attribuut t = Boodschapsamenvattingtype attribuut 1 = Boodschapsamenvattinglengte —> <!ELEMENT MDR (#PCDATA)> <!ATTLIJST MDR t CGEGEVENS #VEREIST> <!ATTLIJST MDR 1 CGEGEVENS #VEREIST> 10 <!— element mdx: door gebruikt gedefinieerde samenvatting van invoer: —> <!— Voorbeelden: ”<MDX>SHA:160:54173139a00072fdfa3988flb8cf0e4e9baf31ee</MDX>" 15 —> <!ELEMENT MDX (#PCGEGEVENS)> <!— ELEMENT MDC: Afgesneden sub-hash van invoer
Een boodschapsamenvatting wordt uitgevoerd op een invoer 20 en vervolgens afgesneden. De boodschapsamenvatting wordt afgesneden bij n bytes. Een 20 bytes SHA samenvatting kan derhalve afgesneden worden voor kleine invoerbestanden om hashes van variabele lengte te creëren.
Een voorbeeld SHA
25 "<SHA>54173139a00072fdfa3988flb8cf0e4e9baf31ee</SHA>" zou afgesneden worden op 2 bytes met de mark-up "<MDC T="SHA" 1="2">54</MDC>" — > <!ELEMENT MDC (#PCGEGEVENS)> 30 <!ATTLIJST MDC t CGEGEVENS #VEREIST> <!ATTLIJST MDC 1 CGEGEVENS #VEREIST> <!— ELEMENT SHA: Veilig hash algoritme —> i j ! 1028971 <!ELEMENT SHA (#PCGEGEVENS)> 86 <!ELEMENT SHA_OMGEKEERD (# PCGEGEVENS)> <!— ELEMENT MDX: Booschapsamenvattingsalgoritme —> 5 <!ELEMENT MD2 (#PCGEGEVENS)> <!ELEMENT MD2_OMGEKEERD (#PCGEGEVENS)> <!ELEMENT MD3 (#PCGEGEVENS)> <!ELEMENT MD3_0MGEKEERD (#PCGEGEVENS)> <!ELEMENT MD4 (#PCGEGEVENS)> 10 <!ELEMENT MD4_OMGEKEERD (#PCGEGEVENS)> <!ELEMENT MD5 (#PCGEGEVENS)> <!ELEMENT MD5_OMGEKEERD (#PCGEGEVENS)> <!— ELEMENT Collisiegetal: 15 Een collisie treedt op wanneer er een boodschapsamenvatting is waarin twee invoeren dezelfde uitvoer samenvattingslijst produceren.
Een collisiegetal kan gebruikt worden om collisies te differentiëren.
20 De eerste Invoer die de samenvatting produceert heeft collisiegetal één.
Successievelijke collisies verhogen het getal met één.
De twaalfde collisie stelt het collisiegetal in op twaalf.
De mark-up zou zijn "<collisie_getal>12</collisie_getal>" —> 25 <!ELEMENT COLLISIE_GETAL (#PCGEGEVENS)> <!ELEMENT VLOER (NUM?, FACT?)> <!ELEMENT PLAFOND (NUM?, FACT?)> <!ELEMENT FACT (#PCGEGEVENS)> 30 <!ELEMENT SHAMODULUS (#PCGEGEVENS)> <!ELEMENT MD5MODULUS (#PCGEGEVENS)> <!ELEMENT MODULUS (#PCGEGEVENS)> <!ATTLIJST MODULUS n CGEGEVENS #GEÏMPLICEERD> 1028971 <!ELEMENT HONDERDMODULUS (# PCGEGEVENS)> 87 <!ELEMENT DUIZENDMODÜLUS (#PCGEGEVENS)> <!ELEMENT MILJOENMODULUS (#PCGEGEVENS)> <!ELEMENT MILJARDMODULUS (#PCGEGEVENS)> 5 <!ELEMENT DMOD (#PCGEGEVENS)> <!ELEMENT MODULUSEXPONENT (#PCGEGEVENS)> <!ELEMENT MODULUSVEELVOUD (#PCGEGEVENS)> <!ELEMENT NUM (#PCGEGEVENS)> <!ELEMENT CRC (#PCGEGEVENS)> 10
Voorbeelden
Dit is een lijst van mark-up voorbeelden in het compress2.dtd formaat.
15 Voorbeeld 1: palindroom.xml
Voorbeeld 1 demonstreert een bestand met de naam palindroom.txt van welke de grootte die 12 bytes is gevolgd door de SHA samenvatting, SHA omgekeerde samenvatting Ripe 160 samenvatting en Ripe 160 omgekeerde samenvatting is 20 opgenomen in tags. De md tag representeert een boodschapsamenvatting en het t attribuut representeert het type. De vloer en het plafond zijn leeg. Het bestand is goedgevormd en opgenomen in de arch tag.
25 <?xml versie="l. 0"codering="ascii"?> <!DOCTYPE COMPRIMEER_ARCH SYSTEEM "compress2.dtd"> <ARCH> <BESTAND> <NAAM>palindroom.txt</NAAM> 30 <GROOTTE>12</GROOTTE> <md t="SHA">d2d2922f9c0bea8ac448a2c67741eca8bba4a271<271</md> <md t="SHA-OMGEKEERD">d2d2922f9c0bea8ac448a2c67741eca8bba4a27 l</md> 1028971 88 <md t="ripel60">b7bda536ef319629b87bla564678907834bdabae</md> <md t=,,ripel60_omgekeerd,,>b7bda536ef319629b87bla564678907834b dabae</md> <md t="MD5">86e444818581edddef062ad4ddc00dd</md> 5 <md t="MD4">ae93876f99f0013b969313ee5483c051</md> <md t="MD2">14Iecbaal4a70771003b4b6973522cl4</md> <VLOER></VLOER> <PLAFONDX/PLAFOND> </BESTAND> 10 </ARCH>
Voorbeeld 2:
Dit is een xml voorbeeld van de directory mark-up voor een archief. Meerdere bestanden kunnen bestaan binnen 15 een directory en bestanden kunnen bestaan buiten een directory in een afzonderlijke mark-up.
<?xml versie="1.0" codering="ascii"?> 20 <!DOCTYPE COMPRIMEER_ARCH SYSTEEM "compress2.dtd"> <ARCH> <DIR n="D:\Programs\Perl\"> <BESTAND> <NAAM>D:\Programs\Perl\bigfloat.pl</NAAM> 25 <GR00TTE>114 9</GR00TTE> <md t="SHA">fed8cf9dblad882e89c8987c6dcd435e98d767b3</md> <md t="SHA_OMGEKEERD">33417958eal8546542dd51c4bd9986e5d5da9d7 4</md> <md t="MD5">71101f56f3d42112c4a0780bcd5051a9</md> 30 <md t="MD4">7ba62b83cb30209158db3e97694b4863</md> <md t=,,MD2">e5419e9a7124852e9fa9fa9004ceabbc</md> <VLOER></VLOER> < PLAFON DX / PLAFON D> 1028971 89 </BESTAND> </DIR> <BESTAND> <NAAM>D:\Programs\Perl\compress.dtd</NAAM> 5 <GROOTTE>363</GROOTTE> <md t="SHA">42e7e84866aadf4ce03f0d962fff62ee658791bb</md> <md t="SHA_OMGEKEERD">5c0e8287cfcal32b0a84063f8d7cc5c61ed4589a</m d> 10 <md t="MD5">730faf167fIb3c36e47aelec0cb74el9</md> <md t="MD4">426018e86d668ecffc0874c6f63c9ed2</md> <md t="MD2">bfef9fdb02d3f509bf82710ca0fa233a</md> <VLOER></VLOER> < PLAFON D></PLAFOND> 15 </BESTAND> </ARCH>
Voorbeeld 3
Het voorbeeld representeert het gebruik van het 20 collisiegetal.
<?xml versie="l.0" codering="ascii"?> <!DOCTYPE COMPRIMEER_ARCH SYSTEEM "compress2.dtd"> <ARCH naam=""> 25 <BESTAND> <NAAM>uit</NAAM> <GROOTTE>3961651</GROOTTE> <SHA>54173139a00072fdfa3988flb8cf0e4e9baf31ee</SHA> <SHA_OMGEKEERD>5563965239ce4ae6e66b23ed68afcdb83235577b</SHA_ 30 OMGEKEERD> <MD5>flief3dfe3815469a41d8ec29157d32c</MD5> <MD4>e0f9al30b5eal256d8c75126d26a6179</MD4> <MD2>26080751cl200a69978fdad60f886flf</MD2> 1 028971 90 <VLOER></VLOER> < PLAFONDX / PLAFON D> <COLLISIE_GETAL>12</COLLISIE_GETAL> </BESTAND> 5 </ARCH>
Voorbeeld 4
Dit voorbeeld illustreert bestandbytes die omgezet zijn in een groot-geheel-getal modulus 1 miljoen zoals 10 opgenomen in de miljoen-modulustag. Er is tevens een vloer en plafondgetal.
<?xml versie="l.0" codering=,'ascii"?> <!DOCTYPE COMPRIMEER_ARCH SYSTEEM "compress2.dtd" 15 <ARCH> <BESTAND> <NAAM>palindroom.txt</NAAM> <GROOTTE>12</GROOTTE> <md t="SHA">d2d2922f9c0bea8ac448a2c67741eca8bba4a271</md> 20 <mdr t="SHA">d2d2922f9c0bea8ac448a2c67741eca8bba4a271</mdr> <md t="RIPE160">b7bda536ef319629b87bla564678907834bdabae</md> <mdr t="RIPE160">b7bda536ef319629b87bla564678907834bdabae</md r> 25 <md t="MD5">86e444818581edddef062ad4ddcd00dd</md> <md t="MD4">ae93876f99f0013b969313ee5483c051</md> <md t="MD2">141ecbaal4a70771003b4b6973522cl4</rad> <MILJOENMODULUS>+98097</MILJOENMODULÜS> <VLOER>+5 4 </VLOER> 30 <PLAFOND>+55</PLAFOND> </BESTAND> </ARCH> 1028971 91
Voorbeeld 5
Dit voorbeeld illustreert een afgesneden samenvatting tag mdc, waarin slechts 1 of 2 of 3 bytes van de samenvatting voor sha en ripel60 of md2 gebruikt zijn. Het aantal 5 gebruikte bytes is uitgedrukt in het 1 attribuut.
<?xml versie="1.0" codering="ascii"?> <!DOCTYPE COMPRIMEER_ARCH SYSTEEM "compress2.dtd"> <ARCH> 10 <BESTAND> <NAAM>palindroom.txt</NAAM> <GROOTTE>12</GROOTTE> <mdc t="SHA" l="l">d2</md> <mdc t="RIPE160" I="3">b7bda5</md> 15 <mdc t="MD2” l="2">141e</md> <MILJOENMODULUS>+98097</MILJOENMODULUS> <VLOER>+54</VLOER> <PLAFOND>+55</PLAFOND> </BESTAND> 20 </ARCH>
Voorbeeld 6
Dit voorbeeld illustreert het gebruik van bestandsblokken voor het bestand uit. Het bestand werd 25 verdeeld in twee verschillende blokken 2.000.000 en 1.961.651 bytes lang en de bytes zouden vervolgens doorgestuurd worden via een samenvatting SHA en SHA Omgekeerd. De samenvattingswaarden zijn eenvoudig gedemonstreerde onberekende waarden.
30 <?xml versie="l. 0"codering="ascii"?> <! DOCTYPE COMPRIMEER_ARCH SYSTEEM ''comprimeer2 . dtd"> <ARCH> 1028971 92 <BESTAND> <NAAM>uit</NAAM> <GROOTTE> 3 961651</GROOTTE> <SHA>54173139a00072fdfa3988flb8df0e4e9baf31ee</SHA> 5 <SHA_OMGEKEERD>5563965239ce4ae6e66b23ed68afcdb83235577b</SHA_ OMGEKEERD> <MD5>flief3dfe3815469a41d8ec29157d32c</MD5> <MD4>e0f9al30b5eal256d8c75126d26a6179</MD4> <MD2>26080751cl200a69978fdad60f886flf</MD2> 10 <VLOER></VLOER> <PLAFONDX/PLAFOND> <BLOK num="l" lng="2000000"> <SHA>11111100a00072fdfa3988flb8cfOe4e9baf31ee</SHA> <SHA_OMGEKEERD>0000111123ce4ae6e66b23ed68afcdb83235577b</SHA_ 15 OMGEKEERD> </BLOK> <BLOK num="2" lng="1961651"> <SHA>5c0e8287cfcal32b0a84063f8d7cc5c61ed4589a</SHA> <SHA_OMGEKEERD>123221213323223221123223232332323321111</SHA_ 20 OMGEKEERD> </BLOK> </BESTAND> </ARCH> 25 Alhoewel de onderhavige uitvinding geïllustreerd is en beschreven is met betrekking tot verscheidene uitvoeringsvormen, is de uitvinding niet bedoeld om beperkt te zijn tot de getoonde details, aangezien verscheidene modificaties en structurele veranderingen uitgevoerd kunnen 30 worden zonder op welke wijze dan ook af te wijken van de geest van de onderhavige uitvinding. Zonder verdere analyse onthult het voorgaande de onderhavige uitvinding zodanig dat anderen, door de toepassing van huidige kennis, eenvoudig de 1028971 93 huidige uitvinding kunnen aanpassen aan verscheidene toepassingen zonder maatregelen weg te laten die, vanuit het standpunt van de stand van de techniek, essentiële karakteristieken van de generieke of specifieke aspecten van 5 deze uitvinding vormen.
1028971 94
Bijlage-infoxmatie Bijlage 1:
Bijlage 1 bevat: (a) twee Windows Activeperl 5 programma's (sha4.pl en sha4b.pl); (b) de corresponderende xml uitvoer (md.uit en mdb.uit) (de xml uitvoer omvat drie sleutels); (c) een Windows Activeperl programma (sha4omgekeerd.pl) die de omgekeerde van een bestand stuurt via de sha en deze vangt met SHA_OMGEKEERD mark-up; (d) 10 corresponderende uitvoer in mdomgekeerd.uit; en (e) een eenvoudige xml comprimerings-dtd als compress.dtd voor integriteit of validatie.
Er is tevens een sleutelcollisie van de controlesom. Deze kan genummerd worden om deze te differentiëren van 15 andere getallen waarmee het collideerd is. Indien twee getallen een hash delen, kan een getalsleutel toegewezen worden om deze te differentiëren.
mdomgekeerd.collisie.uit.txt heeft een collisiegetal in de mark-up. Dit demonstreert één manier van het oplossen van 20 collisies.
Bijlage 2:
Bijlage 2 bestandslijst: zsha_stra.c,6 pagina's 25 out.test.run.txt.txt, 2 pagina's outb.txt, 3 pagina's compress3.xml, 11 pagina's compress4.xml, 12 pagina's compress5.floor.xml, 1 pagina 30 compress.modulus5.xml, 1 pagina compress.modulusSb.xml, 1 pagina compress.palindromea.xml, 1 pagina compress.palindromeb.xml, 1 pagina 1028971 95 compress.xml, 1 pagina compress_modulus2.xml, 1 pagina compressjmodulus.xml, 1 pagina palindrome.txt.xml, 1 pagina 5 sha6b.pl, 8 pagina's
Totaal aantal pagina's in Bijlage 2: 51
Bijlage 2 - Bestandsbeschrijvingen 10 zsha_stra.c - Dit is een illustratief iteratorprogramma dat gemodificeerd is in c om bytes te vinden die corresponderen met een SHA samenvattingswaarde. Indien eenmaal de SHA samenvatting gevonden is, wordt een 15 reeks uitgevoerd, maar kan tevens een bestand gecreëerd worden.
out.test.run.txt.txt - Dit is een voorbeelditeratie over een groep bytes en de hashwaarde.
outb.txt - Dit is een log van de iteratie over een 20 blok van gegevens totdat een SHA (Secure Hash Digest) gevonden wordt. De iterator lijkt op een kilometerteller van een auto waarin de cijfers voor elke 255 iteraties kantelen. compress3.xml - Dit is een xml bestand. compress4.xml - Dit is een basisvoorbeeld van de 25 directory en bestandsstructuur van een hiërarchisch xml bestand dat gegenereerd is door sha6b.pl. Het illustreert de uitvoer van zes verschillende samenvattingen om op unieke wijze bestandsgegevens te identificeren. De gebruikte samenvattingen zij nSHa, SHA Omgekeerd, Ripe 160 en MD5, MD4, 30 MD3 en MD2.
compress5.floor.xml - Dit is een basisvoorbeeld van de director en bestandsstructuur van een hiërarchisch xml bestand. Dit demonstreert tevens een eenvoudige vloer. De 1028971 96 vloer is 841 en het plafond is 842, welke het bereik is van een geëxpandeerd getal binnen welke het programma zal zoeken naar een blok bytes die hashen tot dezelfde samenvattingen die voor het bestand opgesomd zijn.
5 compress.modulus5.xml - Dit is een mark-up van samenvattingen van een bestand met een modulustag.
compress.modulus5b.xml - Dit is een ander versie van het bestand groot-geheel-getal, gedeeld door een modulus teneinde een rest van 1310 te vormen, die uitgevoerd is 10 tussen de modulustags. Deze voorbeeldsamenvattings XML wordt gegenereerd door sha6b.pl. Het heeft zeven verschillende samenvattingen die gebruikt worden om een bestand te valideren.
compress.palindromea.xml - Dit is een palindroom xml 15 bestand waarin de gegevens voorwaarts of achterwaarts dezelfde hash hebben.
compress.xml - Dit is een basis xml mark-up die gegenereerd is door de sha6b.pl Perl script.
compress_modulus2.xml - Dit is een andere versie van 20 de xml uitvoer door de sha6b.pl van de modulus. Het laden van het bestand in een groot-geheel-getal creëert de modulus van een bestand door gebruik te maken van een gespecificeerde waarde. Een groot-geheel-getal is een "niet-native" type dat duizenden cijfers lang kan zijn en het mogelijk maakt dat 25 grote getallen berekend worden. Dit demonstreert tevens een modulusscanning waarin een modulusgetal toegevoegd wordt aan een groot-geheel-getal plus de rest en gehasht wordt totdat een overeenstemmende waarde gevonden wordt.
compress_modulus.xml - Dit xml bestand dat 30 gegenereerd is door de Perl script sha6b.pl demonstreert de uitvoer van een bestandshandtekeningpakket met modulustags.
1028971 97 palindrome.txt.xml - Dit bestand demonstreert wat er gebeurt indien een bestand dezelfde samenvatting heeft voor de omgekeerde van de invoer als de voorwaartse invoer. sha6b.pl - Dit bestand is de xml 5 bestandhandtekeninggenerator. Het genereert xml samenvattingspakketten vanuit een directory of bestandsboom op een computer. Additionele informatie en tags kunnen toegevoegd worden. Bovendien is het uitbreidbaar en staat het honderden verschillende samenvatcombinaties toe om in de xml 10 uitvoer gebruikt te worden. De XML uitvoer is goed gevormd. Elke samenvattingsbewerking kan gepakketteerd worden in een functie-aanroep en de commandoregelparameters maken verschillende combinaties van handtekeningen en koppen of in te voegen of uit te sluiten DTD's mogelijk. De uniciteit van 15 een samenvatting kan zeer nauwkeurig zijn.
sha_stringcmp.c - Dit is een meer actuele gegevensversie van de sha_stringcmp.c. Het is in feite een gecorrigeerde versie van zsha_stra.c.
sha_strcmp_log.txt - Dit de loguitvoer die 20 demonstreert hoe het gebruik van een samenvatting op unieke wijze een blok van gegevens of een verzameling bytes in een bestand kan identificeren.
1028971
Claims (43)
1. Een systeem voor gegevensopslag omvattende: 5 een of, meer processoren die werkzaam zijn om een eerste controlesomwaarde van een gegevensblok en een tweede controlesomwaarde voor het gegevensblok te genereren, waarin de genoemde eerste controlesomwaarde gegenereerd wordt door het toepassen van een eerste controlesomalgoritme op het 10 genoemde gegevensblok en de genoemde tweede controlesomwaarde gegenereerd wordt door het toepassen van een tweede controlesomalgoritme, verschillend van het eerste controlesomalgoritme, op het genoemde gegevensblok; een of meer processoren die werkzaam zijn om een 15 gegevensinvoer (data entry) te creëren omvattende gegevens welke identificeren: de eerste en tweede controlesomwaarden, de eerste en tweede controlesomalgoritmes en tenminste één van de geïdentificeerde attributen van het gegevensblok; en een of meer processoren die werkzaam zijn om de 20 genoemde gegevensinvoer in een met een computer uitleesbaar medium op te slaan.
2. Een systeem voor gegevensopslag omvattende: een of meer processoren die werkzaam zijn om een of meer attributen te identificeren van een eerste gegevensblok 25 en een tweede gegevensblok, het tweede gegevensblok omvattende en verschillend van het genoemde eerste gegevensblok; een of meer processoren die werkzaam zijn om een eerste controlesomwaarde voor het eerste gegevensblok te 30 genereren, waarin de eerste controlesomwaarde gegenereerd wordt door het toepassen van een eerste controlesomalgoritme op het genoemde eerste gegevensblok; 1 028 971 . een of meer processoren die werkzaam zijn om een tweede controlesomwaarde voor het tweede gegevensblok te genereren, waarin de tweede controlesomwaarde gegenereerd wordt door het toepassen van een tweede controlesomalgoritme 5 op het genoemde tweede gegevensblok; een of meer processoren die werkzaam zijn om een gegevensinvoer te creëren omvattende gegevens die identificeren: de eerste en tweede controlesomwaarden, en 10 tenminste één van de geïdentificeerde attributen van de eerste en tweede gegevensblokken; en een of meer processoren die werkzaam zijn om de gegevensinvoer op te slaan op een met een computer uitleesbaar medium.
3. Het systeem volgens conclusie 1, waarin een of meer processoren verder werkzaam zijn om een attribuut te bepalen voor het gegevensblok, waarbij het attribuut een is van een naam, grootte, lengte, hashtype, controlesomtype, samenvatting type, opvulling (padding), vloer, plafond, 20 modulus, collisie, directory, root, drive, pad, datum, tijd, gemodificeerde datum, toestemming, eigenaar, of bytevolgorde; een of meer processoren die werkzaam zijn om een gegevensinvoer te creëren omvattende het attribuut; en een of meer processoren die werkzaam zijn om de 25 genoemde gegevensinvoer op te slaan op een met een computer uitleesbaar medium.
4. Het systeem volgens conclusie 1, waarin het tweede controlesomalgoritme het eerste controlesomalgoritme is.
5. Het systeem volgens conclusie 1, waarin de 30 attributen tenminste één van de volgende omvatten: naam, grootte, lengte, hashtype, controlesomtype, samenvattingtype, opvulling, vloer, plafond, modulus, directory, root, drive, pad, datum, tijd, gemodificeerde datum, toestemming, eigenaar, en bytevolgorde.
6. Het systeem volgens conclusie 1, waarin de gegevensinvoer geschreven is in een mark-up taal.
7. Het systeem volgens conclusie 6, waarin de mark-up taal XML of SGML is.
8. Het systeem volgens conclusie 1, waarin de een of meer controlesomwaarden tenminste een van een gehashte waarde, een samenvatting en een controlesomgetal is.
9. Het systeem volgens conclusie 1, waarin de een of meer controlesomwaarden gegenereerd worden door gebruik te maken van tenminste een van een MD2 algoritme, een MD4 algoritme, een MD5 algoritme, een SHA algoritme, een cyclische redundante controlesomalgoritme (Cyclic Redundant 15 Checksum algorithm), een Ripe algoritme, een CRC16 controlesomalgoritme, een CRC32 controlesomalgoritme en een CRC64 controlesomalgoritme.
10. Het systeem volgens conclusie 1, waarin tenminste twee van de genoemde een of meer processoren parallel 20 werkzaam zijn.
11. Een systeem voor gegevensherstel, omvattende een of meer processoren die werkzaam zijn om een gegevensinvoer te ontvangen die gegevens omvat die identificeren: eerste en tweede controlesomwaarden, eerste en tweede 25 controlesomalgoritmes en tenminste één attribuut van een eerste gegevensblok; en gebaseerd op de genoemde gegevensinvoer; een of meer processoren die werkzaam zijn om het genoemde eerste gegevensblok te identificeren door: 30 a) het toepassen van het genoemde eerste controlesomalgoritme op elk blok in een eerste verzameling gegevensblok teneinde een eerste verzameling controlesomwaarden te genereren, waarbij elke waarde in de genoemde eerste verzameling controlesomwaarden correspondeert met een of meer gegevensblokken in de genoemde eerste verzameling van gegevensblokken; 5 (b) het vergelijken van de genoemde eerste verzameling controlesomwaarden met de genoemde eerste controlesomwaarde; (c) het identificeren van een of meer eerste kandidaat gegevensblokken als potentieel zijnde het genoemde eerste gegevensblok.
12. Het systeem volgens conclusie 11, verder omvattende een of meer processoren die werkzaam zijn om een of meer eerste kandidaat gegevensblokken te identificeren als corresponderend met waarden in de genoemde eerste verzameling controlesomwaarden die gelijk zijn aan de eerste 15 controlesomwaarde.
13. Het systeem volgens conclusie 11, verder omvattende: een of meer processoren die werkzaam zijn om een tweede verzameling controlesomwaarden te genereren door het 20 toepassen van het tweede controlesomalgoritme op de eerste kandidaat gegevensblokken; een of meer processoren die werkzaam zijn om de tweede verzameling controlesomwaarden te vergelijken met de genoemde tweede controlesomwaarde; 25 een of meer processoren die werkzaam zijn om een tweede verzameling kandidaat gegevensblokken te identificeren als corresponderend met waarden in de tweede verzameling controlesomwaarden die gelijk zijn aan de tweede controlesomwaarde; en 30 een of meer processoren die werkzaam zijn om alle gegevensblokken te identificeren in de genoemde tweede verzameling kandidaat gegevensblokken als zijnde potentieel het eerste gegevensblok.
14. Het systeem volgens conclusie 11, waarin het eerste controlesomalgoritme toegepast wordt op geselecteerde 5 gegevensblokken in de eerste verzameling gegevensblokken.via een van tenminste een lineaire scan of een niet-lineaire scan.
15. Het systeem volgens conclusie 14, waarin de niet-lineaire scan een of meer van een oversla-scan, een modulus 10 scan of een exponentiële scan omvat.
16. Het systeem volgens conclusie 11, waarin aan elk kandidaat gegevensblok een uniek collisiegetal is toegewezen.
17. het systeem volgens conclusie 11, waarin tenminste één van de een of meer processoren een geheel 15 getal-berekeningseenheid en een of meer hashregisters omvat.
18. Een systeem voor gegevensopslag, omvattende: op de computer geïmplementeerde middelen voor het genereren van een eerste controlesomwaarde voor een eerste gegevensblok en een tweede controlesomwaarde voor het eerste 20 gegevensblok; op de computer geïmplementeerde middelen voor het creëren van gegevensinvoer omvattende de eerste en tweede controlesomwaarden; en op de computer geïmplementeerde middelen voor het 25 opslaan van de genoemde gegevensinvoer in een met een computer uitleesbaar medium.
19. Een systeem voor gegevensopslag omvattende: op de computer geïmplementeerde middelen voor het identificeren van een of meer attributen van een 30 gegevensblok; op de computer geïmplementeerde middelen voor het genereren van een eerste controlesomwaarde voor het gegevensblok en een tweede controlesomwaarde voor het gegevensblok, waarin de genoemde eerste controlesomwaarde gegenereerd wordt door het toepassen van een eerste controlesomalgoritme op het genoemde gegevensblok en de 5 genoemde tweede controlesomwaarde gegenereerd wordt door het toepassen van een tweede controlesomalgoritme, verschillende van het eerste controlesomalgoritme, op het genoemde gegevensblok; op de computer geïmplementeerde middelen voor het 10 creëren van een gegevensinvoer welke gegevens omvat die identificeren: de eerste en tweede controlesomwaarden, de eerste en tweede controlesomalgoritmes en tenminste een van de geïdentificeerde attributen van het gegevensblok; en 15 op de computer geïmplementeerde middelen voor het opslaan van de genoemde gegevensinvoer in een met een computer uitleesbaar medium.
20. Een systeem voor gegevensherstel, omvattende: op de computer geïmplementeerde middelen voor het 20 identificeren van een of meer attributen van een eerste gegevensblok en een tweede gegevensblok, het genoemde tweede gegevensblok omvattende en verschillend van het genoemde eerste gegevensblok; op de computer geïmplementeerde middelen voor het 25 genereren van een eerste controlesomwaarde voor het eerste gegevensblok, waarin de eerste controlesomwaarde gegenereerd wordt door het toepassen van een eerste controlesomalgoritme op het eerste gegevensblok; op de computer geïmplementeerde middelen voor het 30 genereren van een tweede controlesomwaarde voor het tweede gegevensblok, waarin de tweede controlesomwaarde gegenereerd wordt door het toepassen van een tweede controlesomalgoritme op het tweede gegevensblok; op de computer geïmplementeerde middelen voor het creëren van een gegevensinvoer die gegevens omvat welke 5 identificeren: de eerste en tweede controlesomwaarden en tenminste een van de geïdentificeerde attributen van de eerste en tweede gegevensblokken; en op de computer geïmplementeerde middelen voor het 10 opslaan van de genoemde gegevensinvoer in een met de computer uitleesbaar medium.
21. Systeem voor gegevensopslag, omvattende: op de computer geïmplementeerde middelen voor het genereren van een eerste controlesom waarde voor een 15 gegevensblok en een tweede controlesom waarde voor het gegevensblok, waarin elk van de eerste en tweede controlesom waarden een gecomprimeerde representatie van het gegevensblok verschaft; op de computer geïmplementeerde middelen voor het creëren 20 van een gegevensinvoer (data entry) omvattende de eerste en de tweede controlesom waarde; en op een computer geïmplementeerde middelen voor het opslaan van de genoemde gegevensinvoer met een computer uitleesbaar medium.
22. Systeem volgens conclusie 21, waarin de eerste en de tweede controlesommen gegenereerd worden door het toepassen van hetzelfde controlesom algoritme op het gegevensblok.
23. Systeem volgens conclusie 21 of 22, verder omvattende middelen voor het genereren van tenminste een 30 verdere controlesom waarde voor het gegevensblok, waarin gemiddeld genomen tenminste een verdere controlesom waarde een gecomprimeerde representatie van het gegevensblok verschaft.
24. Systeem volgens een van de voorafgaande conclusies, waarin het gegevensblok afleidbaar is van de controlesom 5 waarden.
25. Systeem voor gegevensopslag, omvattende: op de computer geïmplementeerde middelen voor het genereren van: een eerste controlesom waarde voor een eerste 10 gegevensblok, waarin die eerste controlesom waarde een gecomprimeerde representatie van het eerste gegevensblok verschaft; een tweede controlesom waarde voor een tweede gegevensblok, waarin de tweede controlesom waarde een 15 gecomprimeerde representatie van het tweede gegevensblok verschaft; een derde controlesom waarde voor de eerste en tweede gegevensblokken, waarin de derde controlesom waarde een gecomprimeerde representatie van de samengestelde eerste en 20 tweede gegevensblokken verschaft; op een computer geïmplementeerde middelen voor het creëren van een gegevensinvoer omvattende de eerste, tweede en derde controlesom waarden; en op de computer geïmplementeerde middelen voor het 25 opslaan van de genoemde gegevensinvoer in een met de computer uitleesbaar medium.
26. Het systeem volgens conclusie 25, waarin de eerste en tweede gegevensblokken afleidbaar zijn van de controlesom waarden.
27. Systeem volgens een van de voorafgaande conclusies, verder omvattende: middelen voor het bepalen van een attribuut voor het gegevensblok, waarbij het genoemde attribuut één is van een naam, grootte, lengte, hash-type, controlesom-type, samenvattingstype (digest type), opvulling (padding), vloer, 5 plafond, modulus, collisie, directory, root, drive, pad, datum, tijd, gemodificeerde datum, toestemming, eigenaar of bytevolgorde; middelen voor het creëren van een het attribuut omvattende gegevensinvoer; en 10 middelen voor het opslaan van de genoemde gegevensinvoer in een met de computer uitleesbaar medium.
28. Systeem volgens een van de voorafgaande conclusies, waarin de gegevensinvoer in een markup taal geschreven is.
29. Systeem volgens conclusie 28, waarin de markup taal 15 hetzij XML of SGML is.
30. Systeem volgens een van de voorafgaande conclusies, waarin er één of meer controlesom waarden ten minste één is van: een ge-hashde waarde, een samenvatting (digest), en een controlesom getal.
31. Systeem volgens een van de voorafgaande conclusies, waarin één of meer controlesom waarden gegenereerd wordt door gebruik te maken van tenminste een van een MD2 algoritme, een MD4 algoritme, een MD5 algoritme, een SHA algoritme, een Cyclische Redundante Controlesom algoritme, een Ripe 25 algoritme, CRC16 controlesom algoritme, een CRC32 controlesom algoritme en een CRC64 algoritme.
32. Systeem volgens conclusie 21, omvattende tenminste twee processoren die zijn gerangschikt om parallel te functioneren.
33. Systeem voor gegevensherstel, omvattende: één of meer processoren die werkzaam zijn en om een gegevensinvoer te ontvangen omvattende gegevens die identificeerden: eerste en tweede controlesom waarden, eerste en 5 tweede controlesom algoritmes en tenminste één attribuut van een eerste gegevensblok; en gebaseerd op de genoemde gegevensinvoer; één of meer processoren die werkzaam zijn om het genoemde eerste gegevensblok te identificeren door: 10 (a) het toepassen van het genoemde eerste controlesom algoritme op elk blok in een eerste verzameling gegevensblok te nemen een eerste verzameling controlesom waarden te genereren, waarbij elke waarde in de genoemde eerste verzameling controlesomwaarden correspondeert met één of meer 15 gegevensblokken in de genoemde eerste verzameling gegevensblokken; (b) het vergelijken van de genoemde eerste verzameling controlesomwaarden met de genoemde eerste controlesom waarden; 20 (c) het identificeren van één of meer eerste kandidaat gegevensblokken als zijnde potentieel het genoemde eerste gegevensblok.
34. Systeem volgens conclusie 33, verder omvattende één of meer processoren die werkzaam zijn om één of meer eerste 25 kandidaat gegevensblokken te identificeren als corresponderende met waarden in de genoemde eerste verzameling van controlesom waarden die gelijk zijn aan de genoemde eerste controlesom waarden.
35. Systeem volgens conclusie 33 of 34, verder 30 omvattende: één of meer processoren die werkzaam zijn om een tweede verzameling controlesom waarden te genereren door het toepassen van het tweede controlesom algoritme op de eerste kandidaat gegevensblokken; één of meer processoren die werkzaam zijn om de genoemde verzameling controlesom waarden te vergelijken met de tweede 5 controlesom waarden; één of meer processoren die werkzaam zijn om een tweede verzameling kandidaat gegevensblokken te identificeren als corresponderend met waarden in de genoemde tweede verzameling controlesomwaarden die gelijk zijn aan de genoemde tweede 10 controlesomwaarden; één of meer processoren die werkzaam om alle gegevensblokken in de genoemde tweede verzameling kandidaat gegevensblokken te identificeren als potentieel zijnde het genoemde eerste gegevensblok.
36. Systeem volgens één van de conclusies 33 tot en met 35/ waarin het eerste controlesom algoritme toegepast wordt op geselecteerde gegevensblokken in de eerste verzameling gegevensblokken via een van tenminste een lineaire scan of een niet-lineaire scan.
37. Systeem volgens conclusie 36, waarin de niet- lineaire scan één van een overslaan scan, een modulus scan of een exponentiele scan omvat.
38. Systeem volgens één van de conclusies 33 tot en met 37, waarin aan elke kandidaat gegevensblokken een uniek 25 collisie getal toegewezen wordt.
39. Systeem volgens één van de conclusies 33 tot en met 38, waarin tenminste één van de een of meer processoren een geheel-getal-berekeningseenheid en één of meer hash-registers omvat.
40. Toestel voor gegevensopslag zoals in hoofdzaak hierin beschreven is onder verwijzing naar en/of zoals weergegeven in één van de bijgevoegde tekeningen.
41. Werkwijze voor gegevensopslag zoals in hoofdzaak hierin beschreven is onder verwijzing naar en/of zoals is weergegeven in één of meer van de bijgevoegde tekeningen.
42. Toestel voor gegevensherstel zoals in hoofdzaak 5 hierin beschreven is onder verwijzing naar en/of zoals is weergegeven in één of meer van de bijgevoegde tekeningen.
43. Werkwijze voor gegevensherstel zoals in hoofdzaak hierin beschreven is onder verwijzing naar en/of zoals is weergegeven in één of meer van de bijgevoegde tekeningen. 10 28 97151
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US56830404P | 2004-05-04 | 2004-05-04 | |
US56830404 | 2004-05-04 | ||
US60360404P | 2004-08-23 | 2004-08-23 | |
US60360404 | 2004-08-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
NL1028971A1 NL1028971A1 (nl) | 2005-11-07 |
NL1028971C2 true NL1028971C2 (nl) | 2006-08-14 |
Family
ID=34681706
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
NL1028971A NL1028971C2 (nl) | 2004-05-04 | 2005-05-04 | Systemen en werkwijzen voor gegevenscompressie en decompressie. |
Country Status (5)
Country | Link |
---|---|
US (2) | US8977859B2 (nl) |
EP (1) | EP1594252B1 (nl) |
DE (1) | DE102005020881A1 (nl) |
GB (1) | GB2413867B (nl) |
NL (1) | NL1028971C2 (nl) |
Families Citing this family (59)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7047488B2 (en) | 2002-07-19 | 2006-05-16 | Open Invention Network | Registry driven interoperability and exchange of documents |
US7433861B2 (en) * | 2003-03-13 | 2008-10-07 | International Business Machines Corporation | Byte-code representations of actual data to reduce network traffic in database transactions |
US7200603B1 (en) * | 2004-01-08 | 2007-04-03 | Network Appliance, Inc. | In a data storage server, for each subsets which does not contain compressed data after the compression, a predetermined value is stored in the corresponding entry of the corresponding compression group to indicate that corresponding data is compressed |
US7949666B2 (en) * | 2004-07-09 | 2011-05-24 | Ricoh, Ltd. | Synchronizing distributed work through document logs |
US7653712B1 (en) * | 2004-09-30 | 2010-01-26 | Emc Corporation | Methods and apparatus for processing configuration data |
US7761432B2 (en) * | 2005-11-04 | 2010-07-20 | Oracle America, Inc. | Inheritable file system properties |
US7698269B2 (en) * | 2005-11-29 | 2010-04-13 | Yahoo! Inc. | URL shortening and authentication with reverse hash lookup |
US7593949B2 (en) * | 2006-01-09 | 2009-09-22 | Microsoft Corporation | Compression of structured documents |
US8024427B2 (en) * | 2006-01-09 | 2011-09-20 | Microsoft Corporation | Dynamic storage of documents |
US7853573B2 (en) * | 2006-05-03 | 2010-12-14 | Oracle International Corporation | Efficient replication of XML data in a relational database management system |
US8001385B2 (en) * | 2006-06-21 | 2011-08-16 | Intel Corporation | Method and apparatus for flash updates with secure flash |
US20080016023A1 (en) * | 2006-07-17 | 2008-01-17 | The Mathworks, Inc. | Storing and loading data in an array-based computing environment |
US8479004B2 (en) | 2006-08-31 | 2013-07-02 | Ricoh Co., Ltd | Paper-based document logging |
GB2446175B (en) * | 2007-01-31 | 2011-06-29 | Hewlett Packard Development Co | Method of updating data |
US8006094B2 (en) | 2007-02-21 | 2011-08-23 | Ricoh Co., Ltd. | Trustworthy timestamps and certifiable clocks using logs linked by cryptographic hashes |
US20080243688A1 (en) * | 2007-03-28 | 2008-10-02 | Hart Peter E | Method and Apparatus for Recording Transactions with a Portable Logging Device |
US8996483B2 (en) | 2007-03-28 | 2015-03-31 | Ricoh Co., Ltd. | Method and apparatus for recording associations with logs |
CN101056252B (zh) * | 2007-06-07 | 2010-04-21 | 中兴通讯股份有限公司 | 压缩文件的传播方法 |
US8078648B2 (en) * | 2007-06-15 | 2011-12-13 | Microsoft Corporation | Data structure for supporting a single access operation |
FI120422B (fi) * | 2007-07-02 | 2009-10-15 | Tellabs Oy | Menetelmä ja laitteita muutoslokin kompressoimiseksi käyttäen flash-transaktioita |
US8739022B2 (en) * | 2007-09-27 | 2014-05-27 | The Research Foundation For The State University Of New York | Parallel approach to XML parsing |
US7836107B2 (en) * | 2007-12-20 | 2010-11-16 | Microsoft Corporation | Disk seek optimized file system |
US8434000B2 (en) * | 2008-01-02 | 2013-04-30 | International Business Machines Corporation | System and method for archiving portions of an output of a web application |
WO2009132261A1 (en) * | 2008-04-25 | 2009-10-29 | Vmware, Inc. | Updating a file using differences and file format therefor |
FR2936623B1 (fr) * | 2008-09-30 | 2011-03-04 | Canon Kk | Procede de codage d'un document structure et de decodage, dispositifs correspondants |
US8185733B2 (en) | 2008-10-02 | 2012-05-22 | Ricoh Co., Ltd. | Method and apparatus for automatically publishing content based identifiers |
GB2503128B8 (en) * | 2008-10-09 | 2014-03-12 | Sonicwall Inc | Computer networks |
US8730056B2 (en) * | 2008-11-11 | 2014-05-20 | Itron, Inc. | System and method of high volume import, validation and estimation of meter data |
US8782514B1 (en) * | 2008-12-12 | 2014-07-15 | The Research Foundation For The State University Of New York | Parallel XML parsing using meta-DFAs |
WO2010149986A2 (en) * | 2009-06-23 | 2010-12-29 | Secerno Limited | A method, a computer program and apparatus for analysing symbols in a computer |
CN102648625B (zh) * | 2009-09-23 | 2014-08-20 | 华为技术有限公司 | 广播业务分组的实现方法、装置和系统 |
US8903794B2 (en) * | 2010-02-05 | 2014-12-02 | Microsoft Corporation | Generating and presenting lateral concepts |
US8983989B2 (en) * | 2010-02-05 | 2015-03-17 | Microsoft Technology Licensing, Llc | Contextual queries |
US8150859B2 (en) | 2010-02-05 | 2012-04-03 | Microsoft Corporation | Semantic table of contents for search results |
US20110231395A1 (en) * | 2010-03-19 | 2011-09-22 | Microsoft Corporation | Presenting answers |
GB201008868D0 (en) * | 2010-05-27 | 2010-07-14 | Qinetiq Ltd | Computer security |
US20110302149A1 (en) * | 2010-06-07 | 2011-12-08 | Microsoft Corporation | Identifying dominant concepts across multiple sources |
US20120323989A1 (en) * | 2011-03-23 | 2012-12-20 | Telefonaktiebolaget L M Ericsson (Publ) | Dynamic distribution of target selection algorithms |
US8914545B2 (en) | 2011-04-27 | 2014-12-16 | Iii Holdings 1, Llc | Systems and methods for lossless compression of data and high speed manipulation thereof |
US8412849B2 (en) * | 2011-04-27 | 2013-04-02 | American Express Travel Related Services Company, Inc. | Systems and methods for lossless compression of data and high speed manipulation thereof |
DE102012020442B4 (de) * | 2012-10-18 | 2020-03-05 | Robert Bosch Gmbh | Verfahren zum Überprüfen von Daten mittels wenigstens zweier Prüfsummen |
US9876507B2 (en) * | 2013-02-22 | 2018-01-23 | Sap Se | Semantic compression of structured data |
US9338172B2 (en) * | 2013-03-13 | 2016-05-10 | Futurewei Technologies, Inc. | Enhanced IPsec anti-replay/anti-DDOS performance |
WO2015026971A2 (en) * | 2013-08-20 | 2015-02-26 | Shanklin Steven Dale | Application trust-listing security service |
US10187358B2 (en) | 2013-12-03 | 2019-01-22 | Amazon Technologies, Inc. | Data transfer optimizations |
EP3155546A4 (en) * | 2014-08-01 | 2018-02-28 | Sony Corporation | Content format conversion verification |
US10102218B2 (en) * | 2014-09-30 | 2018-10-16 | Microsoft Technology Licensing, Llc | File system with per-extent checksums |
KR20160070512A (ko) | 2014-12-10 | 2016-06-20 | 삼성전자주식회사 | 반도체 장치 및 그 동작 방법 |
FR3035289B1 (fr) * | 2015-04-14 | 2017-03-31 | My Pharma Company | Procedes de generation et de verification d'une cle de securite d'une unite monetaire virtuelle |
US10097345B2 (en) * | 2015-04-14 | 2018-10-09 | PeerNova, Inc. | Secure hash algorithm in digital hardware for cryptographic applications |
US10348506B2 (en) * | 2016-09-30 | 2019-07-09 | International Business Machines Corporation | Determination of state of padding operation |
CN106776105B (zh) * | 2016-11-15 | 2020-02-21 | 惠州Tcl移动通信有限公司 | 一种系统启动文件的校验及编译方法 |
US11063746B2 (en) * | 2018-04-19 | 2021-07-13 | Electronics And Telecommunications Research Institute | Method for selecting consensus node using nonce and method and apparatus for generating blockchain using the same |
US11017170B2 (en) * | 2018-09-27 | 2021-05-25 | At&T Intellectual Property I, L.P. | Encoding and storing text using DNA sequences |
US10917655B2 (en) * | 2018-12-06 | 2021-02-09 | Apical Limited | Video data processing using an image signatures algorithm to reduce data for visually similar regions |
US11544215B2 (en) * | 2019-09-05 | 2023-01-03 | Visa International Service Association | System, method, and computer program product for generating a file structure |
CN116209983A (zh) * | 2020-10-13 | 2023-06-02 | 陈锦夫 | 将数据认证用于数据压缩的方法 |
US11586493B2 (en) * | 2021-03-29 | 2023-02-21 | Red Hat, Inc. | Efficient checksum computation |
WO2024144650A1 (en) * | 2022-12-28 | 2024-07-04 | F.I.T. Bi̇lgi̇ İşlem Si̇stemleri̇ Servi̇sleri̇ Sanayi̇ Ve Ti̇caret Anoni̇m Şi̇rketi̇ | Method of compression of electronic documents with digital signature |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5032987A (en) * | 1988-08-04 | 1991-07-16 | Digital Equipment Corporation | System with a plurality of hash tables each using different adaptive hashing functions |
US5371499A (en) * | 1992-02-28 | 1994-12-06 | Intersecting Concepts, Inc. | Data compression using hashing |
EP1041767A2 (en) * | 1999-03-30 | 2000-10-04 | Fujitsu Limited | Authentication of electronic data |
US20020191791A1 (en) * | 2001-06-13 | 2002-12-19 | Anand Satish N. | Apparatus and method for a hash processing system using multiple hash storage areas |
US20040181561A1 (en) * | 2003-03-14 | 2004-09-16 | International Business Machines Corporation | Real time XML data update identification |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5049881A (en) * | 1990-06-18 | 1991-09-17 | Intersecting Concepts, Inc. | Apparatus and method for very high data rate-compression incorporating lossless data compression and expansion utilizing a hashing technique |
EP1168174A1 (en) * | 2000-06-19 | 2002-01-02 | Hewlett-Packard Company, A Delaware Corporation | Automatic backup/recovery process |
US6665813B1 (en) * | 2000-08-03 | 2003-12-16 | International Business Machines Corporation | Method and apparatus for updateable flash memory design and recovery with minimal redundancy |
FR2813743B1 (fr) * | 2000-09-06 | 2003-01-03 | Claude Seyrat | Procede de compression/decompression de documents structures |
US6826315B1 (en) * | 2000-09-13 | 2004-11-30 | Hewlett-Packard Development Company, L.P. | Digital imaging device with image authentication capability |
EP1233522A1 (en) * | 2001-02-14 | 2002-08-21 | Siemens Aktiengesellschaft | A data compression/decompression method and apparatus |
US6728725B2 (en) | 2001-05-08 | 2004-04-27 | Eugene Garfield, Ph.D. | Process for creating and displaying a publication historiograph |
CN1561623A (zh) * | 2001-07-30 | 2005-01-05 | 西门子公司 | 在网络节点中支持多个检验总数算法的方法 |
US20040015600A1 (en) * | 2002-02-21 | 2004-01-22 | Ashutosh Tiwary | Workload post-processing and parameterization for a system for performance testing of N-tiered computer systems using recording and playback of workloads |
WO2003081440A1 (en) * | 2002-03-21 | 2003-10-02 | Snapp Robert F | Method and system for storing and retrieving data using hash-accessed multiple data stores |
US7167980B2 (en) * | 2002-05-30 | 2007-01-23 | Intel Corporation | Data comparison process |
US6950517B2 (en) | 2002-07-24 | 2005-09-27 | Qualcomm, Inc. | Efficient encryption and authentication for data processing systems |
US7321659B2 (en) | 2003-10-01 | 2008-01-22 | International Business Machines Corporation | Simple universal hash for plaintext aware encryption |
-
2005
- 2005-05-03 US US11/122,157 patent/US8977859B2/en active Active
- 2005-05-04 NL NL1028971A patent/NL1028971C2/nl active Search and Examination
- 2005-05-04 DE DE102005020881A patent/DE102005020881A1/de not_active Ceased
- 2005-05-04 GB GB0509063A patent/GB2413867B/en active Active
- 2005-05-04 EP EP05252745.4A patent/EP1594252B1/en active Active
-
2011
- 2011-10-27 US US13/283,255 patent/US9003194B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5032987A (en) * | 1988-08-04 | 1991-07-16 | Digital Equipment Corporation | System with a plurality of hash tables each using different adaptive hashing functions |
US5371499A (en) * | 1992-02-28 | 1994-12-06 | Intersecting Concepts, Inc. | Data compression using hashing |
EP1041767A2 (en) * | 1999-03-30 | 2000-10-04 | Fujitsu Limited | Authentication of electronic data |
US20020191791A1 (en) * | 2001-06-13 | 2002-12-19 | Anand Satish N. | Apparatus and method for a hash processing system using multiple hash storage areas |
US20040181561A1 (en) * | 2003-03-14 | 2004-09-16 | International Business Machines Corporation | Real time XML data update identification |
Also Published As
Publication number | Publication date |
---|---|
US20120041931A1 (en) | 2012-02-16 |
DE102005020881A1 (de) | 2006-03-09 |
EP1594252B1 (en) | 2017-07-12 |
GB2413867A (en) | 2005-11-09 |
EP1594252A2 (en) | 2005-11-09 |
US9003194B2 (en) | 2015-04-07 |
US8977859B2 (en) | 2015-03-10 |
EP1594252A3 (en) | 2005-12-28 |
GB0509063D0 (en) | 2005-06-08 |
US20050268341A1 (en) | 2005-12-01 |
GB2413867B (en) | 2007-07-25 |
NL1028971A1 (nl) | 2005-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
NL1028971C2 (nl) | Systemen en werkwijzen voor gegevenscompressie en decompressie. | |
Almazrooie et al. | Integrity verification for digital Holy Quran verses using cryptographic hash function and compression | |
CN109791594B (zh) | 在关系数据库上执行写入和存储操作的方法及可读介质 | |
US9798731B2 (en) | Delta compression of probabilistically clustered chunks of data | |
Kuhn et al. | Making digital artifacts on the web verifiable and reliable | |
CN111201519A (zh) | 用于低时延读取和写入大型数据集的不可变数据存储 | |
KR20200139437A (ko) | 문서의 신뢰성을 보장하기 위한 블록체인 기반의 문서 정보 관리 장치 및 그 동작 방법 | |
CN113391880A (zh) | 一种分层双重哈希验证的可信镜像传输方法 | |
Hand et al. | Bin-Carver: Automatic recovery of binary executable files | |
Liu et al. | GPU-accelerated BWT construction for large collection of short reads | |
Chhabra et al. | Engineering order‐preserving pattern matching with SIMD parallelism | |
Idalino et al. | Locating modifications in signed data for partial data integrity | |
CN105811994B (zh) | 一种计算机数据压缩处理系统 | |
Reddy et al. | Multiple hashing using SHA-256 and MD5 | |
US12052370B2 (en) | Managing state in accelerators | |
US7870103B1 (en) | Tolerating and reporting collisions in content-derived identifiers of data segments using secondary identifiers | |
Daulay et al. | Realization and addressing analysis in blockchain bitcoin | |
Xu et al. | Dynamic proofs of retrievability with square-root oblivious RAM | |
CN110363000B (zh) | 识别恶意文件的方法、装置、电子设备及存储介质 | |
AU2005297525A1 (en) | Device and method for testing and establishing test values | |
Xiao et al. | Efficient algorithms for finding edit-distance based motifs | |
DiPietrantonio | Fast Rolling Hashes for Data Deduplication | |
KR101893504B1 (ko) | 리눅스 환경에서 파일 무결성 검증 장치 및 방법 | |
JP6631139B2 (ja) | 検索制御プログラム、検索制御方法および検索サーバ装置 | |
Dhulavvagol et al. | SHARD-FEMF: adaptive forensic evidence management framework using blockchain sharding and IPFS. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AD1A | A request for search or an international type search has been filed | ||
RD2N | Patents in respect of which a decision has been taken or a report has been made (novelty report) |
Effective date: 20060406 |
|
PD2B | A search report has been drawn up |