Basit kelimelerle sha 256 algoritması. Madenciliğe kripto algoritmalarını açıklayın. Daha muzaffer

Oleksandr Markov

SHA 256 kısaltması, NSA faksları tarafından oluşturulan bir karma istek mekanizması olan Secure Hashing Algorithm'in kısaltmasıdır. Algoritmanın temel görevi, tür bilgilerinin sabit bir değere dönüştürülmesidir, bu verileri tanımlama yöntemi arasında ayrım yapmak mümkün olmalıdır.

Görünüm tarihi

Bunun, kendi başına 1995 yılında genişletilen ve sivil amaçlarla kullanıldığı ortaya çıkan halefi - SHA-1'e dayanan yaratımlar olan başka bir neslin algoritması olması çok önemlidir. Güncellenmiş versiyon Nin_ popüler algoritması, 2002 yılında Ulusal Güvenlik Ajansı uzmanları tarafından oluşturuldu.

Üç yıl sonra, algoritmayı sivil amaçlarla kazanmamı sağlayan bir patent ortaya çıktı. Popüler mekanizmanın üçüncü versiyonu 2012'de ortaya çıktı ve Ulusal Standartlar kurumlarından uzmanlar geliştirmeye katıldı. Bu arada, SHA-3 seleflerini kazanacak.

Dönüştürülen verileri deşifre etmek imkansızdır, hash toplamının parçaları klasik yorumlama sürecinde şifreleme işlemi olarak görülemez. Tek yönlü bir şifreleme algoritması, belirsiz miktarda bilgiyi işler.

Varto kesinlikle her şeyi belirtir temel sürümler algoritma Güvenli Karma Algoritma, Merkle-Damgard ilkesine göre oluşturulmuştur: bilgi eşit kategorilere ayrılmıştır. Cilt grubu, tek taraflı bir tutuşa tabi tutulur, bundan sonra cildin derisi önemli ölçüde değişir.

Böyle bir şifreleme yöntemi kişisel olmayabilir:

  • verilerin sıkıştırılması derhal gerçekleştirilir;
  • anahtarlar olmadan dönüşüm sürecini yapmak imkansızdır;
  • imovirnіst görünüm kolіzіy zveda nanіvets.

Teknik özellikler

Veriler için randevu protokolü, parçalara bölünme, toplam cilt - 64 bayt. Algoritma, konsolidasyonu sağlar ve ardından 256 bitlik bir kod bildirilir. Şifreleme teknolojisi, döngüselliği 64 kat olan görünüşte garip bir tura dayanmaktadır.

  • 64 bayt blok boyutu.
  • Şifrelenecek kodun maksimum uzunluğu 33 bayttır.
  • Uyarı özeti parametreleri – 32 bayt.
  • zamovchuvannyam için Rozmir - 4 bayt.
  • Bir döngünün sınırlarındaki tekrar sayısı 64'tür.
  • Algoritmanın hızı 140 Mb/s'dir.

Daha önce belirtildiği gibi, SHA-256 protokolü Merkle-Damgard konseptine dayanmaktadır ve daha sonra önce bloklara, ardından bitişik kelimelere bölünmüştür.

Rastgele bir tekrar aralığını geçmek için bilgi toplama - 64 veya 80. Cilt döngüsüne kelimelerin dönüşümü eşlik eder. Alt toplam karma kodu, koçanı değerlerinin toplamından sonra oluşturulur.

SHA-256 algoritması ile kripto para birimi

Madenciliği SHA-256 algoritmasının ilkelerine dayanan dijital para birimlerine bir göz atalım:

  • Bitcoin, daha önce olduğu gibi ek bir tanıtım gerektirmeyen bir para birimidir, en popüler kripto varlığıdır.
  • Peercoin, kodun Bitcoin temelinde oluşturulmasıyla benzersizdir, mekanizma önlemin savunması için galip gelir ve PoW, madeni paraları dağıtmak içindir.
  • Namecoin - teknoloji bir kod ile Yavaş yavaş güvenliği, mahremiyeti ve ademi merkeziyetçiliği iyileştireceğim.
  • Unobtanium - enflasyondan önce minimum dalgalanma ile karakterizedir. Unobtanium madeni paralarından oluşan bir vidobot için yaklaşık 300 madeni para gerekir.
  • Deutsche eMark, pennies gibi çeşitli varlıkların transferi için dijital bir ölçüdür. Değişim aracı olmadan gerçekleştirilir.
  • BetaCoin, Bitcoin sistemiyle aynı prensipte çalışan uluslararası bir ödeme sistemidir.
  • Joulecoin - Bitcoin'e dayalı işlemlerin en verimli şekilde onaylanmasını sağlar.
  • IXCoin, eşler arası ilkeye dayalı kod tabanlı bir temele sahip başka bir projedir.
  • – Benzersiz içeriğin yayınlanması için Blockchain platformu, yak üzüm bağları.

Varto ayrıca SHA-256 algoritmasının Litecoin sisteminde kazandığı, ancak alt programda kazanmadığı anlamına gelir. Madencilik için Scrypt protokolü kurulur.

SHA-256 algoritmasında kripto para madenciliği

Bazı nedenlerden dolayı, sistemleri bu protokol için kullanılan paraları almak için üç şekilde yapılabilir:

  • ASIC.

Ortası olmayan madenciliğin katlanabilirliği, kripto para bulmanın bir yolunun bulunmasına bağlıdır. Bununla birlikte, her durumda, ASIC ekinin kendisi, başı olağanüstü yüksek çeşitlilik olan en yüksek verimlilik ile karakterize edilir.

Ortalama bir ASIC madencisinin maliyeti yaklaşık 100 bin ruble (Asic Miner AVALON 821), ancak fiyatı beş milyon rubleye ulaşabilen daha pahalı modeller satın almak da mümkündür (Asic Miner BITFURY B8 16NM 50 TH/S) .

İşlemcilerdeki kripto para biriminin video önyüklemesi söz konusu olduğunda, böyle bir yöntem en az etkilidir. Özellikle dijital para birimi Bitcoin hakkında konuşurken.

En yeterli çözüm video kartlarından. Popo fermisinin ortalama varyantı 1000-2000 $ aralığındadır. SHA-256 algoritmasına dayalı bir kripto para birimi video kabini için bir video kartı nasıl seçilir?

Nvidia'dan bahsediyorsan, en iyi çözümler video kartı (1400 MH/s) olun. Açıkçası AMD'de kesintisiz bir rakip diye bir şey yok, bu yüzden Vega serisinin tüm kartları madencilik için kullanılıyor. Radeon RX Vega video adaptörü, 1200 MH/S hızında madencilik sağlar. Böyle bir mülkiyete sahip olmanın aynısı, kazanılacak bir sonraki şeydir.

Daha ucuz bir seçenek arıyorsanız bu durumda Radeon 7970 alabilirsiniz, yani 800 MH/s'ye kadar görebilirsiniz. Bir çiftliğin piyasaya sürülmesi için bir video kartının, örneğin soğutma radyatörleri, bir yaşam ünitesi gibi daha fazla donanıma ihtiyaç duyacağını unutmayın. operasyonel bellek ve benzeri.

