Php ile Rsa Şifreleme Uygulaması
[ Başlıklar(Programlama Dilleri) ] > [ Php ] > [ Php ile Rsa Şifreleme Uygulaması ]
Oluşturma Tarihi: 11.06.2013 04.54

RSA bir tür Açık anahtarlı şifreleme yöntemidir. Güvenliği, tam sayıları çarpanlarına ayrımanın algoritmik zorluğuna dayanır. Hem mesaj şifreleme hem de elektronik imza amacıyla kullanılır.

Rsa hakkında bilgiler her yerde bulunabileceği için burada ayrıntıya girmeye gerek duymuyorum. Yaptığım uygulamada girilen karakterlerin her birini ascii koda çevirip şireleme ve çözme mantığı yer almaktadır. Girilen p ve q değerlerine uygun e değeri girilip girilmediği kontrolü yoktur. 

Uygulamayı benzer uygulamalar yapmayı düşünenler yada rsa algoritma uygulamasının daha iyi anlaşılabilirliği için paylaşıyorum. Aşağıda kaynak kodu bulunan uygulamanın çalışır hali: TIKLAYINIZ

KOD BLOĞU

<?php
if(empty($_GET["coz"])){
?>
<form method="post">
Sifrelenecek Metin: <input type="text" name="a" id="a"><br>
P Degeri: <select name="p" id="p">
<option>79</option>
<option>587</option>
<option>4561</option>
<option>11981</option>
<option>827417</option>
</select><br>
Q Degeri: <select name="q" id="q">
<option>83</option>
<option>593</option>
<option>4567</option>
<option>11987</option>
<option>827423</option>
</select><br>
E Degeri: <select name="e" id="e">
<option>5</option>
<option>7</option>
</select>
<input type="submit" value="SIFRELE">
</form>
<a href="rsa.php?coz=1">Sifre Coz</a>
<?php
}else{
?>
<form method="post">
Cozulecek Metin<input type="text" name="a" id="a"><br>
D Degeri: <input type="text" name="d" id="d"><br>
N Degeri: <input type="text" name="n" id="n"><br>
<input type="submit" value="COZ">
</form>
<a href="rsa.php">Sifrele</a>
<?php
}
if(!empty($_POST["p"]) and !empty($_POST["q"]) and !empty($_POST["e"]) and !empty($_POST["a"])){
function extend ($Ee,$Em) 
{
$u1 = '1';
$u2 = '0';
$u3 = $Em;
$v1 = '0';
$v2 = '1';
$v3 = $Ee;
while (bccomp($v3, 0) != 0) {
$qq = bcdiv($u3, $v3, 0);
$t1 = bcsub($u1, bcmul($qq, $v1));
$t2 = bcsub($u2, bcmul($qq, $v2));
$t3 = bcsub($u3, bcmul($qq, $v3));
$u1 = $v1;
$u2 = $v2;
$u3 = $v3;
$v1 = $t1;
$v2 = $t2;
$v3 = $t3;
$z = '1';
}
$uu = $u1;
$vv = $u2;
if (bccomp($vv, 0) == -1) {
$inverse = bcadd($vv, $Em);
} else {
$inverse = $vv;
}
return $inverse;
}
$p=$_POST["p"];
$q=$_POST["q"];
$n=$p*$q;
$teta=($p-1)*($q-1);
$e=$_POST["e"];
$durum=0;
$d=1;
$d = extend($e,$teta);
$metin=$_POST["a"];
$sifreli="";
for($i=0;$i<strlen($metin);$i++){
$harf=ord($metin[$i]);
if($i>=1){$sifreli.=" ";}
$sifreli.= bcpowmod($harf, $e, $n);
}
echo "<br>P: ".$p."<br>Q: ".$q."<br>E: ".$e."<br>N: ".$n."<br>D: ".$d."<br><br>Metin: ".$metin."<br>Sifreli Hali: ".$sifreli;
}else{
if(!empty($_POST["d"]) and !empty($_POST["n"]) and !empty($_POST["a"])){
$sifreli=$_POST["a"];
$d=$_POST["d"];
$n=$_POST["n"];
$cozulmus="";
$veridizisi=explode(" ",$sifreli);
for($j=0;$j<count($veridizisi);$j++)
{
$cozulmus.= chr(bcpowmod($veridizisi[$j], $d, $n));
}
echo "<br>D: ".$d."<br>N: ".$n."<br><br>Sifreli Hali: ".$sifreli."<br>Cozulmus Hali: ".$cozulmus;
}else{echo "";}}
?>
<br><br><br><br><br><br><br><center>Is bu calisma 2012-2013 egitim ogretim yili Bilgi Guvenligi dersi odevi icin yapilmistir.</center>



Ad Soyad
E-Posta
Kod

Henüz bu bloğa yorum yapılmadı. İlk yorum yapan sen ol...

Etiketler: php , rsa , sifre , sifreleme , uygulama , kriptoloji , bilgi , guvenligi , cozumleme , sifre , cozme , p , q , e , n , d
Sitede su anda 2 kişi bulunmaktadir. Bugune dek 446074 kisi tarafından, 733392 adet tiklama yapilmistir.
© Susbi.com
Version 1.1
Site_Map