Uygulamada, evet, özdeş bir şifreleme karma dosyaları , dosyalar bir saldırgan veya başka bir kötü niyetli varlık tarafından oluşturulmadığı sürece dosyaların aynı olduğu anlamına gelir . Herhangi iyi tasarlanmış bir şifreleme karma fonksiyonu ile rastgele çarpışma olasılığı, pratikte ve aktif bir saldırganın yokluğunda göz ardı edilebilecek kadar küçüktür.
Ancak, genel olarak, hayır, aynı karmaya sahip iki rastgele dosyanın kesinlikle aynı olduklarını söyleyemeyiz .
Kriptografik bir karma işlevinin çalışma şekli isteğe bağlı uzunluktaki bir girdi almak ve girdiden hesaplanan sabit uzunlukta bir değer çıkarmaktır. Bazı karma işlevler, aralarından seçilebilecek birden fazla çıktı uzunluğuna sahiptir, ancak çıktı hala bir dereceye kadar sabit uzunlukta bir değerdir. Bu değer birkaç düzine bayta kadar çıkacaktır; günümüzde ortak kullanımda en uzun çıkış değerine sahip karma algoritmalar 512 bit çıkışa sahiptir ve 512 bit çıkış 64 bayttır.
Bir karma işlevine giriş, karma işlevinin çıkışından daha uzunsa, girişi çıkışa sığdırmak için bazı doğrulukların kaldırılması gerekir. Sonuç olarak, aynı çıktıyı üreten çıktının uzunluğundan daha büyük uzunluklarda girdiler mevcut olmalıdır.
Mevcut işgücü olan SHA-256'yı ele alalım. 256 bit veya 32 baytlık bir karma üretir. Her biri tam olarak 32 bayt uzunluğunda ancak farklı olan iki dosyanız varsa, bunlar (algoritmadaki herhangi bir kusur olmadığı varsayılarak) dosyaların içeriğinden bağımsız olarak farklı değerlere sahip olmalıdır; matematiksel anlamda, karma, bir 256 256 giriş boşluğunu 2 256 çıkış alanına eşleyen , çarpışma olmadan yapılması mümkün olan bir fonksiyondur . Bununla birlikte, her biri 33 bayt uzunluğunda iki dosyanız varsa, her iki dosya için de aynı 32 baytlık çıktı karma değerini veren bazı girdilerin bir arada bulunması gerekir , çünkü şimdi 2 264 giriş alanını 2 256 ile eşleştiriyoruz.çıkış alanı; Burada, her çıktı için ortalama olarak 2 8 girdi olması gerektiğini kolayca görebiliriz . Bunu daha da ileri götürün ve 64 baytlık dosyalar ile her çıktı için 2 256 giriş olmalı !
Şifreleme sağlama işlevleri, belirli bir çıktı veren bir girdi oluşturmak veya aynı çıktıyı veren iki girdi oluşturmak için hesaplama açısından zor olacak şekilde tasarlanmıştır . Bu, preimage saldırı direnci veya çarpışma saldırı direnci olarak bilinir . Bu çarpışmaları bulmak imkansız değil ; sadece gerçekten, gerçekten, gerçekten, gerçekten zor olması amaçlanmıştır . (Özel bir çarpışma saldırısı olayı biraz doğum günü saldırısıdır .)
Bazı algoritmalar saldırganlara direnmede diğerlerinden daha iyidir. MD5 bu günlerde genellikle tamamen kırılmış olarak kabul edilir, ancak son baktım, hala ilk iyi ön direnç direnci sportif . SHA-1 de aynı şekilde etkili bir şekilde bozulmuştur; Önceden yapılan saldırılar kanıtlandı, ancak belirli şartlar gerektirdi, ancak bunun süresiz olarak olacağına inanmak için bir neden yok; demişler gibi, saldırılar her zaman daha iyi olur, daha da kötüleşmezler. SHA-256/384/512, halen birçok amaç için güvenli olduğuna inanılmaktadır. Bununla birlikte , yalnızca kötü niyetli olmayan bir şekilde hazırlanmış işlerin geçerli olup olmadığını görmekle ilgileniyorsanız , geçerlidosyalar aynıdır, o zaman bunlardan herhangi birinin yeterli olması gerekir, çünkü giriş alanı zaten rastgele çarpışmalarla ilgilendiğiniz için yeterince kısıtlanmıştır. Dosyaların kötü amaçlı hazırlanmış olduğuna inanmak için herhangi bir nedeniniz varsa, o zaman en azından şu anda güvenli olduğuna inanılan ve SHA-256'daki alt çubuğu koyan bir şifreleme karma işlevi kullanmanız gerekir.
İlk ön tahmin, belirli bir çıktı karma değeri veren bir girdi bulmaktır; ikinci ön tanım, belirtilen çıktıyla aynı çıktıyı veren bir girdi bulmaktır; çarpışma aynı çıktıyı veren iki girdiyi bulmaktır, ne olduğuna bakılmaksızın ve bazen girdilerin ne olduğuna bakılmaksızın.
Tüm bunlar , dosyaların çok farklı veri gösterimlerine sahip olabileceğini ve yine de aynı şekilde görüntülenebileceğini unutmamak için önemlidir . Dolayısıyla , kriptografik karmaları eşleşmese de aynı görünebilir , ancak kareler eşleşirse aynı görünmeleri çok muhtemeldir .
cmp
Unix veyafc
Windows'ta (dosya karşılaştırması) ile kolayca karşılaştırabilirsiniz .