Visnovok

Madencilerin SHA-256 algoritması hakkında bilmesi gereken her şey budur. Açıkçası, birçok modern kripto para birimi Scrypt protokolüne dayanmaktadır ve daha önce olduğu gibi en popüler madeni paranın (BTC) madenciliği bu prensibi takip eder.

SHA - 256 ne için?

SHA 256 - Güvenli Karma Algoritmanın kısaltması - popüler değil kriptografik karma algoritma, bölme Ulusal Güvenlik Ajansı - ABD Ulusal Güvenlik Ajansı. SHA-256'nın görevi, sabit bir değere sahip bir dizi veri oluşturmanın gerekli olduğu gerçeğine dayanmaktadır. tanımlayıcı tsikh danik.

Otrimane değerleri, alınması imkansız olduğu için resmi verilerin kopyalarıyla karşılaştırılır. Algoritmanın stoklamasının ana kapsamı, bilgilerin korunması, işlevsiz kalması ve daha geniş otrimala ile ilgili çeşitli eklentiler veya hizmetlerde çalışmaktır. daha geniş. Ayrıca kripto para madenciliği için bir teknoloji olarak kazanır.

Bu algoritma, ilk kez 1995 yılında sivil amaçlarla oluşturulan SHA-1 algoritması temelinde geliştirilen SHA-2 şifreleme algoritmaları grubuna aittir. SHA-2, 2002 baharında ABD Ulusal Güvenlik Ajansı tarafından ayrıştırıldı. Üç yıl boyunca ABD NSA, sivil projelerde SHA teknolojisini kullanmak için bir patent yayınladı.

2012 yılında, Ulusal Standartlar ve Teknoloji Enstitüsü'nde algoritmada bir güncelleme yapıldı: SHA - 3. Yıl için, yeni algoritma aerodinamik bir ana SHA - 2 algoritması olarak kabul edildi, ancak zaten güncelliğini yitirdi, ancak SHA - 1 hala galip.

Hash - klasik rozumіnni teknolojisi tarafından şifrelenmeyen veri miktarı, iade kitabından verilerin deşifre edilmesi imkansızdır. Herhangi bir sayıda veri için tek yönlü şifreleme yapın. Tüm SHA algoritmaları Merkle-Damgard yöntemine dayanmaktadır: veriler eşit gruplara bölünmüştür, bunların dış yüzeyi tek yönlü bir sıkma işlevinden geçmelidir. Hangi dohina'nın ardından veriler değişiyor.

Bu yöntemin iki önemli avantajı vardır:

  • anahtarlar olmadan hızlı şifrelemenin şifresini çözmek neredeyse imkansızdır;
  • kolizmlerin ortaya çıkması için minimum risk (aynı görüntüler).

Daha muzaffer

Günümüzün skin korsanı Merezhi, chi'yi bilen hacker SHA-256: SSL güvenlik sertifikası, SHA-256 algoritması da dahil olmak üzere bir web sitesinin bir tür skin korsanlığı. Site ile korunan z'ednannya'nın kurulması ve doğrulanması için gereklidir.

Artı SHA - 256

SHA-256-öz uzantılar diğerlerinin ortasında madencilik algoritması. Kendisinin kötülük kadar güçlü olduğunu (nadir hatalar için) ve hem madencilik hem de diğer amaçlar için verimli bir algoritma olduğunu kanıtladı.

Eksi SHA - 256

Golovny nedolіkom SHA - 256 є yoga kontrol altında madencilere: en büyük hesaplama baskılarının listeleri, bir tane içeren kripto para biriminin çoğunu ortadan kaldırır. esas kripto para ilkeleri ademi merkeziyetçilik.

Bundan sonra büyük yatırımcılar olarak, bitcoinin endüstriyel madenciliği için hesaplama baskısına kuruşlar yatırmaya başladılar, bagator madenciliğinin katlanabilirliği arttı ve vinatkoviy hesaplama gerginliğinin başlaması artmaya başladı. Scrypt gibi kripto para birimlerinin madenciliğinde modern ve "hapis" olan diğer protokollerde çok az değişiklik var. Bugün SHA-256, kripto para piyasasının daha büyük bir bölümünü işgal edenlerden bağımsız olarak, daha fazla çalıntı ve kaymış protokollerin yükünü ekleyerek egemenliğimizi gevşeteceğiz.

Bir saat sonra SHA-1 algoritmaları, çarpışmaların hareketsiz bir şekilde doğrulanması yoluyla gerekli güvenilirlik seviyesini vermekten vazgeçti. SHA-256, SHA-512 gibi, bir eksiklik durumunda daha güvenlidir, ancak suçun taşınmazlığı hala mevcuttur.

Kripto para Wiki

SHA'da Madencilik - 256

SHA - 256'da madencilik, diğer algoritmalarda olduğu gibi - tüm süreç katlanabilir gibi görünüyor. kriptografik Program madencilik için önceki bloklardan elde edilen veriler temelinde oluşturduğu için görevler.

Farklı SHA-256 işlevleriyle madencilik yapmanın üç yolu vardır:

  • CPU (merkezi işlem birimi);
  • GPU (grafik işlemci);
  • uzmanlıklarİşlemci: ASIC.

Madencilik için hash, halihazırda var olan blokların bir tanımlayıcısı olarak zaferlerin toplamı ve öncekilere dayanarak yenilerinin oluşturulmasıdır. Madencilik süreci, "kabul edilen f33ae3bc9 ..." adresindeki arayüzde görüntülenir. De f33ae3bc9 - tse hash - toplam, verinin bir parçası, tanınanşifre çözme için. Ana blok, çok sayıda benzer karmadan oluşur - toplam.

Tobto, SHA algoritması ile madencilik - 256 є kusursuz doğru karma değeri seçme - toplam, yeni bir blok oluşturmak için sayıların numaralandırılması. Sayma baskılarınız ne kadar fazlaysa, doğru bloğu elde etme şansınız o kadar artar: farklı karma toplamların numaralandırma hızı, baskılarda yatmaktadır.

Bitcoin'in SHA - 256 algoritmasında istediği kişilere sesleniyoruz, rekabetçi büyük uyuşturma suşu bölgesinde yeni ihtiyaçlar üzerine madencilik. Bu nedenle, bitcoin madenciliği için "ASIC'lerin" üretimi uzun süredir geliştirildi - uygulamaya özel entegre devre, i.i. e. özel amaçlı bir entegre devre. ASIC'ler, bitcoinlerin ve diğer kripto para birimlerinin SHA-256 algoritmasında daha zengin, daha verimli ve daha ucuza çıkarılmasına olanak tanır.

Kripto para birimleri SHA - 256 algoritmasını nasıl hackliyor?

SHA - 256, kripto para birimleri için klasik bir algoritmadır: ana kripto para birimi olan Bitcoin, yenilerden ilham almıştır. Görünüşe göre, aynı algoritma bitcoin çatalları için galip geldi: Bitcoin Cash, Gold, Diamond için.

