İkisini açsanız bile şifre olarak sayabilir misiniz?

O zamanlar çok yararsız görünen saf matematik başarılarından oluşan bir gruptur, böylece artık büyük sözleşme belgelerini imzalamaktan Double Eleven kadar küçük olana kadar İnternet üzerindeki birçok iş faaliyetine güvenle girebiliriz.

(Kaynak: Pixabay .com )

Yazar | Wu Jinyuan

Mors kodunu ve diğer bazı kodlama yöntemlerini daha sonra duymuş olabilirsiniz, ancak bunlar henüz şifre değil. İnsanların kodları derlemesinin amacı insan sözcüklerini iletmektir, bu nedenle kod derleme kuralları alıcıya okunup anlaşılmaları için anlatılmalıdır. Ancak çoğu durumda, akraba olmayan kişilerin aktardığımız bilgileri anlamasını istemiyoruz, şu anda bir parola derlememiz gerekiyor.

Simetrik şifre

Biri simetrik parolalar, diğeri asimetrik parolalar olmak üzere iki tür parola vardır. Sözde simetrik şifre, hem gönderen hem de alıcı tarafından şifre çözme için kullanılan aynı anahtar setini ifade eder. 1970'lerden önce tüm şifreler simetrik şifrelerdi. Gönderen ve alıcı, telekomünikasyon iletişiminin içeriğini şifrelemek için anahtarı kullanmadan önce şifre kitabını güvenli bir şekilde birbirlerine önceden teslim etmelidir. Savaş sırasında kod kitaplarını teslim etmek zor bir işti. "Kızıl Fener" de Li Yuhe ve Büyükanne Li, Japon karşıtı gerillalara kod kitapları dağıtmak için hayatlarını bile feda ettiler.

Ek olarak, şifreleme kuralları üçüncü şahıslar tarafından bilinmediğinden, insanlar muhtemelen anahtarı derlerken kırılma riskini göz önünde bulundurmazlar ve bunun sonucunda şifrelenmiş mesaj kırılabilir hale gelir. Savaş yıllarında, düşmanın telgraf kodunun kırılması nedeniyle savaş durumunda birçok değişiklik oldu.

Asimetrik kriptografi

Asimetrik şifrelerin aksine, şifreleme ve şifre çözme için gerekli anahtarlar farklıdır. İletişimden önce alıcı, şifreleme anahtarını gönderene iletir Bu şifreleme anahtarının gizli tutulması gerekmez, bu nedenle buna genel anahtar denir. Gönderen, bilgileri şifrelenmiş anahtarla şifreler ve alıcıya gönderir.

Yukarıdaki iletişim sürecinde, ağdaki herhangi biri şifreleme anahtarını ve iletişim bilgilerini duyabilir, ancak şifreleme anahtarı iletişim içeriğinin şifresini çözmek için tamamen işe yaramaz. Yalnızca alıcı, kendisi tarafından tutulan şifre çözme anahtarını veya özel anahtarı kullanarak iletişim içeriğinin şifresini çözebilir.

Canlı bir şekilde ifade etmek gerekirse, mesajı gönderen kişi mektubu yazabilir, bir kasaya koyabilir ve bir açık anahtarla kilitleyebilir. Ancak bu kasa bir genel anahtarla açılamaz, başka bir özel anahtarla açılmalıdır.

Bu şekilde bazı soyutlamalar olabilir.Bu şifreleme yöntemini daha fazla açıklamak için pratik bir örnek kullanıyoruz.

Xiao Ming, Xiao Ying'e bir mesaj yazmak istiyor ama etrafı ampullerle çevrili, ne yapabilirim? Xiaoying öğrendiğinde başa çıkmanın kolay olduğunu söyledi, sonra Çok Fangfangdi tahtaya iki sayı dizisi yazdı. "Eğer bilgi bu iki numara ile şifrelenmişse, kimse onu kıramaz çünkü hala bir numaram var ve bu sadece bu gizli numara ile şifresi çözülebilir." Yine de, Xiao Ming'in iki iyi bilinen numarayı kullanarak hala biraz kafası karışmıştı. Şifrelenmiş bilgiler güvenilir midir?

