Forum: Projeler Genel RSS
Şifreleme Projesi
Kadir Can #1
Üye Haz 2010 tarihinden beri · 413 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: Şifreleme Projesi
Yeni bir projeyle karşınızdayım.Amacım şifreleme algoritmaları oluşturmak ve bu algoritmaları kullanan şifreleme programları yazmak.İlk olarak aklımda bir düşünce var.

Öncelikle daha önceden yazılmış algoritmaları kullanabiliriz.Sonra bu işte ustalaşınca kendimiz algoritma oluşturabiliriz.Bana katılmak isteyenler konuya mesaj yazarlarsa sevinirim.

Yorumlarınızı bekliyorum.
canalpay (Moderatör) #2
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Derslerinizde neredesiniz. Biraz ilerleyin. Benimde aklımda zaten şifreleme projesi yazmak vardı.
Ancak şifreleme projesinde geri dönüş olacak mı olmayacak mı ?

Örneğin : Can Alpay Çiftçi yazdığımızda şifreleyici 1234312345412 diye bir sayı veriyor. Bu sayıyı şifreliyiciye verdiğimizde Can Alpay Çiftçi yazacak mı ? Yoksa md5 gibi Bir çok giriş olduğu halde çıkış değeri sabit olduğundan geri dönüşüm olmayacak mı ?
Kadir Can #3
Üye Haz 2010 tarihinden beri · 413 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Şöyle düşündüm:

Program çalışacak ve kullanıcıdan bir değer isteyecek(anahtar).Anahtara göre şifreleme yapılacak ve anahtar doğru girildiğinde geri dönüş olacak.Ayrıntıları burada konuşursak programın anlamı kalmaz.Çünkü şifreleme programı.Şu adrese e-posta atabilirsin.

Derslerde Hata Atma ve Yakalama'dayım.
Bu mesaj 2 defa değişti; son değiştiren: Kadir Can; zaman: 2010-07-03, 13:09.
canalpay (Moderatör) #4
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Buradan konuşabiliriz. Anahtar sözcük olduğu için( sanırım buna bazıları bayrak diyor. ) bu proje açık kaynak kodlu olabilir. Ben daha öncede zaten Ali Bey ile böyle bir şeyden konuşmuştum.

Zaten kırılamayacak hiç bir şifreleme yöntemi olmadığı için açık kaynak kodlu olması daha iyi. En azından hatalarımızı daha kolay gideririz.
Kadir Can #5
Üye Haz 2010 tarihinden beri · 413 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Tamam.Şimdi kapatmam gerekiyor.Açık kaynak kodlu geliştiririz.Yorumlarınızı yazmaya devam ediniz.Fikirlerinizi sabah okuyacağım.

Evet,anahtar kullanmak bence şifreleme için çok uygun bir yöntem.
canalpay (Moderatör) #6
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Tamam şu biçimde ilerleriz:

İlk önce siz dersleri bitirmeye odaklanın. Buna odaklanırken ise versiyonlama nasıl kullanılır öğrenin.(git olabilir, svn olabilir benim için farketmez. Ancak svn windowsta Gui(grafiksel kullanıcı arayüzü) ile çok kolay kullanılabiliyor. Bu yüzden size onu öneririm. )

Siz derslerinizi bitirirken bu konuda şifreleme hakkında konuşuruz.

En başta anlaştığımız şeyler şifreleme bayraklı olacak. Örneğin gizle("Can", "Kadir") dediğimizde 142 değerini oluşturuyorsa gizle("Can","Ali") 473 değeri gibi farklı değerler verecek.

Şifrelemede şifrede hangi karakterler var olacağı çok önemli. Sadece sayılar mı ? Yoksa başka karakterler mi ? Bence bütün ascii karakterleri olmalı. Ne kadar çok karakter o kadar daha güvenli olur.

Şifrelerken şifre metinden çokta uzun olmamalı. Hatta aynıya yakın ve hatta mümkünse şifre metinden daha kısa olmalı. Bunun için şifrelerken basit bir sıkıştırma algoritmasıda yazarız.

Ayrıca sezar yöntemi denen bir yöntem var. İlk önce ondan yararlanırız. Her ne kadar binlerce yıllık bir yöntem olduğu için pek güvenli olmasada güvenliği bir derece arttırır.


Şuan aklıma bunlar geliyor. Daha sonra zaten uzun uzun konuşuruz.
acehreli (Moderatör) #7
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4389 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Benim için de bu aşamada D olması önemli.

Şifreleme konularında da bulaşmayı istemeyecek kadar bilgim var. :) Bana çok karmaşık bir konu olarak geliyor. Onun için bu projeyi kenardan izlemeyi tercih edeceğim. :)

Ali
Kadir Can #8
Üye Haz 2010 tarihinden beri · 413 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Aklımda şöyle bir şey var:
Galiba Sezar algoritması böyleydi.Kullanıcıdan metni alacağız.Sonra bir bayrak(anahtar) alacağız.Şifreleme yaparken de bütün ASCII karakterleri bir diziye ekleyeceğiz.Aldığımız bayrak değeri mutlaka bir sayı olmalı.Çünkü aldığımız metni harf harf okuyacağız.Sonrasında harflerin dizideki indekslerini bulacağız.İndeks değerlerini bayrak değeri kadar artıracağız.Sonra ekrana şifreli metini yazdıracağız.Sonra bir bayrak daha alacağız.İlk bayrağın değeri ile ikinci bayrağın değerini çarpacağız.Geri dönüşme işinde ise kullanıcıya bayrak değerlerinin çarpımını soracağız.İkinci bayrağı soracağız.Çarpımı ikinci bayrağın sonucuna bölerek ilk bayrağın değerini bulacağız.Sonra şifreli metindeki değerlerin indekslerini ilk bayrak kadar geri alacağız.Metni göstereceğiz.