Krim onları, SHA - 256 da muzaffer:

  • Steemit;
  • DigiByte;
  • akran madeni para;
  • isim parası;
  • Teckcoin;
  • o para;
  • Zetacoin;
  • emercoin.

Ayrıca, SHA-256 algoritması, Litecoin kripto para biriminde bir alt program olarak galip gelir ve madencilik için ana algoritma Scrypt'tir.

Kripto para biriminin artan popülaritesi ile daha fazla insan onu gelecek vaat eden bir finansal araç olarak kabul etmeye başladı. Prote, çok az insan dahil olur, bilimsel ve teknolojik ilerleme için hangi değeri temsil ederler. Bu fenomenin özünü anlamak için, SHA-256 kodunun bilinmeyen ve gizemli kısaltmalarının yanı sıra anlamak için çeşitli kriptografik bilgiler arasında yolunuzu bulmanız gerekir. Bu konuda ve şu anki makalede timetsya.

madencilik nedir?

Madencilik, her türlü dijital para biriminin mekanizması için deponun başıdır. Özel yardımcılara izin veren kırmızı bir karma kodun yüklenmesi için zaten kişisel olmayan bir şekilde değiştirilmiş olan tek bir blokta işlemi tamamlamak için madenciler tarafından gruplandırmada polagaє ilkesi. Değer benzermiş gibi, blok benimdir ve madalyonun blok zincirine eklenir. Böyle bir sayma faaliyeti, herhangi bir aşındırıcılık vermez, gerekli bloğun neslinin katlanmasını yükseltir. Öte yandan, daha az zavdyaki їy koristuvachi e-para birimi vpevnі olabilir, scho їhnіy Maidanchik kontrol ve merkezileşme almayacak.

Standart karma işlevi, bir bloğu girdi olarak kabul eder. şarkı bilgisi, çıkışta, o hayal edilemez anlamı görerek. Gerekli göstergeyi bilmek için en uygun yöntem olmayacak şekilde bölünmüştür, doğru karma kodunu bulana kadar aramayı tekrarlamanız ve tekrarlamanız gerekir.

En popüler protokollerden biri SHA-256'dır. Dünyanın en ünlü ilk kripto para birimi Bitcoin'dir. Ayrıca, güvenliğin iyileştirilmesi, algoritmanın 2 kez çalıştırılmasına eşittir ve zaten altüst olarak adlandırılır.

Bitcoin'de karma uygulanabilirlik kriterleri, koçanı başına "0" sayısını gerektirir. Benzer bir değer göstermek de önemlidir, örneğin, bir arabanın numarasını veya birkaç 0 ile biten şık bir numarayı girmek gibi. Anlamak, hash işlevi için daha katlanabilir. Belirli bir saatte, doğru değer yaklaşık 17 koçanı sıfır içerebilir, bu nedenle 1.4'te yalnızca bir tanesi 20 adımda 10 ile çarpılır. Maçı yürütmek, benzer bir hash bilmek, gezegendeki bilinmeyen kütlenin tüm dünyasının ortasında aynı hash'i bilmek çok daha doğrudur.

Ajans tarafından SHA-256 algoritmasının posta versiyonu oluşturuldu Ulusal Güvenlik ABD baharı 2002. Birkaç ay sonra, Ulusal Metroloji Üniversitesi, verilerin güvenli bir şekilde işlenmesi için federal düzeyde kabul edilen FIPS PUB 180-2'de yeni bir şifreleme protokolü yayınladı. Vzimku 2004 roku popovnivsya'da algoritmanın başka bir versiyonu.

Sonraki 3 yıl boyunca NSA, Telif Hakkı içermeyen bir lisans altında SHA 2. nesil için bir patent yayınladı. Aynısı sivil alanlarda teknolojinin durgunluğuna yol açtı.

Saygı duyun! Bitirmek cicavia gerçeği: deri koristuvach Tüm Dünyanın Örümceği, kendim bilmeden, kendi başına bir saatliğine, İnternet bu protokolden daha pahalıdır. Bir web kaynağı bir SSL güvenlik sertifikası ile korunduğunda, otomatik olarak SHA-256 algoritmasına karşı çalışır.

Bu protokol, her biri 512 bitlik (veya 64 baytlık) parçalara bölünmüş bilgilere dayanmaktadır. Vіn її kriptografik "zmіshuvannya" ve ardından 256-bit karma kodu vіd. Depodan önce, algoritma 64 kez tekrarlanan tek bir basit tura girer.

Ek olarak, SHA-256 kötü teknik parametrelere ulaşabilir:

  • Blok boyutu göstergesi (bayt) - 64.
  • İzin verilen uzatma uzunluğunu (bayt) sınırlayın - 33.
  • Bildirimin zorunlu özetinin özelliği (bayt) - 32.
  • Standart kelime boyutu (bayt) - 4.
  • Dahili istasyonun (bayt) uzunluk parametresi 32'dir.
  • Bir döngüdeki yineleme sayısı 64'ten azdır.
  • Protokol tarafından erişilebilen hız (MiB/s) yaklaşık 140'tır.

SHA-256 algoritmasının çalışması, Merkle-Damgard'ı yönlendirme yöntemine dayanmaktadır, değişiklikten sonra koçanın indeksinin bir dereceye kadar bloklara bölünmesi ve ti'nin kendi yolunda 16 kelimeye bölünmesi mümkündür.

80 veya 64 yineleme olan döngüden geçmek için veri kazanma. Deri aşaması, depolama bloklarından hash işleminin başlatılmasıyla karakterize edilir. Birkaçı işlevin araçları tarafından işlenir. Daha sonra, sonuçta hash kodunun doğru gösterimini gördükten sonra, dönüşümün sonuçları eklenir. Bir kiraz bloğunun oluşturulması için cephenin değerleri belirlenir. Onları yeniden yapmak için okremo bir şekilde pes etmez.

Ayrıca, böyle bir işlevsel protokole dayalı olarak 6 bitlik işlemleri tahmin edin:

  • "ve" - ​​bitsel işlem "I";
  • "shr" - değeri gereken bit sayısı kadar sağa hareket ettirin;
  • "çürümeler" - takım ön açısından benzer, aynı farkla, döngüsel yıkıma neden olur;
  • "||" veya bitiştirme - doğrusal bir yapının parçalarının, çoğunlukla sıraların birleştirilmesi işlemi;
  • "xor" - "ABO"yu seçme komutu;
  • "+" - olağan katlama işlemi.

Herhangi bir şifreleme algoritması için tipik bir işlem grubunu nasıl tamamlayabilirsiniz?

Algoritmanın değerini belirlemek için kriptanalize geri dönmek gerekir. Tsya disiplini, özel bir anahtara ihtiyaç duymadan bilgilerin şifresini çözme yöntemlerini bilmek.

SHA-256'nın tuhaflıkların varlığına ilişkin ilk çalışmaları, 2003 yılında sahteler tarafından tanınmaya başlandı. O zaman, protokolde af yoktu.