Xiaoming'in göndermek istediği mesajın 17281314 olduğunu varsayarsak, Xiaoying'in tahtaya yazdığı sayılar 7 ve 22'dir ve Xiaoming yanlışlıkla kodlama yönteminin bilgiyi bu iki sayı ile çarpmak olduğuna inanır, ardından Xiaoming'in derlediği "şifrelenmiş" bilgi:

17281314 * 7 * 22 = 2661322356

Derlenen sayı orijinal bilgilerden çok farklı görünüyor, ancak diğer insanlar onu çok kolay kırmak istiyor. "Şifrelenmiş" bilgi tahtadaki iki sayıya bölündüğü sürece orijinal bilgiler geri yüklenir:

2661322356 / (7 * 22) = 17281314

Xiaoming'in öngördüğü şifreleme yönteminin çok basit olduğunu düşünebilirsiniz. Aslında soru şifreleme işleminin basit olup olmadığı değil, anahtar şifreleme işleminin ters işleminin çok kolay olup olmadığıdır. Genelde gördüğümüz çeşitli işlemlerin çoğu ters işlemlere sahiptir: toplama, çıkarmaya karşılık gelir, çarpma bölmeye karşılık gelir, güç kareköke karşılık gelir ve üs, logaritmaya karşılık gelir ve hepsi birbirine ters işlemlerdir. Bu ters hesaplamalar, şifreli iletişimlerde kullanılamayacak kadar kolaydır.

Pratik uygulamalarda yaygın olarak kullanılan bir şifreleme yöntemi olan RSA algoritması, ters işlemler için son derece zor bir işlemdir. Bu algoritmanın şifreleme ve şifre çözme yöntemi aşağıdaki formül ile yazılabilir:

Şifreleme: c = (m ^ e) mod n

Şifre çözme: m = (c ^ d) mod n

Yukarıdaki formülde, m orijinal bilgidir, uzun bir sayı dizisidir ve e ve n, tahtadaki iki sayı dizisine eşdeğer olan genel anahtarlardır. Formülde mod n, önceki tamsayıyı n'ye bölmek anlamına gelir, 16 bölü 5 gibi tükenmez bir kalan kalır ve geri kalan 1'dir. Bu şekilde şifrelendikten sonra bir dizi c elde edilir, kırılması kolay değildir.Sonucu almak için özel anahtar olan başka bir d tamsayısını kullanmanız gerekir.

N = 22 ve e = 7 olduğunda, özel anahtar d 3'tür. Aşağıdaki tablo, bu basit örnekte kodlama ve kod çözme hesaplama sürecini göstermektedir.

Bu şekilde Xiao Ming tarafından gönderilen bilgiler şu algoritma kullanılarak kodlanabilir: 17281314 = > 1918020720 (17 = > 19; 2 = > 18; 8 = > 02; 13 = > 07; 14 = > 20). Bu şekilde şifrelenmiş numaraların başkaları için kırılması zordur, Xiao Ming'in kendisi bile kıramaz. Yalnızca Xiaoying, d = 3 özel anahtarını şifre çözme formülüne koyduğunda: m = (c ^ d) mod n, orijinal bilgi geri yüklenebilir: 17281314.

Xiaoying'in özel anahtarı d = 3'ün tahmin edilmesi çok kolay olduğunu düşünebilirsiniz. Aslında, çünkü bu basit örnekte kullandığımız üç sayı n, e ve d çok küçük. Pratik uygulamalarda, bu üç sayı binlerce basamaklı çok büyük sayılardır, bu yüzden tahmin etmek zordur.

