[Çözüldü] Şifreleme ve Çözme ile ilgili soru

Başlatan afeser, 20 Ocak 2016 - 16:47:56

« önceki - sonraki »

0 Üyeler ve 1 Ziyaretçi konuyu incelemekte.

afeser

Merhaba herkese. Az önce public key private key ile ilgili biraz araştırma yaptım ama bir türlü anlayamadım. Şöyle düşünelim ben bilgisayardan ileti yazıp web sitesine yolluyorum ve bu arada benim tarayıcım bunu şifreliyor internet sitesi ise ters şifreleme yapıyor. Burada anlayamadığım 2 nokta var bir tanesi şu, biz buradaki verileri direk olarak web sitesine yollayamıyor muyuz? neden şifreleme gereksinimi duyuyoruz? https://www.youtube.com/watch?v=ERp8420ucGs bu videoda aradaki çizgi üzerinden başka biri veriyi izleyebiliyor. Peki gerçekte kablolar üzerinden geçen veriyi nasıl herhangi biri izleyebiliyor? Şimdi ikinci soru: birinin bunu izlediğini varsayıyorum bu durumda da web sitesi yerinde bir bilgisayar olsa (zaten bilgisayar var da verileri çalmak isteyen bilgisayar olsa) biz bunun web sitesi mi yoksa başka bir bilgisayar olduğunu anlayamayız. Hatta eğer web sitesinin yazılımına sahip ise direk web sitesi gibi her veriyi çözebilir. burası düşük oldu başka bir örnekle açıklamaya çalışayım web sitesinden veri aldığımızda bunu nasıl şifreliyeceğimizi bilmiyoruz. bu durumda web sitesinden nasıl şifreleyeceğimize dair bir veri almamız lazım. iyi ama biri benim verilerime ulaşıyorsa nasıl şifreleyeceğim verisine de ulaşır. sonuç olarak hangi bilgisayarın gerçekten kullanıcı hangisinin bir korsanın bilgisayarı olduğunu bilgisayarın anlamasını nasıl sağlıyoruz?
kusura bakmayın ingilizcem pek iyi değil videoda anlatmış olabilir ama anlayamadım
Gelecek illa ki gelecek, önemli olan kimin getirdiği...

bugra9

Bildiğim kadarıyla özetleyeyim.

Örneğin ben birilerinin benimle şifreli konuşmasını istiyorum. Bunun için iki anahtar üretiyorum. Tabi ki bu iki anahtar birbiriyle ilişkili.
İlk anahtar => Veriyi şifreliyor
İkinci anahtar => Şifreli veriyi okuyor

Ben ikinci anahtarı kendime saklıyorum ve kimseyle paylaşmıyorum. İlk anahtarı ise isteyene veriyorum.
Şimdi benimle şifreli iletişim kurmak isteyen kişi paylaştığım ilk anahtarı kullanarak mesajını şifreliyor ve bana gönderiyor. Artık bu şifreli mesajı şifreleyen de dahil olmak üzere ben hariç kimse okuyamaz çünkü bu şifreli mesajın okunması için ikinci anahtara ihtiyaç var ve o anahtar da sadece bende bulunuyor.

Sonuç, şifreli iletişimde nasıl bağlanırsan bağlan arada dinleyen kişiler senin şifreli mesajını çözemeyeceği için bilgilerini de öğrenememiş olacak.

Gelelim bunun niye kullanıldığına.
Eskiden genellikle kredi kartı, şifre gibi hassas bilgilerin gönderildiği zamanlarda bu şifreleme kullanılıyordu ama artık heryerde kullanıldığını görebilirsin. Çünkü veri madenciliği diye bir olay çıktı ve senin önemli olarak görmediğin bilgiler bile diğer önemsiz bilgiler ile birleşince önemli hale gelmeye başladı.