Prote, zaten 2008'in ortasında, Hindistan'dan bir grup uzman, SHA mimari ailesinin 22 yinelemesinin sayılarını bulmayı başardı. Birkaç aylık önermeden sonra, protokolün kesilmiş bir versiyonu için çarpışmaları çözme yöntemi ve ardından ara olmayan SHA-256'nın kendisinin hash'inin 31 yinelemesi için bir yöntem.

Boğazın işlevini analiz etmek için bir saatin altında 2 farklı saldırının doğruluğunu test etmek gerekir:

  1. Prototipin varlığı, yogo hash kodundaki koçanı mesajının şifresinin çözülmesidir. Bu tür vplyu, dönüşümün sonuçlarının en iyi savunmasını garanti eder.
  2. Rebuvannya kolіzіy - farklı giriş parametreleriyle benzer çıktı verileri. Bu kadar çeşitli saldırılara karşı direnç açısından ise doğrudan nadas halindedir. Elektronik İmzaіz vekoristannyam gerçek protokol.

SHA algoritmasının başka bir neslinin yaratıcıları, yeni şifreleme mekanizmasının diğer ilkeler temelinde işlevsel olduğu konusunda yalan söylediler. Böylece, 2012 sonbaharında, üçüncü dizinin protokolü olan Keccak dünyada ortaya çıktı.

Pratik olarak zastosuvannya ve teknoloji sertifikası

Amerika Birleşik Devletleri eyaletlerinin yasaları, bilgilerin korunması için aynı eyalet programlarında SHA-256 ve diğer benzer karma yöntemlerinin kullanılmasına izin verir. Öte yandan, ticari şirketler tarafından algoritmanın engellenmesine izin verilmektedir.

Önemli! Bu nedenle, bu protokolün ilk dijital para birimi için kullanılmasında şaşırtıcı bir şey yoktur. Yeni bitcoin madeni paralarının ihracı, mevcut SHA-256 mimarisi için önem sırasına göre belirlenir.

Vidobotku kripto para birimi için özel ek binalara nasıl sığar? Bu algoritma için deri tığ işi basit bir görünüm elde edebilir - ilkel bir bit işlemi ve 32 bit katlama (devrenin temellerini bilen biri, koridora bakıyormuş gibi kolayca görebilirsiniz). Ve bunun için verimli çalışma asic madencileri algoritma için yalnızca bir düzine blok ve adıma ihtiyaç duyar.

Bitcoin, Litecoin, Dogcoin ve diğer benzer “coinlerin” aksine, katlama işlevselliğini sağlayan şifreleme protokolü Scrypt kullanılır. Tsey algoritması aktivite sırasında hash fonksiyonlarının 1024 farklı değerini alıyor ve sonuncusunun çıktısında sonucu alıyoruz. Zavdyaki tsomu, protokolün uygulanması için delicesine büyük miktarda baskı gerektirecektir.

Visnovok

SHA-256 protokolünün çok kolay göründüğü ve günümüzde yogayı başarıyla atlayabilen özel cihazlar (madenciler olarak adlandırılan) olmadığı söylenebilir. O zamandan beri, işlemci üzerinde madencilik yapmak veya video kartlarından çiftlikler seçmek gerekli hale geldi, ASIC ekleri ustalarının daha fazla para kazanmasını sağlıyor. Ancak hangisine sahip Zvorotny Bisikleti. Kripto para birimini merkezileştirmek için madencilerin seçimi, ayrıca yeni hash protokolleri geliştirmek gerekiyor. Böyle bir algoritma haline gelen Scrypt, önemli ölçüde verimlilik gerektiren ve teorik olarak özel avantajların özel uygulamalarına izin veren çok daha gelişmiş bir mekanizmadır.

Sıradan bir koristuvach konumundan, SHA-256 ve Scrypt protokolleri arasında hiçbir fark yoktur. Dijital para birimini bilgisayarınızla veya herhangi bir protokolden oluşan bir grupla madencilik yapabilirsiniz.

Algoritma SHA-256 bugün toplam pazarın, korumanın, duruşun ve daha fazlasının %40'ından fazlasını ödünç alıyor. Yüceltilmiş halefi boğmanın kokusuna engel olamıyorum. Bu nedenle, birkaç yenisinden, merkezi olmayan Maidan Efirium'da kazanmak için seçilen özellikle “madenci geçirmez” Hançer protokolü hakkında tahminde bulunmak gerekiyor. Muhtemelen, hash odasında ve SHA-256 alanında liderin sopasını ben alacağım.

, "Güvenli Karma Standardı (SHS)", ABD. Ticaret Bakanlığı, Mart 2012

Şartlar:
FIPS Federal Bilgi İşleme Standardı (Federal Bilgi İşleme Standardı).
SHA Güvenli Karma Algoritması (Güçlü Karma Algoritması).
- imzasız kelimesi, SHA algoritmasıyla aynı şekilde düşecek şekilde 32 bit (4 bayt) veya 64 bit (8 bayt) olarak değiştirilir.

GÜVENLİ HASH STANDARDI (SHA-1 ve SHA-2 şifreleme işlevleri ailesi)

Aile kriptografik fonksiyonlar SHA'yı iki alt çarpmaya bölme: arası olmayan algoritma SHA-1(1995 rotsi'de yayınlandı - FIPS PUB 180-1) ve başlık altında bir dizi algoritma SHA-2(2002'de yayınlandı - FIPS PUB 180-2, 2008'de güncellendi - FIPS PUB 180-3): SHA-224, SHA-256, SHA-384, SHA-512; FIPS PUB 180-4'e 2012'de algoritmalar eklendi SHA-512/224і SHA-512/256. Tüm SHA-1 ve SHA-2 karma işlevleri ailesini kapsayan FIPS PUB 180-4 standardına bakıyoruz.

Bu standart, aşağıdaki karma algoritmaları tanımlar: SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224і SHA-512/256, dijital verilerin görünümü temelinde hesaplanması gereken (inceleme). Tarih, ale daha az, daha düşük 264 bit (için SHA-1, SHA-224і SHA-256) veya daha az, daha düşük 2128 bit (için SHA-384, SHA-512, SHA-512/224і SHA-512/256), daha sonra sonuç verilecek, rütbe özet veya karma değer bildirimi. Bilginin karma değerinin aralığı, seçilen algoritmaya göre 160 ila 512 bit (veya 20 ila 64 bayt) aralığındadır. Algoritmalar SHA, örneğin algoritmalar gibi diğer kriptografik algoritmalarla birlikte galip geliyor elektronik imza ya kimlik doğrulama onayı (HMAC) anahtarıyla karma saat için veya negatif sayıların (bit) konjugasyonu için.

Bu standarda dahil olan karma algoritmalar, belirli bir algoritmadan sonra daha fazla hesaplanamayanlar için güvenli olarak adlandırılır: 1) belirli bir uyarı özeti için uyarıları gözden geçirin, aksi takdirde 2) bildirimin aynı özeti olabilecek iki farklı bildirimi bilin (harmanlamayı bilin). Povіdomlennі'da Be-yakі zm_ni, s dzhe vysokoj ymovirnіstyu, farklı karma değerlere kadar üretir. Yetkinin gücü, dijital imzaların dönüştürülmesine, onayın doğrulanmasına ve ters sayıların oluşturulmasına dayanır.