Bu üç sayı isteğe göre seçilebilir mi? Tabii ki değil. Bilgisayar bu üç sayıyı oluşturduğunda, önce rastgele iki bin basamaklı asal sayı (asal sayılar) p, q arar ve sonra n'yi elde etmek için onları çarpar (yani: n = p * q, örneğin, önceki örneğimizde, 22 = 2 * 11). Sonra e ve d'yi bulmak için p ve q kullanın (önceki örnekte 7 ve 3). Bu anahtar çifti aşağıdaki özelliklere sahiptir:

(((m ^ e) mod n) ^ d) mod n = m

Başka bir deyişle, herhangi bir tamsayı m (gönderdiğimiz bilgiler), şifreleme ve şifre çözme gibi bir çift işlemden sonra geri yüklenebilir. E ve d'nin bir çift karşılıklı sayı olduğu görülebilir, ancak d tek başına n ve e'den hesaplanamaz ve p ve q bilinmelidir.

Bulacağınız kadar akıllı, n = p * q olduğunu zaten bildiğimiz için, güçlü bir süper bilgisayar kullanarak, iki asal sayı olan p ve q'yu ayrıştırmak mümkün olmalıdır? P, q ve e ile d'yi hesaplayabilir ve kodu kırabilirsiniz, değil mi?

Bu çok iyi bir soru, RSA şifresinin anahtarını ortaya koyuyor Çok büyük olmayan iki asal sayıyı çarptığımızda, elde edilen çarpımdan bu iki asal çarpanı ayrıştırmak kolaydır. Ancak bu iki asal sayı çok büyük olduğunda, hesaplamanın zorluğu önemli ölçüde artar ve makul bir sürede mevcut süper bilgisayarların hesaplama kapasitesini çok aşar. Yani bu anlamda, bu tür bir şifre kırılamaz.

Burada tanıttığımız RSA şifreleme algoritmasına ek olarak, gerçek uygulamalarda başka algoritmalar da vardır. İlkeleri, tek yönlü işlevler adı verilen bir konsepte dayanmaktadır. Başka bir deyişle, iki asal sayıyı p * q çarpmak gibi bir ileri işlem kolaydır, ancak çarpma ve entegrasyon gibi ters işlemi çok zordur.

Böyle tek yönlü bir işlevle, anahtar setindeki üç sayıyı alabiliriz Çok İletişim bilgilerinin kırılmasından endişe etmeden ikisini halka açık yapın.

Bu kadar büyük bir sayı nasıl hesaplanır?

Bulacağınız kadar istekli, şifreleme ve şifre çözme sürecindeki (m ^ e) gibi işlemlerimiz çok yüksek güçlerdir. Buradan elde edilen sayının çok büyük olması düşünülebilir, bu tür bir operasyon çok şiddetli değil mi? Nitekim hesap makinesinde 98765432 ^ 23456789'u hesaplamaya çalışırsanız, bu sayı içinde yaklaşık yüz milyonlarca hane vardır, hesap makinesi ölmezse kaybederim.

Aslında, böylesine büyük bir sayı gerçek hesaplamalarda görünmeyecektir, çünkü bölenin kalanını n ile hesaplıyoruz. İki sayının çarpımının kalanını hesaplarken, önce iki sayının kalanını bulabilir ve sonra onları birlikte çarpabiliriz.Bu çarpmanın hesaplanması çok daha kolaydır. Özellikle bir m sayısının karesinin kalanını hesaplamak için algoritma aşağıdaki şekilde gösterilmektedir:

Burada m'yi, n'nin tam katı olan K * n'ye ve kalan r'ye ayırıyoruz. Bu şekilde, sadece yukarıdaki şekilde küçük renkli kare olan r ^ 2 kısmı, m'nin karesinin kalanına katkıda bulunabilir. Yukarıdaki şekildeki tüm beyaz kareler n'nin tam katları olmalı ve kalanına katkı 0 olmalıdır, bu yüzden sadece r ^ 2'yi hesaplamamız gerekir. Elbette, r ^ 2'nin sonucunun kendisi n'den büyük olabilir, bu da r ^ 2'nin kalanını almamızı ve son olarak m ^ 2 mod n'yi almamızı gerektirir.