Ayrıca bunu ister web sitesi olarak düşün ister iki cihazın haberleşmesi, sonuç aynı olacaktır. Çünkü ortam değişse bile mantık aynı kalacak.

afeser

Alıntı yapılan: bugra9 - 20 Ocak 2016 - 17:34:15
Ben ikinci anahtarı kendime saklıyorum ve kimseyle paylaşmıyorum. İlk anahtarı ise isteyene veriyorum.
Şimdi benimle şifreli iletişim kurmak isteyen kişi paylaştığım ilk anahtarı kullanarak mesajını şifreliyor ve bana gönderiyor. Artık bu şifreli mesajı şifreleyen de dahil olmak üzere ben hariç kimse okuyamaz çünkü bu şifreli mesajın okunması için ikinci anahtara ihtiyaç var ve o anahtar da sadece bende bulunuyor.
Ama ilk anahtardan ikinci anahtar türetilemez mi? Sonuçta biz bir fonksiyon kullanıyoruz ve bunu çözecek ve elimizde olmayan bir fonksiyon daha var. Yani bu durumda tersine de çalışan bir fonksiyon. Aklıma hash gibi olduğu düşünülebilir geliyor ama bu sefer de ikinci anahtarın sahibi yani şifreyi çözecek kişi bir sürü olası şifre elde edecek.

Bir de bu veri trafiğinde örneğin ben bankadan alışveriş yapıyorum ve kredi kartı bilgimi şifrelemiş olarak gönderiyorum. Bu durumda herhangi biri nasıl benim gönderdiğim veriye erişiyor? (şifrelenmiş olsa da)

Zaman ayırdığınız için teşekkürler.
Gelecek illa ki gelecek, önemli olan kimin getirdiği...

bugra9

#3
Sana bunu yapacak bir algoritma yazayım daha iyi anlarsın.
Yazdığım algoritma RSA algoritması,


p = rastgele bir asal sayı;
q = rastgele bir asal sayı;
n = p*q; // n değeri bizim ilk anahtarın ilk değişkeni
m = (p-1)*(q-1);
// e değeri bizim ilk anahtarın son değişkeni
e = 1 den büyük m değerinden küçük rastgele seçilmiş bir asal sayı;
// sonuç olarak ilk anahtarımız n ve e değişkenleri oluyor.
e*d mod m = 1 olacak şekilde d değerini buluyoruz.
// n değişkeni ve d değişkenleri ise bizim ikinci anahtarımız oluyor

Şimdi bir mesajı nasıl şifreleyeceğiz. Mesajımızı sayıya dönüştürdüğümüzü düşünelim ve mesaj değişkeninde tutalım. İlk anahtarımız oluşturduğumuz n ve e değişkenlerinden oluşuyordu.

sifreli_mesaj = mesaj ^ e mod n

Mesajı şifreledik. Şimdi de ikinci anahtar ile şifreli mesajı açalım. İkinci anahtarımız oluşturduğumuz n ve d değişkenlerinden oluşuyordu.

mesaj = sifreli_mesaj ^ d mod n

İşte bu kadar basit. Şimdi bana e ve n değişkenleri kullanılarak d değişkeninin üretilebileceğini söyleyebilir misin? Söyleyebiliyorsan ispatla ve formülü ver.

Bu algoritmayı örnekleyelim.


p = 61;
q = 53;
n = p*q; // n = 3233
m = (p-1)*(q-1); // m = 3120
e = 17;
d = 2753; // sağlaması: 17*2753 mod 3120 = 1

Buradan ilk anahtarın n = 3233 ve e = 17, ikinci anahtarın ise n = 3233 ve d = 2753 olduğunu bulduk.
Şimdi iletmek istediğimiz mesaj 65 sayısı olsun. Bu mesajı şifrelersek

65^17 mod 3233 = 2790

Yani şifrelenmiş hali 2790 bulduk ve bunu karşı tarafa ilettik. Karşı tarafada bu şifreli mesajı çözdürelim.