Bence oldukça güvenli bir yöntem olur.Çünkü kullanıcıdan 2 adet değer istiyor.Şifrenin kırılması için önce bunları bilmek gerekiyor.Ayrıca şöyle bir avantajımız var.Eğer kullanıcı değerlerden birini yanlış girerse şifreli metin anlamsızlaşacaktır.
canalpay (Moderatör) #9
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Bana çok karmaşık bir konu olarak geliyor.

Merak etmeyin. Kendi adıma konuşursam olayı karmaşık hale getiremeyecek kadar bilgim az :-)
Ben bu aşamada tek bayrağa güveniyorum.

Benim bildiğim sezar önemli belgelerinde kendince basit bir şifreleme yaparmış. Her karakteri başka bir karakter ile ifade edermiş. Böylece kendisi bunu kolayca okuyabilir başkasıda okuyamaz. Çünkü o zamanlarda bunu ilk düşünen o. Şimdi bu yöntem bir işe yaramaz ancak şifre biraz daha karmaşık gözüksün diye bunu yaparız.

Ben şunu düşünüyorum.

İki tane sınıf oluştururuz. Biri şifreleme, diğeri sıkıştırma.
şifreleme sınıfında herkes kendine göre bir şifreleme işlevi yazar ve bu şifreyi çözme işlevi yazar. Sıkıştırmada da herkes kendince bir sıkıştırma sonrada sıkışmış veriyi açma işlevi yazar. Daha sonra bütün bu işlevleri şifrele işlevi ile çağırırız ve oldukça güvenli bir şifre olabilir. Örneğin bu işlevleri farklı sıraylada çağırırsak bir sürü farklı şifreleme olur. Bu kadar çok kombinasyonun çözülmesi çok kolay olmaz diyeceğim.(Emin değilim. Açık kaynak olmasa öyle olurdu. Ancak açık kaynak yazmak istiyorum ben.)
canalpay (Moderatör) #10
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Bayrak sayesinde çok basit bir şifreleme aracı yaptım. Ve sanıyorum ki bunu iki argümanın olması gereken değeri bilmeden kimse bulamaz. :-D

import std.stdio;
void main()
{
    dchar[] gizle(dchar[] şifre, dchar[] bayrak)
    {
        dchar[] yeniŞifre;
        int sayı;
        int say=bayrak.length;
        foreach(ref karakter; şifre){
            sayı=say%bayrak.length;
            yeniŞifre~=cast(int)karakter+cast(int)bayrak[sayı];
        }
        return yeniŞifre;
    }
writeln(gizle("Alicvs"d.dup,"Can"d.dup));
dchar[] a=gizle("Alicvs"d.dup,"Can"d.dup);
writeln(a.length);
 
    dchar[] giziAç(dchar[] şifre, dchar[] bayrak)
    {
        dchar[] yeniŞifre;
        int sayı;
        int say=bayrak.length;
        foreach(ref karakter; şifre){
            sayı=say%bayrak.length;
            yeniŞifre~=cast(int)karakter-cast(int)bayrak[sayı];
        }
        return yeniŞifre;
    }
    
writeln(giziAç(a,"Can"d.dup));
}
acehreli (Moderatör) #11
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4389 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
say%bayrak.length her zaman için 0 olur:

            sayı=say%bayrak.length;
            assert(sayı == 0);

Umarım bu algoritmada o kadar önemi yoktur... ;)

Ali
canalpay (Moderatör) #12
Kullanıcı başlığı: Can Alpay Çiftçi
Üye Tem 2009 tarihinden beri · 1133 mesaj · Konum: İzmir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Evet sadece arttırmayı unutmuşum. Olur böyle hatalar :-p

import std.stdio;
void main()
{
    dchar[] gizle(dchar[] şifre, dchar[] bayrak)
    {
        dchar[] yeniŞifre;
        int sayı;
        int say=bayrak.length;
        foreach(ref karakter; şifre){
            sayı=say%bayrak.length;
            yeniŞifre~=cast(int)karakter+cast(int)bayrak[sayı];
            ++say;
        }
        return yeniŞifre;
    }
writeln(gizle("Alicvs"d.dup,"Can"d.dup));
dchar[] a=gizle("Alicvs"d.dup,"Can"d.dup);
writeln(a.length);
 
    dchar[] giziAç(dchar[] şifre, dchar[] bayrak)
    {
        dchar[] yeniŞifre;
        int sayı;
        int say=bayrak.length;
        foreach(ref karakter; şifre){
            sayı=say%bayrak.length;
            yeniŞifre~=cast(int)karakter-cast(int)bayrak[sayı];
            ++say;
        }
        return yeniŞifre;
    }
    
writeln(giziAç(a,"Can"d.dup));
}
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Forum: Projeler Genel RSS
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-03-23, 11:27:12 (UTC -07:00)