A binary hash tree

Ծածկագրության և համակարգչային գիտության մեջ Hash ծառերը կամ Merkle ծառերը Տվյալների կառուցվածքի մասն են որը պարունակում է ծառը ամփոփ տեղեկատվության ավելի մեծ կտոր տվյալների համար: Օրինակ, մի ֆայլ - ը օգտագործվում է ստուգել իր բովանդակությունը: Hash ծառերը hash ցուցակների և hash շխթայավորման կոմբինացիա է, որոնք իրենց հերթին են Ստուգման նպատակով եւ Hash .Hash ծառ, որի հիմքում ընկած Hash գործառույթը Tiger հաճախ անվանում են 'Tiger ծառերը կամ 'Tiger ծառը hashes.

Օգտագործումը խմբագրել

Hash ծառ կարելի է ստուգել ցանկացած տիպի տվյալների շտեմարանը, թվով եւ փոխանցվում են միջեւ computers. Ներկայումս հիմնական օգտագործումը Hash ծառերի է, որ տվյալների արգելափակում ստացված մյուս հասակակիցների է գործընկերների-to-գործընկերների ցանց է: ստացվում են undamaged ու անփոփոխ է, եւ նույնիսկ ստուգել, որ մյուս հասակակիցների չեն ստել եւ ուղարկել կեղծ նյութից.. Առաջարկություններ են եղել կիրառել Hash ծառ Trusted Համակարգիչներ համակարգերի Sun Microsystems օգտագործել Hash ծառեր են [[]] ZFS filesystem.[1]Hash ծառերը օգտագործվում են Google Wave արձանագրությունը,[2] Գիտ բաշխված վերանայումը հսկողության համակարգը, որը Tahoe-LAFS կրկնօրինակում համակարգ է, որը Bitcoin գործընկերների-to-գործընկերների ցանցը, եւ մի շարք NoSQL համակարգեր, ինչպիսիք են Apache Cassandra & Riak[3]

Hash ծառ հորինել է 1979 թ - ի Ռալֆ Merkle.[4] բնօրինակը նպատակն էր, որ հնարավոր է արդյունավետորեն կարգավորել բազմաթիվ Lamport մեկ անգամ ստորագրություն. Lamport ստորագրություններ են հավատում, որ դեռ պետք է ապահով այն դեպքում, երբ քվանտ համակարգչային դառնա իրականություն Դժբախտաբար, ամեն Lamport բանալին կարող են օգտագործվել միայն ստորագրել մի հաղորդագրություն: Բայց զուգորդվում Hash ծառերի դրանք կարող են օգտագործվել բազմաթիվ հաղորդագրություններից այնուհետեւ դառնալ բավականին արդյունավետ թվային ստորագրության սխեման.

Ինչպես է Hash ծառը աշխատում խմբագրել

A Hash ծառ է ծառը of hashes, որի տերեւները են hashes տվյալների բլոկների մեջ, ասենք, մի ֆայլ կամ շարք ֆայլերի. Հանգույցների ավելի է ծառից են hashes են իրենց երեխաներին. Օրինակ, պատկերակը' Hash 0 արդյունք է hashing Hash 0-0, հետո Hash 0-1. Այսինքն, Hash 0 = Hash (0-0 Hash | | Hash 0-1) որտեղից | | նշանակում concatenation.

Շատ Hash ծառի implementations են Երկուական (երկու երեխա հանգույցների մինչեւ յուրաքանչյուր հանգույց), սակայն նրանք կարող են ճիշտ այնպես, ինչպես նաեւ օգտվել շատ ավելի երեխաների հանգույցների տակ ամեն հանգույց.

Սովորաբար, a cryptographic Hash ֆունկցիայի, օրինակ, ՊԱԳ-1, հորձանուտ կամ Tiger օգտագործվում է hashing. Եթե ​​Hash ծառը, միայն պետք է պաշտպանեն unintentional վնասի, շատ ավելի պակաս անվտանգ checksum ներ, ինչպիսիք են CRCs կարող է օգտագործվել:

Իսկ վերեւում մի Hash ծառի կա վերեւ Hash ( կամ կամ արմատ Hash վարպետ Hash).Մինչեւ բեռնել ֆայլի մասին p2p ցանց է, շատ դեպքերում վեր Hash ձեռք է բերվում մի վստահելի աղբյուրի, օրինակ, մի ընկեր, թե կայքը, որը հայտնի է ունենալ լավ առաջարկությունները ֆայլից բեռնել. Երբ վերեւ Hash հասանելի է, Hash ծառը կարելի է ստանալ ցանկացած ոչ վստահելի աղբյուրի, ինչպես ցանկացած հասակակիցների հետ p2p ցանց. Այնուհետեւ ստացված Hash ծառը ճշտվում դեմ վստահելի սկիզբ Hash, եւ եթե Hash ծառը վնասված է կամ կեղծ, մյուսը Hash ծառը այլ աղբյուրից պետք է փորձել, մինչեւ ծրագիրը գտնում է, որ համապատասխանում բարձրագույն Hash:

Հիմնական տարբերությունն է Hash ցանկում այն է, որ մասնաճյուղը Hash ծառը կարող եք բեռնել այն ժամանակ, եւ ամբողջականության յուրաքանչյուր մասնաճյուղում կարելի է ստուգել անմիջապես, թեեւ ամբողջ ծառը դեռ մատչելի չէ: Օրինակ, պատկերակը ամբողջականությունը Տվյալների բլոկի 2 կարող է ստուգվել է անմիջապես, եթե ծառն արդեն պարունակում է' եւ Hash 0-0 Hash 1 - ի կողմից hashing տվյալների բլոկ եւ iteratively համատեղելով արդյունքները ինչպես Hash 0-0, հետո Hash 1 եւ վերջապես համեմատելով արդյունքի հետ սկիզբ Hash. Նմանապես, ամբողջականությունը Տվյալների բլոկի 3 կարող է ստուգվել, եթե ծառն արդեն ունի' եւ Hash 1-1 Hash 0Սա կարող է լինել առավելություն, քանի որ այն արդյունավետ է պառակտել ֆայլեր են, շատ փոքր տվյալների բլոկների այնպես, որ միայն փոքր արգելափակում պետք է redownloaded եթե նրանք ստանում են վնասվել: Եթե ​​hashed ֆայլը շատ մեծ, նման Hash ծառ կամ Hash ցուցակ դառնում է բավական մեծ է. Բայց եթե դա ծառ, մի փոքրիկ ճյուղ կարող եք բեռնել արագ ամբողջականությունը մասնաճյուղի կարող է ստուգվել, եւ ապա բեռնելիս Տվյալների փոխանակման բլոկների կարող եք սկսել.

Կան մի քանի լրացուցիչ tricks, նպաստների եւ Մանրամասնորեն կապված Hash ծառերը. Տես տեղեկանքներ եւ Արտաքին հղումներ ստորեւ ավելի մանրամասն տեղեկությունների համար.

Վագր Hash ծառ խմբագրել

Tiger ծառը խանգարել է լայնորեն կիրառվում ձեւ Hash ծառը. Այն օգտագործում է երկուական Hash ծառ (երկու երեխա հանգույցների մինչեւ յուրաքանչյուր հանգույց), սովորաբար ունի տվյալների շրջափակման չափը 1024 - բայտ ներ եւ օգտագործում է cryptographically ապահով Tiger Hash.

Վագրի ծառի hashes օգտագործվում է Gnutella եւ Gnutella2, եւ ուղղակի միացման P2P ֆայլերի փոխանակման արձանագրությունների եւ ֆայլերի փոխանակման ծրագրեր, ինչպիսիք են

Phex, BearShare, LimeWire, Shareaza, DC++ ի խաղարկային ցուցակը[5] and  Valknut.Կաղապար:Citation հարկավոր


Տես նաև խմբագրել

Տեղեկանքներ խմբագրել

  1. Jeff Bonwick's Blog Օրագիր ZFS End-to-End Data Integrity
  2. Google Wave Federation արձանագրություն Wave Protocol Verification Paper
  3. "Երբ replica նվազել համար ընդլայնված ժամկետով, կամ մեքենա պահելու ակնարկել handoffs համար անհասանելի կրկնօրինակը գնում ներքեւ, ինչպես նաեւ, Replicas պետք Համաժամացում մեկ մյուսը: այս դեպքում, Cassandra եւ Riak իրականացնել Դինամո - ոգեշնչված գործընթացը կոչվում դեմ entropy մեջ հակա - entropy է, Replicas փոխանակման Merkle ծառերը բացահայտել մասերը իրենց replicated առանցքային միջակայքերը, որոնք դուրս են - ի Sync. Merkle ծառ է հիերարխիկ Hash ստուգման եթե Hash է ամբողջ keyspace նույնը չէ երկու Replicas, նրանք կփոխանակեն hashes են փոքր եւ ավելի փոքր մասի նկատմամբ replicated keyspace մինչեւ out-of-Sync բանալիներ են հայտնաբերել. Այս մոտեցումը նվազեցնում ավելորդ տվյալների փոխանցման միջեւ, Replicas, որը պարունակում է հիմնականում նման տվյալներ." http://www.aosabook.org/en/nosql.html
  4. R. C. Merkle, թվային ստորագրության հիման վրա պայմանական կոդավորումը ֆունկցիա '87 ծպտյալ ,
  5. "DC++'s feature list"

Արտաքին հղումներ խմբագրել

Կաղապար:Crypto navbox Կաղապար:CS-Trees

Category:Error detection and correction Category:Cryptographic hash functions Category:Hashing Category:Trees (data structures) hy:Hash tree