Cilt algoritması iki aşamadan oluşur: Ön trim bu karma hesaplama. Ön trim içerir Ek Bilgiler, ek bir hatırlatıcıyı kırmak m- bit blokları, і başlangıç ​​değerlerinin ayarlanması, hash sayarken galip gelen. Hash hesaplaması yinelemeli olarak hesaplanır m-bit blok ek bilgi ve hacker fonksiyonları, sabitler ve kelimeler üzerindeki işlemler hash değerini almak için. Robotik prosedürün sonucu, karma є özet özetinin hesaplanmasıdır.

Karma veri blokları ve satırları ile karma değeri arasında ayrım yapmak için algoritmalar - div. tablo 1.

algoritma Rozmir podomlennya (bit olarak) Rozmir bloğu (bit olarak) Rozmir kelimeleri (bit olarak) Biberiye bilgi özetine (bit olarak)
SHA-1 < 2 64 512 32 160
SHA-224 < 2 64 512 32 224
SHA-256 < 2 64 512 32 256
SHA-384 < 2 128 1024 64 384
SHA-512 < 2 128 1024 64 512
SHA-512/224 < 2 128 1024 64 224
SHA-512/256 < 2 128 1024 64 256
Fonksiyonlar

Doğrusal olmayan fonksiyonların SHA-1 dizisi f 0 , f 1 ,..., f 79. Cilt fonksiyonu f t, de 0 ≤ t< 79 , üç 32-bit değişiklik üzerinde çalışıyor: x, y, і z, bir 32 bitlik kelimenin döndürülmesine neden olur. SHA-1 algoritmasında, saldırgan bir doğrusal olmayan işlevler kümesi galip gelir f t (x, y, z):
00 ≤ t ≤ 19Ch(x, y, z)
20 ≤ t ≤ 39Parite (x, y, z)= x XOR y XOR z
40 ≤ t ≤ 59Maj(x, y, z)
60 ≤ t ≤ 79Parite (x, y, z)= x XOR y XOR z

Boole cebiri.
Saygıyı geri yüklemek için, örneğin işlev nedir? Ch başka bir şekilde koyabilirsiniz:
z XOR (x VE (y XOR z))
Sonuç değişmez. Algoritmanın diğer uygulamalarında bu tür seçenekler kullanılabilir.

Doğrusal olmayan işlevleri kullanan SHA-224 ve SHA-256:

Ch(x, y, z)= (x VE y) XOR (x VE z DEĞİL)
Maj(x, y, z)= (x VE y) XOR (x VE z) XOR (y VE z)

Sigma0(x)= ROTR(x, 2) XOR ROTR(x, 13) XOR ROTR(x, 22)
Sigma1(x)= ROTR(x, 6) XOR ROTR(x, 11) XOR ROTR(x, 25)

Delta0(x)= ROTR(x, 7) XOR ROTR(x, 18) XOR SHR(x, 3)
Delta1(x)= ROTR(x, 17) XOR ROTR(x, 19) XOR SHR(x, 10)