Daha fazla açıklamak için daha küçük bir gerçek sayı kullanalım, örneğin öğretmen bir soru sorar:

98765432 ^ 2, bu sayının birler basamağı nedir? Öğrenciler hesap makinesini çıkarıp bastılar ve sonucu aldılar: 9754610558146624, toplam 16 hane ve birler hanesi 4'tür.

Bebeğiniz muhtemelen bir hesap makinesi çıkarmadan elini kaldırdı. İki, dört, cevap hemen: Tek rakam 4'tür. Bu soruda, bir sayının tek basamağı aslında 10'a böldükten sonra kalanıdır. Çarpma için kaç basamak kullanılırsa kullanılsın (kare alma dahil), ondan fazla basamaklı sayılar sonucun tek basamağına katkıda bulunmamalıdır.Büyük sayıları çarpmamak için her çarpmadan önce kalanı alırız.

Bilgisayar şifreleme ve şifre çözme işlemlerinde, bölen n binlerce yere sahiptir, ancak kalan kısım hesaplanırken zamanında alındığı sürece, hesaplanan sonuç her zaman binlerde kalacaktır. Bu sayı büyük olmasına rağmen yüz milyonlardan çok daha küçüktür.

Hala biraz endişeli hissedebilirsiniz. (M ^ e) arasında, m'nin binler düzeyinde büyük bir sayı olması dışında, e üssü de çok büyük bir sayıdır. (M ^ 2) modunun nasıl etkili bir şekilde hesaplanacağını daha önce tartışmıştık. N problemi, (m ^ 2) ve (m ^ e) arasında hala çok fazla fark vardır. Örneğin, örnek olarak daha küçük bir gerçek sayı bulalım (m ^ 23456789) hesaplarken, 20 milyondan fazla çarpımı mı hesaplamalıyız?

Aslında daha iyi ve daha basit algoritmalar bulabiliriz. Örneğin, 23456789 sayısını ikiliye çevirebiliriz:

23456789 (baz10) = 1011001011110110000010101 (2 tabanı)

Bu bize bu sayının birkaç sayının toplamı olarak görülebileceğini söylüyor:

23456789 = 2 ^ 24 + 2 ^ 22 + 2 ^ 21 + 2 ^ 18 + 2 ^ 16 ...

Bu nedenle, üs olarak bu kadar büyük sayı kullanıldığında, hesaplama süreci bir ürün olarak kabul edilebilir:

m ^ 23456789 = m ^ (2 ^ 24) * m ^ (2 ^ 22) * m ^ (2 ^ 21) * m ^ (2 ^ 18) * m ^ (2 ^ 16) ...

Ancak m ^ (2 ^ 24) gibi sayıların sayılması zor görünüyor. Aslında dikkatlice düşünmek o kadar da zor değil. Zaten kareyi hesaplayabiliriz ve daha yüksek bir kuvvet sonucu elde etmek için sonucun karesini alabiliriz. Örneğin:

(m ^ 2) ^ 2 = m ^ 4; (m ^ 4) ^ 2 = m ^ 8; (m ^ 8) ^ 2 = m ^ 16; (m ^ 16) ^ 2 = m ^ 32 ...