2790^2753 mod 3233 = 65

formülüyle asıl mesaja ulaşmış olduk.

Tüm olay matematikte bitiyor. Sadece ilk anahtarı bilerek ikinci anahtarı üretemezsin.

ahmet_matematikci

@bugra9 güzel anlattın diline sağlık anladım.
♥ Kız tavlamak için kahraman olmak gerekmez. Doğru kadın zaten sizi kahraman yapar ;)

heartsmagic

Alıntı yapılan: afeserAma ilk anahtardan ikinci anahtar türetilemez mi? Sonuçta biz bir fonksiyon kullanıyoruz ve bunu çözecek ve elimizde olmayan bir fonksiyon daha var. Yani bu durumda tersine de çalışan bir fonksiyon. Aklıma hash gibi olduğu düşünülebilir geliyor ama bu sefer de ikinci anahtarın sahibi yani şifreyi çözecek kişi bir sürü olası şifre elde edecek.

İlk anahtar dediğin özel anahtarsa, hayır açık anahtardan özel anahtara dönüş yoktur. Asimetrik şifrelemedeki olayın esası ve güzelliği bu zaten. Açık anahtarı gönlünce dağıtabilirsin, anahtarı dağıtım konusundaki güvenliği düşünmek zorunda kalmazsın simetrik anahtarlamanın aksine. Son söylediğin olası şifrelerin elde edilmesi konusunu anlamadım.


Alıntı Yap
Bir de bu veri trafiğinde örneğin ben bankadan alışveriş yapıyorum ve kredi kartı bilgimi şifrelemiş olarak gönderiyorum. Bu durumda herhangi biri nasıl benim gönderdiğim veriye erişiyor? (şifrelenmiş olsa da)

Herhangi bir yol olabilir, çok genel bir soru bu :) Örneğin ortak bir ağdasındır ve kötü niyetli biri bu ağdaki paketleri toplamayı başarabiliyordur. Neticede seninle bankan arasındaki veriyi elde edebilir. Elde ettiği şey ancak şifrelenmiş veriler olacaktır şu durumda.

Bu konularda mümkünse Türkçe kaynak bulmayı dene, daha az kafan karışır bence :) Bir de, çok normal sorular değil bu, herhangi bir çalışma için mi soruyorsun? Eğer öyleyse çalışmanın veya merakının genel çerçevesini söyle ki bu işleri bilen arkadaşlar seni bir yerlere yönlendirebilsinler.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

afeser

#6
Alıntı yapılan: bugra9 - 20 Ocak 2016 - 20:19:04

p = rastgele bir sayı;
q = rastgele bir sayı;
n = p*q; // n değeri bizim ilk anahtarın ilk değişkeni
m = (p-1)*(q-1);
// e değeri bizim ilk anahtarın son değişkeni
e = 1 den büyük m değerinden küçük rastgele seçilmiş bir asal sayı;
// sonuç olarak ilk anahtarımız n ve e değişkenleri oluyor.
e*d mod m = 1 olacak şekilde d değerini buluyoruz.
// n değişkeni ve d değişkenleri ise bizim ikinci anahtarımız oluyor

Sanırım burada q ve p rasgele 2 asal sayı çünkü asal olmayınca denediğim sayılar tutmuyor.
Alıntı yapılan: bugra9 - 20 Ocak 2016 - 20:19:04

sifreli_mesaj = mesaj ^ e mod n

Mesajı şifreledik. Şimdi de ikinci anahtar ile şifreli mesajı açalım. İkinci anahtarımız oluşturduğumuz n ve d değişkenlerinden oluşuyordu.

mesaj = sifreli_mesaj ^ d mod n