n biraz:
ROTR(x, n) = (x»n) | (x "(32-n))
SHR - zsuv sağ el n biraz:
SHR(x, n) = x » n

SHA-384, SHA-512, SHA-512/224, SHA-512/384 doğrusal olmayan fonksiyon sayısı:

Ch(x, y, z)= (x VE y) XOR (x VE z DEĞİL)
Maj(x, y, z)= (x VE y) XOR (x VE z) XOR (y VE z)

Sigma0(x)= ROTR(x, 28) XOR ROTR(x, 34) XOR ROTR(x, 39)
Sigma1(x)= ROTR(x, 14) XOR ROTR(x, 18) XOR ROTR(x, 41)

Delta0(x)= ROTR(x, 1) XOR ROTR(x, 8) XOR SHR(x, 7)
Delta1(x)= ROTR(x, 19) XOR ROTR(x, 61) XOR SHR(x, 6)

Sözcükler üzerinde işlemler (64-bit).
ROTR - döngüsel zsuv sağ el n biraz:
ROTR(x, n) = (x»n) | (x "(64-n))
SHR - zsuv sağ el n biraz:
SHR(x, n) = x » n

Köstence

Köstence K t
00 ≤ t ≤ 19 0x5a827999
20 ≤ t ≤ 39 0x6ed9eba1
40 ≤ t ≤ 59 0x8f1bbcdc
60 ≤ t ≤ 79 0xca62c1d6

(Yiyecekler size çarptığında, yıldızlar sayılardan geldi, o zaman dzherelo olması gerekiyordu:
0x5A827999 = $\sqrt(2) / 4$ , 0x6ED9EBA1 = $\sqrt(3) / 4$ , 0x8F1BBCDC = $\sqrt(5) / 4$ , 0xCA62C1D6 = $\sqrt(10) / 4$ tümü ile çarpılır 232).

64 sabit (32 bit kelimeler): K 0 , K 1 ... K 63. (Ekler için: ilk 64 asal sayının küp köklerinin atış kısımlarının ilk 32 biti ile qi sabitleri).

K = [
0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,
0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,
0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,
0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,
0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,
0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,
0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,
0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,
0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,
0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,
0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,
0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,
0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,
0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,
0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,
0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2
]

80 sabit (64-bit kelimeler): K 0 , K 1 ... K 79. (Ekler için: ilk 80 asal sayının küp köklerinin atış kesirlerinin ilk 64 biti ile qi sabitleri).

K = [
0x428a2f98d728ae22, 0x7137449123ef65cd, 0xb5c0fbcfec4d3b2f, 0xe9b5dba58189dbbc,
0x3956c25bf348b538, 0x59f111f1b605d019, 0x923f82a4af194f9b, 0xab1c5ed5da6d8118,
0xd807aa98a3030242, 0x12835b0145706fbe, 0x243185be4ee4b28c, 0x550c7dc3d5ffb4e2,
0x72be5d74f27b896f, 0x80deb1fe3b1696b1, 0x9bdc06a725c71235, 0xc19bf174cf692694,
0xe49b69c19ef14ad2, 0xefbe4786384f25e3, 0x0fc19dc68b8cd5b5, 0x240ca1cc77ac9c65,
0x2de92c6f592b0275, 0x4a7484aa6ea6e483, 0x5cb0a9dcbd41fbd4, 0x76f988da831153b5,
0x983e5152ee66dfab, 0xa831c66d2db43210, 0xb00327c898fb213f, 0xbf597fc7beef0ee4,
0xc6e00bf33da88fc2, 0xd5a79147930aa725, 0x06ca6351e003826f, 0x142929670a0e6e70,
0x27b70a8546d22ffc, 0x2e1b21385c26c926, 0x4d2c6dfc5ac42aed, 0x53380d139d95b3df,
0x650a73548baf63de, 0x766a0abb3c77b2a8, 0x81c2c92e47edaee6, 0x92722c851482353b,
0xa2bfe8a14cf10364, 0xa81a664bbc423001, 0xc24b8b70d0f89791, 0xc76c51a30654be30,
0xd192e819d6ef5218, 0xd69906245565a910, 0xf40e3585571202a, 0x106aa07032bbd1b8,
0x19a4c116b8d2d0c8, 0x1e376c085141ab53, 0x2748774cdf8eeb99, 0x34b0bcb5e19b48a8,
0x391c0cb3c5c95a63, 0x4ed8aa4ae3418acb, 0x5b9cca4f7763e373, 0x682e6ff3d6b2b8a3,
0x748f82ee5defb2fc, 0x78a5636f43172f60, 0x84c87814a1f0ab72, 0x8cc702081a6439ec,
0x90befffa23631e28, 0xa4506cebde82bde9, 0xbef9a3f7b2c67915, 0xc67178f2e372532b,
0xca273eceea26619c, 0xd186b8c721c0c207, 0xeada7dd6cde0eb1e, 0xf57d4f7fee6ed178,
0x06f067aa72176fba, 0x0a637dc5a2c898a6, 0x113f9804bef90dae, 0x1b710b35131c471b,
0x28db77f523047d84, 0x32caab7b40c72493, 0x3c9ebe0a15c9bebc, 0x431d67c49c100d4c,
0x4cc5d4becb3e42b6, 0x597f299cfc657e2a, 0x5fcb6fab3ad6faec, 0x6c44198c4a475817
]

Ön trim
1. Ek bilgiler

512 veya 1024 bit ile bölünebilen meta zrobiti podomlennya, SHA algoritmasıyla aynı şekilde depolanır. Zeyilname, karma hesaplama prosedüründen önce veya karma sayma prosedürü sırasında, değiştirilecek olan blok(lar) tamamlanmadan önce kontrol edilebilir.

m dorovnyuє ben "1" k- yani, rozmіr otrimannogo podomlennya buv 64. sıra 512'nin katından daha az ( l+1+k = 448 mod 512). Dali, nihai sonuca 64 bit bildirim eklendi ben dış yardım m "ABC" "1", ardından 448 - (24+1) = 423 bit «0» ve örneğin 24 = 00 ... 011000 dünyasının 64 bitlik bir temsili. Sonuç, formun 512 bitlik bir temsilini alacaktır:

Dovzhina'nın hatırlanması kabul edilebilir m dorovnyuє ben biraz. Sonuna kadar hatırlatma "1", ve sonra sıfır - numarada k- bu nedenle, kaldırılan harflerin sayısını 896'nın katından 128 satır daha az genişletmek için ( l+1+k = 896 mod 1024). Dali, nihai sonuca 128 bit bildirim eklendi ben dış yardım m. Örneğin, (ASCII metni) bir hatırlatıcımız var "ABC" dozhinoy 8 * 3 \u003d 24 bit. Dodaemo'dan podomlennya'ya "1", sonra 896 - (24+1) = 871 bit «0» ve örneğin 24 = 00 ... 011000 dünyasının 128 bitlik bir temsili. Sonuç, formun 1024 bitlik bir temsilini alacaktır:

2. Ek bir hatırlatıcıyı bölmek m- bit blokları

n m-bit blokları.

Ek bilgiler şu bölümlere ayrılmıştır: 512- bit blokları: M(1), M(2) ... M(N). Çünkü 512 bit, 16 (on altı) 32-bit word olarak dönüştürülebilir, ardından ilk 32 bit i M 0 (i), 32 bit geliyor M1 (i), ve hadi gidelim M 15(i).

Ek bilgiler şu bölümlere ayrılmıştır: K 1024- bit blokları: M(1), M(2) ... M(N). Çünkü 512 bit, 16 (on altı) 64-bit word olarak dönüştürülebilir, ardından ilk 64 bit i inci blok M 0 (i), 64 bit geliyor M1 (i), ve hadi gidelim M 15(i).

3. Başlangıç ​​değerlerinin ayarlanması

Karma hesaplama prosedüründen önce, algoritma başlangıç ​​değerlerini ayarlar. H. Rozmir ta kіlkіst slіv H seçilen algoritmaya göre para yatırın.

Chotiri 32-bit kelimeler.
H0 = 0x67452301
H1 = 0xefcdab89
H2=0x98badcfe
H3 = 0x10325476
H4 = 0xc3d2e1f0

32-bit geçişlidir.

0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,
0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4)

32-bit geçişlidir.
H0, H1, H2, H3, H4, H5, H6, H7 = (
0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,
0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19)

(Ekler için: asal sayıların karekökünün kesirli bölümlerinin ilk 32 biti ile qi değerleri - sıra sayıları: ilk 8).

64-bit geçişlidir.
H0, H1, H2, H3, H4, H5, H6, H7 = (
0xcbbb9d5dc1059ed8, 0x629a292a367cd507, 0x9159015a3070dd17,
0x152fecd8f70e5939, 0x67332667ffc00b31, 0x8eb44a8768581511,
0xdb0c2e0d64f98fa7, 0x47b5481dbefa4fa4)

(Ekler için: asal sayıların karekökünün kesirli bölümlerinin ilk 64 biti ile qi değerleri - sıra sayıları: 9'dan 16'ya kadar).

64-bit geçişlidir.
H0, H1, H2, H3, H4, H5, H6, H7 = (


(Ekler için: asal sayıların karekökünün kesirli bölümlerinin ilk 64 biti ile qi değerleri - sıra sayıları: ilk 8).



H0, H1, H2, H3, H4, H5, H6, H7 = (
0x6a09e667f3bcc908, 0xbb67ae8584caa73b, 0x3c6ef372fe94f82b,
0xa54ff53a5f1d36f1, 0x510e527fade682d1, 0x9b05688c2b3e6c1f,
0x1f83d9abfb41bd6b, 0x5be0cd19137e2179)











64-bit geçişlidir.
H0, H1, H2, H3, H4, H5, H6, H7 = (
0x8C3D37C819544DA2, 0x73E1996689DCD4D6, 0x1DFAB7AE32FF9C82,
0x679DD514582F9FCF, 0x0F6D2B697BD44DA8, 0x77E36F7304C48942,
0x3F9D85A86A1D36C8, 0x1112E6AD91D692A1)

"SHA-512/t", sonucu t-bit olarak kısaltılan SHA-512'ye dayalı bir t-bit karma işlevi için ortak bir addır. t-bit karma işlevinin dış görünüm sürümü, farklı başlatma değerleri gerektirecektir. Kimin için girilir özel prosedür SHA-512/t cob değerinin belirli bir t varyantına atanması.

SHA-512/t cob değeri türetme prosedürü.
1. SHA-512 algoritmasına bir H kob değeri alınması.
H0, H1, H2, H3, H4, H5, H6, H7 = (
0x6a09e667f3bcc908, 0xbb67ae8584caa73b, 0x3c6ef372fe94f82b,
0xa54ff53a5f1d36f1, 0x510e527fade682d1, 0x9b05688c2b3e6c1f,
0x1f83d9abfb41bd6b, 0x5be0cd19137e2179)

2. Robimo aşağıdaki hesaplamayı yapın:
H0' = H0 XOR 0xA5A5A5A5A5A5A5A5
H1' = H1 XOR 0xA5A5A5A5A5A5A5A5
H2' = H2 XOR 0xA5A5A5A5A5A5A5A5
H3' = H3 XOR 0xA5A5A5A5A5A5A5A5
H4' = H4 XOR 0xA5A5A5A5A5A5A5A5A5
H5' = H5 XOR 0xA5A5A5A5A5A5A5A5A5
H6' = H6 XOR 0xA5A5A5A5A5A5A5A5A5
H7' = H7 XOR 0xA5A5A5A5A5A5A5A5A5

3. SHA-512("SHA-512/t") dizesinin isteğe bağlı karma türü (örneğin t, H' kob değerleriyle "224" veya "256" olabilir). i karma değeri, SHA-512/t algoritması için cob değeri olacaktır:
SHA-512/224 için H = SHA512(H', "SHA-512/224")
SHA-512/256 için H = SHA512(H', "SHA-512/256")

64-bit geçişlidir.
H0, H1, H2, H3, H4, H5, H6, H7 = (
0x22312194FC2BF72C, 0x9F555FA3C84C64C2, 0x2393B86B6F53B151,
0x963877195940EABD, 0x96283EE2A88EFFE3, 0xBE5E1E2553863992,
0x2B0199FC2C85B8AA, 0x0EB72DDC81C52CA2)

Hash hesaplama

algoritmada "+" modül 2 32 için vіdbuvaetsya .

i = 1'den N'ye:
{
1. i
M 0 (i)üzerinde M 15(i))
80 sliv rozmirom 32 sıra (lar W0üzerinde K 79):
Wt = Mt t = 0.15 için
wt = ROTL(W t-3 XOR W t-8 XOR W t-14 XOR W t-16 , 1) t = 16..79 için
(Cicavo, SHA spesifikasyonunun (SHA-0 algoritması) koçanı varyantı ne olacak?
sola döngüsel çağrı ROTL(x, 1))

2. Başlangıçta a, b, c, d, e'yi değiştirin.
a = H0(i-1)
b=H1(i-1)
c = H2(i-1)
d=H3(i-1)
e = H4(i-1)

3. Kabartma işlevinin baş halkası
t = 0 ila 79 için
SICAKLIK= ROTL(a, 5) + f t (b, c, d) + e + W t + K t
e=d
d=c
c= ROTL(b, 30)
b = bir
a = SICAKLIK

4.
H0(i) = (H0(i-1) + a)
H1(i) = (H1(i-1) + b)
H2(i) = (H2(i-1) + c)
H3(i) = (H3(i-1) + d)
H4(i) = (H4(i-1) + e)
}

Ortaya çıkan karma değer, 160 bitlik bir özet özetidir:
H0(N) || H1(N) || H2(N) || H3(N) || H4(N)(5 satır * 32 bit = 160 bit)

Sözcükler üzerinde işlemler (32-bit).
ROTL - sola döngüsel çağrı n biraz:
ROTL(x, n) = (x "n) | (x" (32-n))

algoritmada "+" modül 2 32 için vіdbuvaetsya .

i = 1'den N'ye:
{
1. i-indüklenen algoritmanın yardımı için destek bloğu
16 kelimeden 32 kategorinin dünyasına dönüştürün ( M 0 (i)üzerinde M 15(i))
64 kelimenin 32 sırası vardır (z W0üzerinde 63):
Wt = Mt t = 0.15 için
W t \u003d W t-16 + Delta0(B t-15) + B ben-7 + Delta1(Gt-2) t = 16..63 için

2.
a = H0(i-1)
b=H1(i-1)
c = H2(i-1)
d=H3(i-1)
e = H4(i-1)
f=H5(i-1)
g=H6(i-1)
h=H7(i-1)

3. Kabartma işlevinin baş halkası
t = 0 ila 63 için
SICAKLIK1=h+ Sigma1(e) + Ch(e, f, g) + Wt + Kt
TEMP2= Sigma0(a) + Binbaşı(a, b, c)
h = g
g = f
f=e
e = d + TEMP1
d=c
c = b
b = bir
a = TEMP1 + TEMP2

4. Önemli ara karma değeri
H0(i) = (H0(i-1) + a)
H1(i) = (H1(i-1) + b)
H2(i) = (H2(i-1) + c)
H3(i) = (H3(i-1) + d)
H4(i) = (H4(i-1) + e)
H5(i) = (H5(i-1) + f)
H6(i) = (H6(i-1) + g)
H7(i) = (H7(i-1) + h)
}

Ortaya çıkan karma değer, 256 bitlik bir özet özetidir:
(8 satır * 32 bit = 256 bit)
Saygı: "big-endian" dış görünüm kelimesinin bayt sırası

Algoritma yine SHA-256 algoritması ile çalışacaktır. Kesinlikle başlatan değerlerde, H (böl. daha yüksek) ve elde edilen hash nasıl alınır. Çünkü Mesajın 256 bitlik bir özetini alacağız, son hash değerini almak için sadece ilk 224 biti alacağız:

H0(N) || H1(N) || H2(N) || H3(N) || H4(N) || H5(N) || H6(N)(7 satır * 32 bit = 224 bit)
Saygı: "big-endian" dış görünüm kelimesinin bayt sırası

Algoritma, SHA-256'ya benzer, yalnızca sözcüklerin 64 bit olduğu tüm değişiklikler.
algoritmada "+" modül 2 için atanmış 64 .

i = 1'den N'ye:
{
1. i-indüklenen algoritmanın yardımı için destek bloğu
16 kelimeden 64 kategorinin dünyasına dönüştürün ( M 0 (i)üzerinde M 15(i))
80 sliv rozmirom 64 sıra (lar W0üzerinde K 79):
Wt = Mt t = 0.15 için
W t \u003d W t-16 + Delta0(B t-15) + B ben-7 + Delta1(Gt-2) t = 16..79 için

2. Başlangıçta a, b, c, d, e, f, g, h'yi değiştirin.
a = H0(i-1)
b=H1(i-1)
c = H2(i-1)
d=H3(i-1)
e = H4(i-1)
f=H5(i-1)
g=H6(i-1)
h=H7(i-1)

3. Kabartma işlevinin baş halkası
t = 0 ila 79 için
SICAKLIK1=h+ Sigma1(e) + Ch(e, f, g) + Wt + Kt
TEMP2= Sigma0(a) + Binbaşı(a, b, c)
h = g
g = f
f=e
e = d + TEMP1
d=c
c = b
b = bir
a = TEMP1 + TEMP2

4. Önemli ara karma değeri
H0(i) = (H0(i-1) + a)
H1(i) = (H1(i-1) + b)
H2(i) = (H2(i-1) + c)
H3(i) = (H3(i-1) + d)
H4(i) = (H4(i-1) + e)
H5(i) = (H5(i-1) + f)
H6(i) = (H6(i-1) + g)
H7(i) = (H7(i-1) + h)
}

Ortaya çıkan karma değer, 512 bitlik bir mesaj özetidir:
H0(N) || H1(N) || H2(N) || H3(N) || H4(N) || H5(N) || H6(N) || H7(N)(8 satır * 64 bit = 512 bit)
Saygı: "big-endian" dış görünüm kelimesinin bayt sırası

Algoritma yine SHA-512 algoritması ile çalışacaktır. Kesinlikle başlatan değerlerde, H (böl. daha yüksek) ve elde edilen hash nasıl alınır. Çünkü mesajın 512 bitlik bir özetini alacağız, son hash değerini almak için sadece ilk 384 biti alacağız:

H0(N) || H1(N) || H2(N) || H3(N) || H4(N) || H5(N)(6 satır * 64 bit = 384 bit)
Saygı: "big-endian" dış görünüm kelimesinin bayt sırası

Algoritma yine SHA-512 algoritması ile çalışacaktır. Kesinlikle başlatan değerlerde, H (böl. daha yüksek) ve elde edilen hash nasıl alınır. Çünkü 512 bitlik bir özete ihtiyacımız var, son hash değerini almak için yalnızca ilk 224 biti alıyoruz:

H0(N) || H1(N) || H2(N) || ilk 32 bit H3 (N)(3 kelime * 64 bit + 32 bit = 224 bit)
Saygı: "big-endian" dış görünüm kelimesinin bayt sırası

Algoritma yine SHA-512 algoritması ile çalışacaktır. Kesinlikle başlatan değerlerde, H (böl. daha yüksek) ve elde edilen hash nasıl alınır. Çünkü mesajın 512 bitlik bir özetini alacağız, son hash değerini almak için sadece ilk 256 biti alacağız:

H0(N) || H1(N) || H2(N) || H3(N)(4 kelime * 64 bit = 256 bit)
Saygı: "big-endian" dış görünüm kelimesinin bayt sırası

kriptografik ilkeller
Açık anahtarlı algoritmalar RSA DSA'sı
Akış şifreleri RC4
Hash fonksiyonları

SHA-256, giriş verisinden 2,31 eksabayta (2⁶⁴ bit) kadar dijital bitcoin'i sabit bir uzunluğa (256 bit, 32 bayt) dönüştürmek için tek yönlü bir işlevdir. Güvenli Karma Algoritma Sürüm 2) 2002 roci'de NSA tarafından yayınlandı.

Aile karma işlevleri SHA-2 Merkle-Damgard yapısına dayalıdır.

Haftalık bildirim eklendikten sonra bloklara bölünür, 16 satır için deri blok. Algoritma, dış görünüm güncelleme bloğunu 64 yineleme döngüsünden geçirir. Cilt yinelemesinde 2 kelime dönüştürülür, dönüştürme işlevi diğer kelimelere ayarlanır. Dış görünüm bloğunun işlenmesinin sonuçları toplanır, toplam hash fonksiyonu değerleridir. Osskіlki ініціалізація Dış ünitenin döner kavşağının sonucu olacağım, haberci paralel bloklarla alay ediyor. Veri bloğu işlemenin bir yinelemesini grafiksel olarak gösterir:

Şu anda 31 iterasyona kadar collies oluşturmak için yöntemler var. algoritmik benzerlik sayesinde SHA-2 H SHA-1 ve kalan potansiyel tutarsızlıkların varlığı, SHA-3'ün farklı bir algoritmaya dayanması gerektiğine karar verildi. 2 Temmuz 2012'de NIST, Keccak SHA-3 algoritmasını doğruladı.

rozrahunka vіdbitka vvglyadі sözde kodu için algoritma:

Açıklama:
Tüm değişiklikler işaretsizdir, 32 bit genişleyebilir ve hesaplanırken modül 232'den sonra toplanır.
İleti- vyhidne dviykove podomlennya
m- Değişen bildirimler Değişikliklerin başlatılması
(ilk 32 bit av tüfeği parçacıkları ilk sekiz asal sayının karekökü [tip 2 ila 19]):
h0:=0x6A09E667
h1:=0xBB67AE85
h2:=0x3C6EF372
h3:= 0xA54FF53A
h4:=0x510E527F
h5:=0x9B05688C
h6:=0x1F83D9AB
h7:=0x5BE0CD19 sabit tablo
(ilk 32 bit av tüfeği parçacıkları ilk 64 asal sayının küp kökü [tip 2 ila 311]):
k :=
0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,
0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3, 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,
0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC, 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,
0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7, 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,
0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13, 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,
0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3, 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,
0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5, 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,
0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208, 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2 Ön trim:
m:= mesaj ǁ [ tek vuruş]
m:= m ǁ , de k- benim için en az bilinmeyen numara, öyle ki
(L + 1 + K) mod 512 = 448
m:= mǁ Dovzhina(mesaj) - yüksekten düşüğe bayt sırasına göre 64 bitlik bir sayı için bitler için çıkış mesajının uzunluğu Aşağıdaki bildirimler, 512 bitlik aşağıdaki bölümler tarafından işlenir:
bildirimleri shmatki 512 bit'e bölün
için cilt shmatti shmatok başlığın 16 satırı 32 bit (kelime ortasında yaşlıdan gence bayt sırasına göre): w Ek 48 kelime oluşturun:
için i görüş 16 önce 63
s0:= (w rotr 7) xor(w rotr 18) xor(w shr 3)
s1:= (w rotr 17) xor(w rotr 19) xor(w shr 10)
w[i] := w + s0 + w + s1
Ek değişikliklerin başlatılması:
bir:=h0
b:= h1
c:=h2
d:= h3
e:= h4
f:= h5
g:= h6
h:= h7 Ana döngü:
için i görüş 0 önce 63
Σ0:= (bir rotr 2) xor(a rotr 13) xor(a rotr 22)
Anne:= (bir ve B) xor(a ve C) xor(B ve C)
t2:= Σ0 + Ma
Σ1:= (e rotr 6) xor(e rotr 11) xor(e rotr 25)
Ch:= (e ve F) xor ((olumsuzluk e) ve G)
t1: = h + Σ1 + Ch + k[i] + w[i] h: = g
g:= f
f:=e
e:= d + t1
d:=c
c:=b
b:=a
a:= t1 + t2 Son değeri önceden hesaplanan sonuca ekleyin:
h0:= h0 + bir
h1:= h1 + b
h2:= h2 + c
h3:= h3 + d
h4:= h4 + e
h5:= h5 + f
h6:= h6 + g
h7:= h7 + h Hash değerlerinin toplamını çıkarın:
özet = karma = h0 ǁ h1 ǁ h2 ǁ h3 ǁ h4 ǁ h5 ǁ h6 ǁ h7

Algoritma vikoristovuetsya:

  • bitcoin- aynı değer çerçevelerine sahip seslerin aranması yoluyla kripto para birimi emisyonu
  • DNSSEC- Sindirmek DNSKEY
  • DSA- elektronik bir dijital imza oluşturmak için kazanın
  • IPSec- in protokolleri ESPі IKE
  • OpenLDAP- şifre karmaları
  • PGP- elektronik bir dijital imza oluşturulması için göz kırpma
  • S/MIME- inceleme özeti
  • ŞACAL-2- blok şifreleme algoritması
  • X.509- elektronik dijital imza sertifikası oluşturmak için kazanın
arızalar