Bu nedenle, 23 kez kareyi aldığınız sürece (yani çarpma), m ^ (2 ^ 24) gibi bir sayı elde edebilirsiniz (tabii ki, her çarpmadan sonra kalanı, yani mod n'nin işlemini almalısınız). Yukarıdaki hesaplama işleminin ara sonucu m ^ (2 ^ 22), m ^ (2 ^ 21), m ^ (2 ^ 18) ve benzerlerini içerir. Bu, bu kadar yüksek güç hesaplamalarını mümkün kılar.

Kalan operasyonların gücü

Bu noktada biraz kaş görebilirsiniz, hukuki iletişimde her iki taraf için hesaplama miktarını yapan tam da algoritmada kullanılan kalanın (mod n) hesaplanmasıdır. Çok Düşüş, bir kaplan kadar şiddetli olan çok sayıda devasa güç (m ^ e) işleminin 250 çarpım mertebesinde bir hesaplama miktarı ile gerçekleştirilebilmesini sağlar.

Öte yandan, şifreleme algoritmasında kalan bir işlem olmadığını düşünürsek:

Şifreleme: c = (m ^ e)

Şu an için bu sayının büyüklüğü ne olursa olsun, yalnızca şifreleme açısından hedefe ulaşılamamıştır. Bu sayı, yüksek basamaklarla ilgili tüm bilgileri içerir, bu nedenle ters işlemi çok basittir. Gücün tersi işlem, kareyi açmaktır ve dinleyici, yayınlanan anahtarınızla bilgilerin şifresini kolayca çözebilir:

Şifre çözme: m = c ^ (1 / e)

Bu nedenle algoritmada kullanılan kalanı (mod n) almak gibi yüksek rakamların taşıdığı bilgileri gizleyen, karekök gibi basit ters işlemleri olanaksız kılan işlemdir. Bu şekilde, kulak misafiri olan kişinin yapması gereken ters hesaplama, bir süper bilgisayarın bile sağlayamayacağı bir hesaplama miktarını gerektirir.

Elektronik İmza

RSA algoritmasında, şifreleme ve şifre çözme için anahtarlar, yani iki numaranın e ve d konumları birbirinin yerine kullanılabilir. Aşağıdaki formülle yazılır:

(((m ^ e) mod n) ^ d) mod n = (((m ^ d) mod n) ^ e) mod n = m

Bu formül neyi gösteriyor? Bu formül, d özel anahtarına sahip olduğum için, adımı değiştirmek için bu özel anahtarı kullanabileceğim anlamına gelir ( Artı Tarih, saat, seri numarası ve diğer bilgiler bir şifre oluşturur:

(s ^ d) mod n = x

Derlediğim bilgileri hesaplamak için daha önce yayınladığım genel anahtarımı, e ve n sayılarını herkes kullanabilir.

(x ^ e) mod n = s

Bu şekilde, sadece ben böyle bir x mesajını derleyebilirim ve bu x şifresi benim elektronik imzam olur. X şifresi doğrudan bir hayalet karakter gibi görünse de, anlamlı içeriği hesaplamak için e ve n sayılarını kullanabilirsiniz.

Öyleyse başkaları elektronik imzamı taklit edebilir mi? Elbette, herkes aynı y bilgisiyle bir hayalet boyama tılsımını özgürce derleyebilir, ancak ellerinde d sayısı olmadığı için, bu derlenmiş ve önceden duyurulmuş e ve n'yi formüle koyarsanız, sonucun hala bir hayalet boyama tılsımı olduğunu göreceksiniz. genel.

Elbette internetteki diğer kişiler daha önce kullandığım x imzasına müdahale edebilir, ancak bu imzada ismimin yanı sıra tarihi ve saati gibi süresi dolmuş ve geçersiz bilgiler de bulunuyor. Birisi bu bilgiyi değiştirmeye çalışırsa, x'teki sayılar kas ve kemik seviyesinde değişiklik olur ve işlemleri kopyalayıp yapıştırarak birleştirme amacına ulaşmak imkansızdır. Dahası, güvenli tarafta olmak için, herkes benden belirttiği bilgileri derlememi isteyebilir. İlginçtir ki soruyu soran kişi cevabın ne olduğunu bilmiyordu, ancak cevabı görünce biliyordu.

Herkes matematik okurken esniyorsa, hadi açıyı değiştirelim. Bin yıldan fazla bir süre önce, birisi bize bir dizi açık anahtar verdi: "Acı Yin", "Lianzi", "Üç yılda iki cümle, bir yin çift gözyaşı" ("Sürüş çok standart, iki gözyaşım var" hatırlamak daha kolay ). Elinde özel anahtarla bir paragraf oluşturdu ve Moments'a gönderdi: "Matsushita çocuğa sorar, öğretmen ilaç toplar, sadece bu dağda bulutlar nerede olduğunu bilmiyor." Buradan bu imzayı tercüme edebiliriz: Jieshishan Renjia Adası ziyaret için burada.

Hangi yaşamın olduğunu bilmediğinizi varsayalım, şehir merkezindeki kalabalık arasında bir söz var: "Bir kılıcı keskinleştirmek için on yıl, Shuangfeng asla denemedi." Biraz kafanız karışır mıydı, o Jia Dao mu? Yoksa sahte Jiadao mu?

Bir yargıya varmak için onu şu sorularla test edebilirsiniz: "Bir arkadaşın evine git, ne demeliyim?"

Bir sorunuz olmasına rağmen ne yazacağınızı bilmiyorsunuz. Ancak başka biri yazarsa, yanıtlayanın Jia Dao olup olmadığını genel anahtara göre yargılayabilirsiniz.

"Küçük Kou Chai uzun süre açılmayacak" diye düşünmeden zikrederse ibadet edebilirsiniz. Bu gerçekten ünlü bir şair, ama Song Hanedanı'ndan Ye Shaoweng, ama Tang Hanedanlığı'ndaki Jia Dao değil.

Eğer tereddütle: "Kuş göletin yanındaki ağacın üzerinde dinleniyor ve keşiş aşağı inmek için aya vuruyor" derse, o zaman tebrikler, Öğretmen Jia Dao'nun tanrısı size özel dersler vermek için karşıya geçti!

Tabii ki, şiirlerde kullanılan "özel anahtar" ve "genel anahtar" görece karmaşıktır.İçerisinde çok fazla belirsiz faktör vardır ve tanımlanması zordur.Bu sadece bir metafor. Ancak matematikte, bu tür algoritmaların elektronik imzalar olarak tanımlanması çok açıktır. Güvenilirliği, insanların yıllar içinde sayı teorisi araştırmalarında elde ettikleri başarılarla garanti edilmektedir.

O zamanlar çok işe yaramaz görünen öyle bir saf matematik sonuçları yığını ki, artık büyük sözleşme belgelerini imzalamaktan Double Eleven kadar küçük olana kadar İnternet üzerindeki birçok iş faaliyetine güvenle katılabiliyoruz.

Kaynak: Bay Sai

Yayıncı: GUOmazing

Bach gibi müzisyenlerin kullandığı müzikal ritim ilk olarak Çinliler tarafından abaküs kullanılarak hesaplandı.
önceki
Eskimoların eskimo evinde yaşaması soğuk değil mi?
Sonraki
2019'un en iyi 20 astronomik resmine bakıyoruz
Yatmadan önce cep telefonu oynamak uykusuzluk mavi ışığın potu mu? En son araştırma: Bu tür bir "göz koruması", hasar daha da büyük
Sıkıcı boş zamanlarınızı geçirin | Promosyon
Her zaman Yeni Yıl bayrağını seviyor musunuz? Eskilerden öğrenmek daha iyidir
Kemiksiz tavuk ayakları gerçekten yaşlı büyükanneler tarafından çiğnenmiş mi?
İnsan beyninin rüyasını oksitle özelleştirin
Etkinlikler | 2020 "Bilim Keşif Ödülü" için kayıtlar resmen başladı!
______ için varız
simetri! simetri! Hala simetri!
Yumuşak madde nedir ve yenebilir mi?
İlerleme | Yeni kiral fermiyonlarla ilgili araştırmalarda ilerleme
Yanlışlıkla, bir lisans öğrencisi fizik dünyasını rahatsız eden asırlık bir bilmeceyi yanlışlıkla çözdü
To Top