Logo Logo
  • Ana Sayfa
  • Hakkında
  • Kategoriler
    • Genel
    • İstatistik
    • Makine Öğrenme
    • Model Geliştirme
    • Sağlık
    • Teknoloji
  • Tüm Yazılarım
  • İletişim

İletişim

  • Email buluttevfik@gmail.com

Site Haritası

  • Ana Sayfa
  • Hakkında
  • İletişim

Sosyal Medya Adresleri

Şifre Kombinasyonlarının Kırılma Olasılıkları: Cracking Probability of Password Combinations

  • ANA SAYFA
  • Blog Details
Ekim 2 2021
  • İstatistik

Intro

In this study, probability of breaking password combinations with the function I created using R programming language was calculated by considering different dimensions. The different dimensions considered are:

  • How much does number of digits in the password combination affect probability of cracking?
  • How much do characters in the language used in the password combination affect the probability of cracking?
  • How does repetitive and non-repeatable password combination affect probability of cracking?
  • How much does the number, letter or both (alphanumeric) used in the password combination affect probability of cracking?
  • How much do the symbols and lowercase letters used in password combination affect probability of cracking?

Giriş

Şifreler artık günlük hayatımınızın bir parçası olmuştur. Anlaşılan o ki bulut bilişim ve artan dijital dönüşüm sayesinde hayatımızın daha da içerisine girmeye devam edecektir. Ancak artan dijitalleşme siber güvenlik endişelerini de beraberinde getirmeye devam etmektedir. Hemen hemen hepimizin uygulamalar kullanırken birden fazla şifre kullanırız. Şifre belirlerken bir kısmımız kolay hatırlansın diye düşük güvenlikli şifreler belirlediği görülmektedir. Bazıları ise harf, rakam ve noktalama işaretlerini kullanarak yüksek güvenlikli şifre kombinasyonları oluşturduğunu görmekteyiz.

Burada temel soru şu; esasen kaçımız oluşturduğumuz şifre kombinasyonlarının kırılma olasılığını biliyor? Cevabınızı duyar gibiyim :); muhtemelen çok çok azımız. Belki de sadece bu işin içinde yer alanlar… Şifre kombinasyonların kırılma olasılığını bilmek bizlere daha güçlü şifre belirleme olanağı sunar. Bu nedenle bu çalışmanın temel motivasyonudur.

Bu çalışmada R programlama dili kullanarak oluşturduğum fonksiyonla şifre kombinasyonlarının kırılma olasılığı farklı boyutları ele alınarak hesaplanmıştır. Ele alınan farklı boyutlar şunlardır.

  • Şifre kombinasyonundaki hane sayısı kırılma olasılığını ne kadar etkiliyor?
  • Şifre kombinasyonunda kullanılan dildeki karakterler kırılma olasılığını ne kadar etkiliyor?
  • Şifre kombinasyonunun tekrarlı ve tekrarsız olması kırılma olasılığını ne kadar etkiliyor?
  • Şifre kombinasyonunda kullanılan rakam, harf veya her ikisi (alfanumerik) kırılma olasılığını ne kadar etkiliyor?
  • Şifre kombinasyonunda kullanılan semboller ve küçük harfler kırılma olasılığını ne kadar etkiliyor?

Kütüphaneler

kütüphane<-c("dplyr","tibble","tidyr","readxl", "writexl", "kableExtra", "report", "citation", "rmarkdown")
yükle<-sapply(kütüphane, require, character.only = TRUE, warn.conflicts = FALSE)
 
#Kütüphane yüklenme durumunu gösteren tablo
 
tibble(Sıra=1:length(kütüphane), Kütüphane=names(yükle), Durumu=as.logical(yükle)) %>% mutate(Durumu=if_else(Durumu==TRUE, "Yüklendi", "Paket Kurulumu Gerekli")) %>% 
kable(caption = htmltools::tags$caption(
    style = 'caption-side: top; text-align: center;background-color: #0077b5;color:white;font-family: arial; font-size: 20px;font-weight: bold;border: 3px solid #0e76a8;box-shadow: 10px 10px 20px grey',"Yüklenen Kütüphanelerin Listesi")) %>% 