Bunun ispatı var mı? Bana mantıksız geldi ama denediğim sayıların hepsinde tutuyor.
Aklıma takılan bir nokta var şimdi d ve e sayıları sadece bir tane olabilir değil mi? Yani örneğin 3,11(p ve q) olsun 1 eksiklerinin çarpımı 20 etti bu durumda seçtiğimiz sayı mod 1'de 21 eden 3 ve 7  olacak. Başka sağlayan sayı hiç olmuyor değil mi? Yani tek çözümü var(daha doğrusu 2 ya (m ve n sayılarımız olsun) m 7dir ya da n 7dir).
Alıntı yapılan: bugra9 - 20 Ocak 2016 - 20:19:04
İşte bu kadar basit. Şimdi bana e ve n değişkenleri kullanılarak d değişkeninin üretilebileceğini söyleyebilir misin? Söyleyebiliyorsan ispatla ve formülü ver.
Şimdi n değişkenini bildiğimize göre bunu oluşturan asalları da biliyoruz (sıralı olmasa da biri p diğeri q zaten 2 çarpanı var). Bu durumda 1 eksiklerinin çarpımını da biliyoruz yani m değerini. m değerini biliyorsak da e değerini bildiğimiz için d değerini de hesaplayabilmiş oluyoruz. Bu durumda da ikinci anahtara özgü olan d değeri hesaplanabiliyor.
Yukardaki örnekten n=3233 ve e=17 biliyoruz öyleyse n'nin çarpanları p ve q 61 ve 53 olduğunu buluyoruz. Sonra 60*52=3120=m buluyoruz. e*d = 1 (mod 3120) olduğundan e 17 ise  d=2753 olur. n=3233 d ise 2753 ikinci anahtarı elde etmiş olmadık mı?

Nereyi atladığımı anlayamıyorum bana çok mantıklı geliyor. Neyi yanlış düşünüyorum?

@ heartsmagic
Alıntı yapılan: heartsmagic - 20 Ocak 2016 - 20:36:31
Herhangi bir yol olabilir, çok genel bir soru bu :) Örneğin ortak bir ağdasındır ve kötü niyetli biri bu ağdaki paketleri toplamayı başarabiliyordur. Neticede seninle bankan arasındaki veriyi elde edebilir. Elde ettiği şey ancak şifrelenmiş veriler olacaktır şu durumda.

Aircrack tarzı havadan paket toplama durumlarını biliyorum ama ağ üzerinde kablo ile iletişim kurulduğu zaman paketin başkalarının eline geçmesi pek mantıklı gelmiyor sonuçta adres belli elektromanyetik dalgalardaki gibi her yöne yayın yapma zorunluluğumuz yok.

Alıntı Yap
Bu konularda mümkünse Türkçe kaynak bulmayı dene, daha az kafan karışır bence :) Bir de, çok normal sorular değil bu, herhangi bir çalışma için mi soruyorsun? Eğer öyleyse çalışmanın veya merakının genel çerçevesini söyle ki bu işleri bilen arkadaşlar seni bir yerlere yönlendirebilsinler.

Özel bir çalışmam yok sadece okulda afiş asmışlardı ağ güvenliği bilgilendirme  sunumu diye ama ingilizce olduğundan gitmedim zaten anlamam diye ama alt başlıkları yazdım, internetten araştırıyorum.
Gelecek illa ki gelecek, önemli olan kimin getirdiği...

bugra9

Alıntı YapSanırım burada q ve p rasgele 2 asal sayı çünkü asal olmayınca denediğim sayılar tutmuyor.
Haklısın düzelttim.

Alıntı YapŞimdi n değişkenini bildiğimize göre bunu oluşturan asalları da biliyoruz (sıralı olmasa da biri p diğeri q zaten 2 çarpanı var). Bu durumda 1 eksiklerinin çarpımını da biliyoruz yani m değerini.
Bütün olay burada kopuyor. p*q yu biliyorsun. Sana (p-1)(q-1) = p*q - p - q - 1 lazım. Sen bu değeri de bildiğimizi söylemişsin ama nasıl bildiğini söylememişsin. Öncelikle m değerine ulaşabilmek için p ve q değerlerini ayrı ayrı bulmak gerekiyor. Evet belki küçük sayılarda deneme yanılmayla bu değeri bulabilirsin ama bu sayılar çok büyük seçiliyor. Dikkat edersen bu algoritmaların sağlamlığı 256bit, 512bit, 1024bit, 2048bit şeklinde ayrılıyor ve hepsinin fiyatlarıda farklı. Yanlış bilmiyorsam burada belirtilen bitler p ve q sayılarının ne kadar uzun olduğunu temsil ediyor.

