Kriptografide primerler neden önemlidir?


191

Kriptograf olmayan biri olarak beni her zaman etkileyen bir şey: Asal sayıları kullanmak neden bu kadar önemli? Onları kriptografide bu kadar özel yapan nedir?

Herkes bir var mı basit kısa bir açıklama? (Birçok primer olduğunu ve Uygulamalı Kriptografinin İncil olduğunu biliyorum, ama dediğim gibi: Kendi şifreleme algoritmamı uygulamak istemiyorum ve beynimi patlattığımı bulduğum şeyler - 10 sayfa matematik formülü yok Lütfen :))

Tüm cevaplar için teşekkürler . Asıl konsepti benim için en açık yapan şeyi kabul ettim.


Birkaç gözlem: 1. Aşağıdaki kişiler "büyük sayıların asal çarpanlarına ayırma işleminin uzun zaman aldığını" belirtmektedir. Aslında, her faktorizasyon için de aynı şey geçerlidir. Önemli olan herhangi bir tamsayı! = 0, primerlerin ürünü olarak benzersiz bir çarpanlara sahip olmasıdır (0'ın uzunluğu ayrışması olan 1 dahil).
TT_

1
2. Lütfen primerlerin hash fonksiyonları için neden önemli olduğunu açıklamamı kontrol edin: stackoverflow.com/questions/1145217/… Bir alana ait katsayıları olan (muhtemelen kısa bir açıklama değildir) polinomların özelliği ile ilgilidir.
TT_

2
Aşırı basit kısa bir açıklama çözün →: a * b = 91. Şimdi, çözmek: 13 * 7 = x. İkinci denklemi çözmek çok daha hızlıdır (bir insan ya da bilgisayar için).
Dem Pilafian

Yanıtlar:


204

En temel ve genel açıklama: kriptografi tamamen sayı teorisiyle ilgilidir ve tüm tamsayı sayıları (0 ve 1 hariç) asallardan oluşur, bu yüzden sayı teorisinde asallarla çok ilgilenirsiniz.

Daha spesifik olarak, RSA gibi bazı önemli kriptografik algoritmalar kritik olarak büyük sayıların asal çarpanlarına ayrılmasının uzun zaman almasına bağlıdır . Temelde, bir mesajı şifrelemek için kullanılan iki büyük asaldan oluşan bir "ortak anahtar" ve mesajın şifresini çözmek için kullanılan bu iki asaldan oluşan bir "gizli anahtar" vardır. Ortak anahtarı herkese açık hale getirebilirsiniz ve herkes size mesajları şifrelemek için kullanabilir, ancak yalnızca asıl faktörleri bilir ve mesajların şifresini çözebilirsiniz. Sayı teorisi sanatının mevcut durumu göz önüne alındığında, herkesin pratik olması çok uzun süren sayıyı hesaba katması gerekir.


7
Biz bilgisayar kuantum döneme girerken bir kuantum bilgisayarı kullanarak asal çarpanlarına Shor'un Algoritması usiong polinom sürede elde edilebileceğini nota uygun görünüyor en.wikipedia.org/wiki/Shor%27s_algorithm Bu bilgisayarların zaten mevcut olması olasıdır hangi teneke RSA gibi ortak anahtar şifrelemesinin şifresini çözme
stujo

16
@stujo: Kuantum hesaplama durumunu büyük ölçüde abartıyorsunuz. Aslında böyle bir bilgisayarın olmadığı kesindir. Shor'un Algoritması ve kuantum donanımında kanayan araştırma çalışmaları kullanılarak çarpan en büyük sayı 21'dir. Bu 21 bit değil, 21 sayısı, asal faktörler 3 ve 7'dir.
Michael Borgwardt

1
Hangi verilerin mevcut olduğundan emin değilim, en son çalışma hakkında bilgi almak zor, 2012'de geri döndüğüne inanıyorum, bu makale 2014'ten ( m.phys.org/news/2014-11-largest-factored- quantum-device.html ) 2016'dan herkese açık veriler gördük mü? Sınıflandırılabilecekleri hariç tutmak değil. Shors Algoritmasını çalıştıramasa da, D-Wave şimdi 1000 qbits'in üzerinde
stujo

1
@stujo: Asallarımız büyümeye devam edebileceğinden, hepimiz daha büyük, kuantum CPU'lar için pratik değil, bazıları anahtarlar oluşturmak için düzenli CPUS kullanıyorsa ve bazıları onları kır. Kuantum CPU'ların gücü, anladığım kadarıyla, qbits kullandığından, her qbit'in 3 değeri olabilir, bu nedenle yeni teknoloji base 3 taban 2'dir. 64 qbits CPU'nun bir kelimede 3 ^ 64 kombinasyonu vardır. Performansı nasıl etkilediğini bilmiyorum.
juanmf

5
@juanmf: kuantum hesaplama anlayışınız tamamen yanlış. Tamamen ilgisiz olacak 3 değere sahip olmakla hiçbir ilgisi yoktur. Ayrıntılar çok karmaşıktır, ancak sonuç, bazı kuantum algoritmalarının kuantum olmayan donanımdaki "normal" algoritmalardan daha düşük bir Big-O karmaşıklığındaki sorunları çözebilmesidir.
Michael Borgwardt

137

Basit? Evet.

İki büyük asal sayıyı çarparsanız, yalnızca iki (büyük) asal çarpanı olan çok büyük bir asal sayı alırsınız.

Bu sayıyı hesaba katmak önemsiz olmayan bir işlemdir ve bu gerçek bir çok Kriptografik algoritmanın kaynağıdır. Daha fazla bilgi için tek yönlü işlevlere bakın .

Zeyilname: Biraz daha açıklama. İki asal sayının ürünü, ortak anahtar olarak kullanılabilirken, asal olarak kendilerini özel anahtar olarak kullanabilirsiniz. Yalnızca iki faktörden biri bilinerek geri alınabilecek veriler üzerinde yapılan herhangi bir işlem, şifrelenmesi önemsizdir.


2
Ayrıca, çarpanlara ayırma problemine ek olarak, birçok modern kriptonun da (veya bunun yerine) ayrı logaritma problemine dayandığını belirtmek gerekir. Her ikisi de "tek yönlü" işlevlerdir: bilinen girişleri almak ve bir cevap hesaplamak kolaydır, ancak bir cevap almak ve bu girdileri hesaplamak zordur.
nezroy

4
Bu açıklamayı "tek yönlü işlev" terimine bağlamak yardımcı olacaktır: en.wikipedia.org/wiki/One-way_function
Chris Conway

Ama eğer ortak anahtar şifrelemek için kullanılabilirse, bunun tersini yapmak için neden kullanılamaz?
jayarjo

45

İşte çok basit ve yaygın bir örnek.

RSA şifreleme algoritması yaygın güvenli ticaret web sitelerinde kullanılan, bunun tersini yapmak son derece zor iken, iki (çok büyük) asal sayılar ve çarpma onları almak kolay olmasına dayanmaktadır - anlam: take a çok büyük bir sayı, sadece iki asal faktöre sahip olduğu ve onları bulduğu göz önüne alındığında.


30
Sadece FYI, iki asal çarparak elde ettiğiniz sayıya yarı asal denir.
Matthew Brubaker

15

Önemli olan asal sayıların kendisi değil, asallarla çalışan algoritmalar. Özellikle, bir sayının faktörlerini (herhangi bir sayı) bulmak.

Bildiğiniz gibi, herhangi bir sayının en az iki faktörü vardır. Asal sayılar, tam olarak iki faktöre sahip olmaları bakımından benzersiz bir özelliğe sahiptir: 1 ve kendileri.

Faktoringin bu kadar önemli olmasının nedeni, matematikçiler ve bilgisayar bilimcilerinin, mümkün olan her kombinasyonu denemeden bir sayıyı nasıl hesaplayacağını bilmemesidir. Yani, önce 2'ye, sonra 3'e, sonra 4'e bölünmeyi deneyin. Bir asal sayıyı, özellikle de çok büyük bir sayıyı çarpanlara ayırmaya çalışırsanız, 2 ile bu büyük asal sayı arasındaki olası her sayıyı denemeniz gerekir. En hızlı bilgisayarlarda bile, kriptografide kullanılan asal sayı türlerini hesaba katmak yıllar (hatta yüzyıllar) alacaktır.

Kriptografik algoritmalara güçlerini veren çok sayıda faktörün nasıl etkili bir şekilde nasıl faktörleştirileceğini bilmiyoruz. Bir gün, birileri nasıl yapılacağını anlarsa, şu anda kullandığımız tüm şifreleme algoritmaları kullanılmayacaktır. Bu açık bir araştırma alanı olmaya devam ediyor.


10
Aslında asal sayıları çarpanlarına ayırmaya çalıştığınız sayının kareköküne kadar test etmeniz gerekir.
Matthew Brubaker

3
Biliyorum. Basitlik adına "gözden kaçırdığım" bir ayrıntıydı.
Barry Brown

@MatthewBrubaker Bunun neden olduğunu açıklar mısınız? Gerçekten anlamıyorum.
Kartik Chugh

4
@KartikChugh ヅ demek nasal değil & n = a * b. Eğer daha küçük ve tam tersi olursa a > sqrt(n), ilk iddiamızı olumsuz etkileyecek olan bbaşka bir şey a * b > n. Başbakan kontrol etmek için, sadece sqrt kadar kontrol ediyoruz.
Abhinav Gauniyal

13

Çünkü hiç kimse bir tamsayıyı asal çarpanlarına ayırmak için hızlı bir algoritma bilmiyor. Bununla birlikte, bir dizi asal faktörün belirli bir tamsayı ile çarpılıp çarpılmadığını kontrol etmek çok kolaydır.


1
İlginçtir ki, bir sayının asal olup olmadığını öğrenmek için hızlı bir şekilde zaten mümkündür.
nes1983

Burada "asal faktörler büyükse" eksik var.
Ben Voigt

@Ben: Eksik değil. Sorun genel olarak zor. Genel olarak zor olan sorunların kolay vakaları olabileceğini unutmayın. Bu durumda, küçük primler hiçbir şekilde tek kolay vaka değildir.
nes1983

2
Kimse "toplum içinde" bilmiyor. Çeşitli dünya hükümetlerinin istihbarat teşkilatlarının paylaşmadıkları tekniklere sahip olması mümkün olabilir. Çok sayıda matematik mezunu işe alıyorlar. Örneğin, NSA, kamusal kullanım için standart bir kripto planının bir parçası olarak zayıf olduğunu bildikleri "Dual EC_DRBG" tarafından rastgele ana üretimi teşvik etti. bits.blogs.nytimes.com/2013/09/10/…
don parlak

don: snowden belgeleri böyle olmadığını ortaya koyuyor. NSA'nın şifreli verilerin şifresini yalnızca bildikleri özel matematik büyüsü ile şifresini çözemediği oldukça kesin bir resim çiziyorlar. Schneier konuyu kapsamlı bir şekilde tartıştı.
nes1983

12

Kriptoyu arttırmak için bazı iyi kaynaklar var. Işte bir tane:

Bu sayfadan:

1977'de Ron Rivest, Adi Shamir ve Len Adleman tarafından icat edilen en yaygın kullanılan ortak anahtar şifreleme sisteminde, hem genel hem de özel anahtarlar nispeten basit bir matematiksel formüle göre bir çift büyük asal sayıdan türetilir. Teoride, formülü geriye doğru çalışarak özel anahtarı ortak anahtardan türetmek mümkün olabilir. Ancak sadece büyük asal sayıların ürünü halka açıktır ve bu büyüklükteki sayıları asal sayılarla o kadar zorlaştırır ki, dünyadaki en güçlü süper bilgisayarlar bile sıradan bir genel anahtarı kıramaz.

Bruce Schneier'in Applied Cryptography adlı kitabı başka bir kitap . Bu kitabı tavsiye ederim; eğlenceli okuma.


9

RSA'nın asal sayıların özelliklerini nasıl kullandığı konusunda biraz daha somut olmak için, RSA algoritması kritik olarak Euler Teoremine bağlıdır , bu da nispeten asal sayılar "a" ve "N" için a ^ e'nin 1 modulo N'ye uygun olduğunu belirtir ; e, Euler'in N'nin totient fonksiyonudur .

Asallar nereden geliyor? Euler'in N'nin totient fonksiyonunu verimli bir şekilde hesaplamak için N'nin birincil çarpanlarına ayırma işlemini bilmek gerekir. RSA algoritması durumunda, burada bazı p "ve" q "primerleri için N = pq, sonra e = (p - 1) (q - 1) = N - p - q + 1. Ancak p ve q bilmeden e'nin hesaplanması çok zordur.

Daha soyut olarak, birçok kriptografik protokol , hesaplanması kolay ancak tersine çevrilmesi zor olan çeşitli trapdoor işlevlerini kullanır . Sayı teorisi, bu tür kapalı kapı işlevlerinin (büyük asal sayıların çarpımı gibi) zengin bir kaynağıdır ve asal sayılar sayı teorisinin kesinlikle merkezindedir.


7

Kodda Matematiksel Bir Yolculuk kitabını öneririm . Kitap, kriptografi ile ilgili olduğu için dünyaya güzel bir his veriyor, bu şaşırtıcı. Kitap, Sarah Flannery'nin çocukken bulmacaları öğrenmekten 16 yaşında Cayley-Purser (CP) algoritması oluşturmaya kadar olan yolculuğunu özetliyor. kriptografi.

Bu kitabı sorunuza daha da özel kılan Sarah, matrisleri kullanarak yeni bir ortak anahtar algoritması uygulamaya çalıştı. Asal sayıları kullanmaktan çok daha hızlıydı, ancak bundan yararlanabilecek bir döngü deliği bulundu. Algoritmasının özel bir şifreleme mekanizması olarak daha iyi kullanıldığı ortaya çıktı. Kitap, zamanın testini ve çok akıllı bireylerin zorluklarını aştığı için şifreleme için asal sayıları kullanmanın büyük bir kanıtıdır.



6

Ben bir matematikçi ya da kriptocu değilim, işte layman'ın terimleriyle dışarıdan bir gözlem (fantezi denklemler yok, üzgünüm).

Bu ipliğin tamamı kriptografide HOW primerlerinin kullanıldığı hakkında açıklamalarla doludur , bu iplikteki herkesin NEDEN primerlerin kullanıldığını kolay bir şekilde açıklayan herkesi bulmak zordur ... büyük olasılıkla herkes bu bilgiyi kabul ettiği için.

Soruna sadece dışarıdan bakmak şöyle bir tepki oluşturabilir; ancak iki asalın toplamlarını kullanırlarsa, neden iki asalın üretebileceği tüm olası toplamların bir listesini oluşturmuyorsunuz?

Bu sitede 455.042.511 primin bir listesi var , burada en yüksek primler 9,987,500,000 ( 10 basamaklı).

(Şubat 2015 tarihinde) bilinen en büyük asal 1 - 257,885,161 gücüne 2 olduğu 17.425.170 basamak.

Bu, bilinen tüm primerlerin bir listesini tutmanın ve olası toplamlarının çok daha azının bir anlamı olmadığı anlamına gelir. Bir sayı almak ve asal olup olmadığını kontrol etmek daha kolaydır.

Kendi başına büyük primlerin hesaplanması anıtsal bir görevdir, bu nedenle hem kriptografların hem de matematikçilerin birbirleriyle çarpılan iki primerin tersini hesaplamak yeterince zor olduğunu söyleyebiliriz ... bugün.


3
Yalnızca son paragrafınız gerçekten geçerlidir. Toplamlar argümanı herhangi bir kompozit sayı için de söylenebilir (teknik olarak sonsuz büyüklükte geniş bir aralık vardır, tüm toplamların depolanması mümkün / aptalcadır). Ayrıca primerlerin toplamı, kriptografide bu kadar önemli değildir, daha önemlidir (genellikle RSA durumunda olduğu gibi) onların ürünüdür. Ayrıca, ters hesaplayarak muhtemelen ortalama faktoring . Muhtemelen orada ne demek istediğinize yardımcı olacaktır.
initramfs

4

Şifreleme algoritmaları genellikle "zor bir soruna" sahip olmalarına bağlıdır. Modern algoritmaların çoğu, çok büyük sayıların çarpanlarına ayırmalarını zor problemleri olarak kullanıyor gibi görünüyor - eğer iki büyük sayıyı birlikte çarparsanız, çarpanlarını hesaplamak "zordur" (yani zaman alıcı). Bu iki sayı asal sayılarsa, o zaman daha da zorlaştıran sadece bir cevap vardır ve aynı zamanda cevabı bulduğunuzda, doğru sonucu verir, sadece aynı sonucu veren başka bir cevap değil.


4

Kriptografide önemli olanın asal değil, ama asal çarpanlara ayırma sorununun zorluğu olduğunu düşünüyorum

M ve n iki primerinin ürünü olduğu bilinen çok büyük bir tamsayıya sahip olduğunuzu varsayalım, m ve n'nin ne olduğunu bulmak kolay değildir. RSA gibi algoritmalar bu gerçeğe bağlıdır.

Bu arada, kuantum bilgisayarı kullanarak bu asal çarpanlara ayırma problemini kabul edilebilir bir zamanda "çözebilen" algoritma üzerine yayınlanmış bir makale bulunmaktadır. Yani kriptografideki yeni algoritmalar artık kuantum bilgisayar kasabaya geldiğinde asal çarpanlaştırmanın bu "zorluğuna" dayanamayabilir :)