kable_styling(bootstrap_options = c("striped", "hover"),font_size = 16) %>% row_spec(0, bold = T, color = "black") 

Basit Fonksiyon

Aşağıdaki şifre kombinasyonlarının sayısının hesaplanmasında yazılan fonksiyonlarda genel olarak üretilen şifre permütasyon sayısının çarpmaya göre tersi (1/permütasyon sayısı) alındığında oluşturulan şifrenin kırılma olasılığını hesaplamış oluruz. Temel olarak yapılan hesaplamalarda permütasyon kullanılmıştır. Bunun nedeni, şifre kombinasyonlarında sıra düzenin önemli olmasıdır.

Aşağıda yazılan basit kirilma_olasiliği() fonksiyonunda default olarak function(permütasyon=“tekrarlı”, hane=6) şeklinde tanımlanmıştır. Fonksiyonda permütasyon=“tekrarlı” veya permütasyon=“tekrarsız”, ve hane=45 veya hane’yi istediğiniz basamak olarak belirleyebiliriz. Fonksiyonda bunu tamamen kullanıcıya esneklik sağlasın diye bu şekilde belirleyerek farklı kombinasyonlarda olasılıkların nasıl değiştiği görülsün istedim.

options(scipen = 999)

basit_kirilma_olasiliği=function(permütasyon="tekrarlı", hane=6){
  rakam <- 0:9

  if(permütasyon=="tekrarsız"){
            sonuc=format(factorial(length(rakam))/factorial(length(rakam)-hane), big.mark=".")
            return(paste(permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  }  else if(permütasyon=="tekrarlı"){
            sonuc=format(length(rakam)^hane, big.mark=".")
            return(paste(permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  
}
 
}  
# Üretilecek şifre kombinasyonunda kaç haneli olacağını, tekrarlı kombinasyonla mı tekrarsız kombinasyonla mı oluşturulacağını fonksiyon içerisinde tanımlayınız.

basit_kirilma_olasiliği(permütasyon="tekrarlı", hane=10)  

Uygulama 1: Tekrarlı Permütasyon

Bu kısımda oluşturulan fonksiyonla rakamlara dayalı 10 haneli tekrarlı şifre permütasyon sayısı hesaplanmıştır.

basit_kirilma_olasiliği(permütasyon="tekrarlı", hane=10)
## [1] "tekrarlı permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=10.000.000.000. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 10.000.000.000'da 1'dir."

Uygulama 2: Tekrarsız Permütasyon

Bu kısımda oluşturulan fonksiyonla rakamlara dayalı 10 haneli tekrarsız şifre permütasyon sayısı hesaplanmıştır.

basit_kirilma_olasiliği(permütasyon="tekrarsız", hane=10)
## [1] "tekrarsız permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=3.628.800. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 3.628.800'da 1'dir."

Fonksiyon I

Aşağıda kirilma_olasiliği() fonksiyonu default olarak function(permütasyon=“tekrarlı”, dili=“İngilizce”, hane=6) şeklinde tanımlanmıştır. Fonksiyonda permütasyon=“tekrarlı” veya permütasyon=“tekrarsız”, dili=“Türkçe” veya *dili=“İngilizce” ve hane=45 veya hane**’yi istediğiniz basamak olarak belirleyebiliriz. Fonksiyonda bunu tamamen kullanıcıya esneklik sağlasın diye bu şekilde belirleyerek farklı kombinasyonlarda olasılıkların nasıl değiştiği görülsün istedim.

options(scipen = 999)

kirilma_olasiliği=function(permütasyon="tekrarlı", dili="İngilizce", hane=6){
  rakam <- 0:9
  HARF <- c("A","B", "C", "Ç", "D", "E","F","G", "Ğ", "H", "I", "İ", "J", "K", "L", "M", "N", "O", "Ö", "P", "R", "S", "Ş", "T", "U", "Ü", "V", "Y", "Z")
  tr <- c(rakam, HARF)
  ing<-c(rakam, LETTERS)
  if(permütasyon=="tekrarlı" && dili=="Türkçe"){
            sonuc=format(length(tr)^hane, big.mark=".")
            return(paste(dili, " dilinde ", permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  }  else if(permütasyon=="tekrarsız" && dili=="Türkçe"){
            sonuc=format(factorial(length(tr))/factorial(length(tr)-hane), big.mark=".")
            return(paste(dili, " dilinde ", permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  }  else if(permütasyon=="tekrarlı" && dili=="İngilizce"){
            sonuc=format(length(ing)^hane, big.mark=".")
            return(paste(dili, " dilinde ", permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  }  else if(permütasyon=="tekrarsız" && dili=="İngilizce"){
            sonuc=format(factorial(length(ing))/factorial(length(ing)-hane), big.mark=".")
            return(paste(dili, " dilinde ", permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  
  }
  
}
   
# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını kirilma_olasiliği() fonksiyonu içerisinde tanımlayınız.

kirilma_olasiliği(permütasyon="tekrarlı", hane=10, dili="Türkçe")  

Uygulama 1: Türkçe Tekrarlı Permütasyon

Bu kısımda oluşturulan fonksiyonla Türkçe dilinde 10 haneli tekrarlı şifre kombinasyon sayısı hesaplanmıştır.

# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını kirilma_olasiliği() fonksiyonu içerisinde tanımlayınız.

kirilma_olasiliği(permütasyon="tekrarlı", hane=10, dili="Türkçe") 
## [1] "Türkçe dilinde tekrarlı permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=8.140.406.085.191.601. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 8.140.406.085.191.601'da 1'dir."

Uygulama 2: Türkçe Tekrarsız Permütasyon

Bu kısımda oluşturulan fonksiyonla Türkçe dilinde 10 haneli tekrarsız şifre kombinasyon sayısı hesaplanmıştır.

# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını kirilma_olasiliği() fonksiyonu içerisinde tanımlayınız.

kirilma_olasiliği(permütasyon="tekrarsız", hane=10, dili="Türkçe") 
## [1] "Türkçe dilinde tekrarsız permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=2.306.992.893.004.800. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 2.306.992.893.004.800'da 1'dir."

Uygulama 3: İngilizce Tekrarlı Permütasyon

Bu kısımda oluşturulan fonksiyonla İngilizce dilinde 10 haneli tekrarlı şifre kombinasyon sayısı hesaplanmıştır.

# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını kirilma_olasiliği() fonksiyonu içerisinde tanımlayınız.

kirilma_olasiliği(permütasyon="tekrarlı", hane=10, dili="İngilizce") 
## [1] "İngilizce dilinde tekrarlı permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=3.656.158.440.062.976. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 3.656.158.440.062.976'da 1'dir."

Uygulama 4: İngilizce Tekrarsız Permütasyon

Bu kısımda oluşturulan fonksiyonla İngilizce dilinde 10 haneli tekrarsız şifre kombinasyon sayısı hesaplanmıştır.

# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını kirilma_olasiliği() fonksiyonu içerisinde tanımlayınız.

kirilma_olasiliği(permütasyon="tekrarsız", hane=10, dili="İngilizce") 
## [1] "İngilizce dilinde tekrarsız permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=922.393.263.052.800. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 922.393.263.052.800'da 1'dir."

Fonksiyon II

Bir önceki fonksiyondan farklı olarak burada fonksiyona hem İngilizce hem de Türkçe karakterlerin küçük harfle yazılışları da dahil edilmiştir. Bunun yapılmasının nedeni, bir önceki fonksiyonla karşılaştırma yapabilmenizdir.

options(scipen = 999)

kirilma_olasiliği_kh=function(permütasyon="tekrarlı", dili="İngilizce", hane=6){
  rakam <- 0:9
  HARF <- c("A","B", "C", "Ç", "D", "E","F","G", "Ğ", "H", "I", "İ", "J", "K", "L", "M", "N", "O", "Ö", "P", "R", "S", "Ş", "T", "U", "Ü", "V", "Y", "Z")
  tr <- c(rakam, HARF, tolower(HARF))#ilave olarak küçük harfler de eklenmiştir.
  ing<-c(rakam, LETTERS, letters)#ilave olarak küçük harfler de eklenmiştir.
  if(permütasyon=="tekrarlı" && dili=="Türkçe"){
            sonuc=format(length(tr)^hane, big.mark=".")
            return(paste(dili, " dilinde ", permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  }  else if(permütasyon=="tekrarsız" && dili=="Türkçe"){
            sonuc=format(factorial(length(tr))/factorial(length(tr)-hane), big.mark=".")
            return(paste(dili, " dilinde ", permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  }  else if(permütasyon=="tekrarlı" && dili=="İngilizce"){
            sonuc=format(length(ing)^hane, big.mark=".")
            return(paste(dili, " dilinde ", permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  }  else if(permütasyon=="tekrarsız" && dili=="İngilizce"){
            sonuc=format(factorial(length(ing))/factorial(length(ing)-hane), big.mark=".")
            return(paste(dili, " dilinde ", permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  
  }
  
}
   
# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını kirilma_olasiliği() fonksiyonu içerisinde tanımlayınız.

kirilma_olasiliği_kh(permütasyon="tekrarlı", hane=10, dili="Türkçe") 

Uygulama 1: Türkçe Tekrarlı Permütasyon

Bu kısımda oluşturulan fonksiyonla Türkçe dilinde 10 haneli tekrarlı şifre kombinasyon sayısı hesaplanmıştır.

# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını fonksiyon içerisinde tanımlayınız.

kirilma_olasiliği_kh(permütasyon="tekrarlı", hane=10, dili="Türkçe")  
## [1] "Türkçe dilinde tekrarlı permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=2.113.922.820.157.210.624. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 2.113.922.820.157.210.624'da 1'dir."

Uygulama 2: Türkçe Tekrarsız Permütasyon

Bu kısımda oluşturulan fonksiyonla Türkçe dilinde 10 haneli tekrarsız şifre kombinasyon sayısı hesaplanmıştır.

# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını fonksiyon içerisinde tanımlayınız.

kirilma_olasiliği_kh(permütasyon="tekrarsız", hane=10, dili="Türkçe") 
## [1] "Türkçe dilinde tekrarsız permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=1.055.082.251.814.008.960. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 1.055.082.251.814.008.960'da 1'dir."

Uygulama 3: İngilizce Tekrarlı Permütasyon

Bu kısımda oluşturulan fonksiyonla İngilizce dilinde 10 haneli tekrarlı şifre kombinasyon sayısı hesaplanmıştır.

# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını fonksiyon içerisinde tanımlayınız.

kirilma_olasiliği_kh(permütasyon="tekrarlı", hane=10, dili="İngilizce")  
## [1] "İngilizce dilinde tekrarlı permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=839.299.365.868.340.224. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 839.299.365.868.340.224'da 1'dir."

Uygulama 4: İngilizce Tekrarsız Permütasyon

Bu kısımda oluşturulan fonksiyonla İngilizce dilinde 10 haneli tekrarsız şifre kombinasyon sayısı hesaplanmıştır.

# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını fonksiyon içerisinde tanımlayınız.

kirilma_olasiliği_kh(permütasyon="tekrarsız", hane=10, dili="İngilizce")  
## [1] "İngilizce dilinde tekrarsız permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=390.164.706.723.041.920. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 390.164.706.723.041.920'da 1'dir."

Fonksiyon III

Önceki fonksiyondan farklı olarak burada fonksiyona semboller de dahil edilmiştir. Bunun yapılmasının nedeni, önceki fonskiyonlarla karşılaştırma yapabilmenizdir.

options(scipen = 999)

kirilma_olasiliği_tum=function(permütasyon="tekrarlı", dili="İngilizce", hane=6){
  rakam <- 0:9
  HARF <- c("A","B", "C", "Ç", "D", "E","F","G", "Ğ", "H", "I", "İ", "J", "K", "L", "M", "N", "O", "Ö", "P", "R", "S", "Ş", "T", "U", "Ü", "V", "Y", "Z")
  ni=c("!",  "#", "$", "%", "&", "(", ")", "*",  "+", "-", "/", ":", ";", "<", "=", ">", "?", "@", "[", "^", "_", "{", "|", "}", "~")
  tr <- c(rakam, HARF, tolower(HARF), ni)#ilave olarak küçük harfler de eklenmiştir.
  ing<-c(rakam, LETTERS, letters, ni)#ilave olarak küçük harfler de eklenmiştir.
  if(permütasyon=="tekrarlı" && dili=="Türkçe"){
            sonuc=format(length(tr)^hane, big.mark=".")
            return(paste(dili, " dilinde ", permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  }  else if(permütasyon=="tekrarsız" && dili=="Türkçe"){
            sonuc=format(factorial(length(tr))/factorial(length(tr)-hane), big.mark=".")
            return(paste(dili, " dilinde ", permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  }  else if(permütasyon=="tekrarlı" && dili=="İngilizce"){
            sonuc=format(length(ing)^hane, big.mark=".")
            return(paste(dili, " dilinde ", permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  }  else if(permütasyon=="tekrarsız" && dili=="İngilizce"){
            sonuc=format(factorial(length(ing))/factorial(length(ing)-hane), big.mark=".")
            return(paste(dili, " dilinde ", permütasyon, " permütasyon ile üretilen ",hane, " haneli şifre kombinasyon sayısı=", sonuc, ". Diğer bir ifadeyle, ", hane," haneli bu şifre kombinasyonunun kırılma olasılığı, ", sonuc, "'da 1'dir.", sep=""))
  
  }
  
}
  
   
# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını fonksiyon içerisinde tanımlayınız.

kirilma_olasiliği_tum(permütasyon="tekrarlı", hane=10, dili="Türkçe")   

Uygulama 1: Türkçe Tekrarlı Permütasyon

Bu kısımda oluşturulan fonksiyonla Türkçe dilinde 10 haneli tekrarlı şifre kombinasyon sayısı hesaplanmıştır.

# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını fonksiyon içerisinde tanımlayınız.

kirilma_olasiliği_tum(permütasyon="tekrarlı", hane=10, dili="Türkçe")   
## [1] "Türkçe dilinde tekrarlı permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=48.398.230.717.929.316.352. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 48.398.230.717.929.316.352'da 1'dir."

Uygulama 2: Türkçe Tekrarsız Permütasyon

Bu kısımda oluşturulan fonksiyonla Türkçe dilinde 10 haneli tekrarsız şifre kombinasyon sayısı hesaplanmıştır.

# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını fonksiyon içerisinde tanımlayınız.

kirilma_olasiliği_tum(permütasyon="tekrarsız", hane=10, dili="Türkçe") 
## [1] "Türkçe dilinde tekrarsız permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=29.318.602.952.589.398.016. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 29.318.602.952.589.398.016'da 1'dir."

Uygulama 3: İngilizce Tekrarlı Permütasyon

Bu kısımda oluşturulan fonksiyonla İngilizce dilinde 10 haneli tekrarlı şifre kombinasyon sayısı hesaplanmıştır.

# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını fonksiyon içerisinde tanımlayınız.

kirilma_olasiliği_tum(permütasyon="tekrarlı", hane=10, dili="İngilizce") 
## [1] "İngilizce dilinde tekrarlı permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=24.842.341.419.143.569.408. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 24.842.341.419.143.569.408'da 1'dir."

Uygulama 4: İngilizce Tekrarsız Permütasyon

Bu kısımda oluşturulan fonksiyonla İngilizce dilinde 10 haneli tekrarsız şifre kombinasyon sayısı hesaplanmıştır.

# Üretilecek şifre kombinasyonunda kullanılacak dili, kaç haneli olacağını, tekrarlı permütasyonla mı tekrarsız permütasyonla mı oluşturulacağını fonksiyon içerisinde tanımlayınız.

kirilma_olasiliği_tum(permütasyon="tekrarsız", hane=10, dili="İngilizce") 
## [1] "İngilizce dilinde tekrarsız permütasyon ile üretilen 10 haneli şifre kombinasyon sayısı=14.517.925.392.916.006.912. Diğer bir ifadeyle, 10 haneli bu şifre kombinasyonunun kırılma olasılığı, 14.517.925.392.916.006.912'da 1'dir."

Sonuç

Özetle, yapılan çalışmayla İngilizce ve Türkçe karakterlerinin yanında rakamlar ve semboller de dahil edilerek üretilen şifre kombinasyonlarının sayısı ve bu kombinasyon sayılarından yola çıkılarak şifrelerin kırılma olasılıkları hesaplanarak konu alanında farkındalık oluşturulması amaçlanmıştır.

Çalışmanın tamamını RPubs üzerinde de yayınladım. İlgilenenler için linki: https://rpubs.com/tevfik1461/cracking

Faydalı olması dileğiyle.

Bilimle ve teknolojiyle kalınız.

Not:

  •  Kaynak gösterilmeden alıntı yapılamaz veya kopyalanamaz.
  •  It can not be cited or copied without referencing.

Kaynakça

  • Hadley Wickham (2021). tidyr: Tidy Messy Data. R package version 1.1.3. https://CRAN.R-project.org/package=tidyr
  • Hadley Wickham and Jennifer Bryan (2019). readxl: Read Excel Files. R package version 1.3.1. https://CRAN.R-project.org/package=readxl
  • Hadley Wickham, Romain François, Lionel Henry and Kirill Müller (2021). dplyr: A Grammar of Data Manipulation. R package version 1.0.7. https://CRAN.R-project.org/package=dplyr
  • Hao Zhu (2021). kableExtra: Construct Complex Table with ‘kable’ and Pipe Syntax. R package version 1.3.4. https://CRAN.R-project.org/package=kableExtra
  • Jeroen Ooms (2021). writexl: Export Data Frames to Excel ‘xlsx’ Format. R package version 1.4.0. https://CRAN.R-project.org/package=writexl
  • JJ Allaire and Yihui Xie and Jonathan McPherson and Javier Luraschi and Kevin Ushey and Aron Atkins and Hadley Wickham and Joe Cheng and Winston Chang and Richard Iannone (2021). rmarkdown: Dynamic Documents for R. R package version 2.10. URL https://rmarkdown.rstudio.com.
  • Kirill Müller and Hadley Wickham (2021). tibble: Simple Data Frames. R package version 3.1.3. https://CRAN.R-project.org/package=tibble
  • Makowski, D., Ben-Shachar, M.S., Patil, I. & Lüdecke, D. (2020). Automated Results Reporting as a Practical Tool to Improve Reproducibility and Methodological Best Practices Adoption. CRAN. Available from https://github.com/easystats/report
  • R Core Team (2021). R: A language and environment for statistical computing. R Foundation for Statistical Computing, Vienna, Austria. URL https://www.R-project.org/.
Önceki yazı Sonraki Yazı
breaking passwordPasswordpassword crackingPassword GenerationŞifreŞifre kırmaŞifre Kombinasyonlarının Kırılma Olasılıkları

Yorum Yaz Cevabı iptal et

Son Yazılar

  • Kanada Sağlık Sisteminde Bekleme Süreleri
  • Araştırma Metodolojisi Notları-II
  • Araştırma Metodolojisi Notları-I
  • Microsoft Excel’de Bulut Endeks-Beta [BE-β] Simülasyonu
  • R’da Statik ve Dinamik Haritalama Vaka Çalışmaları: Türkiye Örneği

Son Yorumlar

  1. Küresel İnovasyon Endeksi 2021 Yılı Raporu ve Türkiye - winally.com - Küresel İnovasyon Endeksi’nde Türkiye Ne Durumda?
  2. R’da Birliktelik Kuralları | canözkan - Apriori Algoritması Üzerine Bir Vaka Çalışması: A Case Study on Apriori Algorithm
  3. Tevfik BULUT - Python’da Şans Oyunları Perspektifinden Olasılık : Probability from Perspective of the Chance Games in Python
  4. Ahmet Aksoy - Python’da Şans Oyunları Perspektifinden Olasılık : Probability from Perspective of the Chance Games in Python
  5. Tevfik BULUT - Z Tablosuna Göre Güven Aralığının Hesaplanmasına Yönelik Bir Simülasyon Çalışması: A Simulation Study for Calculating Confidence Interval by Z Table

Arşivler

  • Ocak 2023
  • Ekim 2022
  • Eylül 2022
  • Nisan 2022
  • Mart 2022
  • Ekim 2021
  • Eylül 2021
  • Ağustos 2021
  • Temmuz 2021
  • Haziran 2021
  • Mayıs 2021
  • Nisan 2021
  • Şubat 2021
  • Ocak 2021
  • Aralık 2020
  • Kasım 2020
  • Ekim 2020
  • Eylül 2020
  • Ağustos 2020
  • Temmuz 2020
  • Haziran 2020
  • Mayıs 2020
  • Nisan 2020
  • Mart 2020
  • Şubat 2020
  • Ocak 2020
  • Aralık 2019
  • Kasım 2019
  • Ekim 2019
  • Eylül 2019
  • Ağustos 2019
  • Mayıs 2019
  • Şubat 2019
  • Aralık 2018
  • Eylül 2018
  • Ağustos 2018
  • Temmuz 2018
  • Mayıs 2018
  • Nisan 2018
  • Ekim 2017
  • Temmuz 2017
  • Haziran 2017
  • Mayıs 2017
  • Ocak 2017

Kategoriler

  • Genel
  • İstatistik
  • Makine Öğrenme
  • Model Geliştirme
  • Sağlık
  • Teknoloji

Kategoriler

  • Genel
  • İstatistik
  • Makine Öğrenme
  • Model Geliştirme
  • Sağlık
  • Teknoloji

Etiketler

Accuracy Basit Tesadüfi Örnekleme Bernoulli Olasılık Dağılımı Confusion Matrix Coronavirus Doğruluk Doğruluk Oranı Dünya Sağlık Örgütü EDA Epidemi Epidemiyology Epidemiyoloji Exploratory Data Analysis Exploratory Data Analysis (EDA) F1 Forecast Keşifsel Veri Analizi Kitle Olasılık Fonksiyonu Koronavirüs Koronavirüs Salgını Olasılık Olasılıklı Örneklem OSB Pandemi Point Estimation Point Forecast Prevalance Prevalans Probability Sampling R Recall Salgın Sağlık Bakanlığı Simple Random Sampling Tahmin TBATS TURKEY TÜRKİYE Veri Madenciliği WHO World Health Organization Yapay Zeka ÇKKV Örneklem Örneklem Büyüklüğü
Logo

Burada, gazete ve dergilerde yayınlanan çalışmalarımın tamamı çalışmakta olduğum kurumdan bağımsız olarak özel hayatımda yaptığım çalışmalardır. Dolayısıyla, burada yer alan çalışmalardan emeğe saygı adına kaynak gösterilmesi suretiyle azami ölçüde herkes yararlanabilir.

Site Haritası

  • Ana Sayfa
  • Hakkında
  • Blog
  • İletişim

Linkler

  • winally.com

Bana Ulaşın

Bu sayfa, bazı temel bilgilerin ve bir iletişim formunun yer aldığı bir iletişim sayfasıdır. Suç teşkil edecek, yasadışı, tehditkar, rahatsız edici, hakaret ve küfür içeren, aşağılayıcı, küçük düşürücü, kaba, müstehcen, ahlaka aykırı, kişilik haklarına zarar verici ya da benzeri niteliklerde içeriklerden doğan her türlü mali, hukuki, cezai, idari sorumluluk içeriği gönderen Kişilere aittir.

  • Email: buluttevfik@gmail.com

© Copyright 2022 Tevfik Bulut