Şöyle düşün, şuana kadar bulunmuş en yüksek asal sayı (2^74,207,281 – 1) ve 22 milyon karakterden oluşuyor. Böyle büyüklükteki iki sayının çarpıldığını düşün. Sen bu çarpım sonucuna göre hangi sayıların çarpıldığını bulabilecek işlem kapasitesine sahip bir cihaza sahip misin?
Diyeceksin ki bunu bile söylemen bu şifrelerin kırılmasının imkansız olmadığını gösterir. Evet her şifre kırılabilir, zaten bu ssl sertifikası satan firmalar, algoritmalarını kıranlara belirli bir para ödülü veriyorlar ve kırılmış algoritmalarını değiştiriyorlar.

Şimdi işin bir diğer boyutuda bu sertifikaları sağlayan her şirket bu algoritmayı kullanmıyor. Farklı algoritmalar kullandığı gibi bu farklı algoritmaları da kendilerine göre özelleştiriyorlar. Yani bir de algoritmanın nasıl çalıştığını bulman lazım.

Alıntı YapAircrack tarzı havadan paket toplama durumlarını biliyorum ama ağ üzerinde kablo ile iletişim kurulduğu zaman paketin başkalarının eline geçmesi pek mantıklı gelmiyor sonuçta adres belli elektromanyetik dalgalardaki gibi her yöne yayın yapma zorunluluğumuz yok.
Sen kendi bilgisayarından bir internet sitesine bir bilgi yolladığında o bilgi birçok cihaz üzerinden geçer. Sonuçta sen tek kablo ile o internet sitesinin barındırıldığı sunucuya bağlı değilsin. Gerek Türk Telekom olsun gerek aradaki başka şirketler, bu bilgilerin hepsi başkasının elinin altından geçiyor. Örneğin, Türk Telekomun, başkalarının internette ne yaptığına dair verileri toplaması ve başka şirketlere vermesi yüzünden yediği cezanın haddi hesabı yok.

heartsmagic

Alıntı yapılan: afeser
Aircrack tarzı havadan paket toplama durumlarını biliyorum ama ağ üzerinde kablo ile iletişim kurulduğu zaman paketin başkalarının eline geçmesi pek mantıklı gelmiyor sonuçta adres belli elektromanyetik dalgalardaki gibi her yöne yayın yapma zorunluluğumuz yok.

Sadece nasıl mümkün olabilir dediğin için o örneği verdim :) Esasında bu sorunun şifreleme ile ilgisi yok, bu nedenle bu bir çalışma mı yoksa merak mı diye sormuştum. @bugra9 da açıklamış güzelce, tek bir yolu yok bu işin. Bambaşka bir konu yani bu. 
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.

afeser

Teşekkürler zaman ayırdığınız için anladım sonunda.  :)
@bugra9
@heartsmagic
Gelecek illa ki gelecek, önemli olan kimin getirdiği...

heartsmagic

Eğer farklı soruların yoksa bu konuyla alakalı şöyle bir uygulamamız var çözülen konularımız için: cozuldukonusu
Sorunların varsa devam edilebilir elbette.
Hayattan çıkarı olmayanların, ölümden de çıkarı olmayacaktır.
Hayatlarıyla yanlış olanların ölümleriyle doğru olmalarına imkân var mıdır?


Böylece yalan, dünyanın düzenine dönüştürülüyor.