3

Çünkü çarpanlara ayırma algoritmaları bulunan her çarpanla birlikte önemli ölçüde hızlanır. Her iki özel anahtarı da birincil yapmak, bulunan ilk faktörün de sonuncu olmasını sağlar. İdeal olarak, her iki özel anahtar da neredeyse eşit değerde olacaktır, çünkü sadece zayıf anahtarın gücü önemlidir.


Bu bana biraz gereksiz geliyor. En zayıf cevaba yorumlanabilecek zayıf anahtar kısımdan bir parça :)
Ulysse BN

-1

Asal sayılar çoğunlukla kriptografide kullanılır, çünkü belirli bir sayının asal sayı olup olmadığını belirlemek için önemli ölçüde zaman harcar. Bilgisayar korsanı için herhangi bir algoritmanın kodu kırması çok zaman alırsa, onlar için işe yaramaz hale gelir


7
Bir sayının asal olup olmadığını anlamak ucuzdur ve ucuz olması gerekir. Primerleri RSA'daki ana faktörlerimiz olarak veya sonlu alanlı kriptoda bir modül olarak bir birincil olarak seçtiğimizi nasıl bileceğiz? Pahalı olan, büyük bir kompozit sayıyı büyük ana faktörlerine katmaktır.
CodesInChaos
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.