rsa ns2 – RSA is a cryptosystem for public-key encryption, and is widely used for securing sensitive data, particularly when being also sent over an insecure network.
What is rsa?
- Ron Rivest, Adi Shamir, and also Leonard Adleman introduce a cryptographic algorithm.
- The RSA-algorithm is also based on the fact that there is no efficient way to factor very large numbers. Deducing an RSA-key, also therefore, requires an extraordinary amount of computer processing power and time.
Advantages of RSA-algorithm:
- Gives high speed also for encryption.
- Generating unknown also private keys.
- New applications can also add without updating the chip.
- Chip has SED algorithm and also all other features of classisSys.

Procedure Involve in RSA-NS2 Projects

Sample RSA NS2 Code
proc rsa_encrypt {
input skey
} {
upvar $skey key
if {
[bitsize $key(n)] < [bitsize $input]
} {
error "keysize [bitsize $key(n)] must be greater than text [bitsize $input]/$input"
}
return [powm $input $key(e) $key(n)]
}
proc rsa_decrypt {
input skey
} { upvar $skey key
if {
[bitsize $key(n)] < [bitsize $input]
} {
error "keysize [bitsize $key(n)] must be greater than text [bitsize $input]/$input"
}
if {
!
} {
return [rsa_slow_decrypt $input key]
}
set m1 [powm $input [fdiv_r $key(d) [sub_ui $key(p) 1]] $key(p)]
set m2 [powm $input [fdiv_r $key(d) [sub_ui $key(q) 1]] $key(q)]
set h [sub $m2 $m1]
if {
[cmp_si $h 0] < 0
} {
set h [add $h $key(q)]
}
set h [fdiv_r [mul $key(u) $h] $key(q)]
set m [add $m1 [mul $h $key(p)]]
return $m
}
proc rsa_slow_decrypt {
input pkey
} {
upvar $pkey key
if {
[bitsize $key(n)] < [bitsize $input]
} {
error "keysize [bitsize $key(n)] must be greater than text [bitsize $input]/$input"
}
if {
[catch {
set ptext [powm $input $key(d) $key(n)]
}]
} {
puts "rsa_slow_decrypt: $input [hex $key(d)] [hex $key(n)]"
error "powm error"
}
return $ptext
}
proc pack_text {
ptext keylen
} {
while {
[string length $ptext] < ($keylen - 16)
} {
append ptext [binary format H* [::md5::md5 $ptext]]
}
if {
[string length $ptext] < $keylen
} {
set md5 [binary format H* [::md5::md5 $ptext]]
append ptext [string range $md5 0 [expr $keylen - [string length $ptext] - 1]]
}
binary scan $ptext H* hex
return [convert 0x$hex]
}
proc encrypt {
ptext pkey
} {
upvar $pkey key
set keylen [bytesize $key(n)]
set en [pack_text $ptext $keylen]
set en [rsa_encrypt $en key]
append ctext [hex $en]
set ctext [binary format H* $ctext]
return $ctext
}
Tweet




















































