All pastes #824288 Raw Edit

Mine

public text v1 · immutable
·published 2007-12-19 21:51 UTC
rendered paste body
#!/usr/bin/perl -s
                                                      sub R{int$_[0]||
                              return vec$_[1],$_[2]/4,32;int$_[0]*rand}($R)
                           =$^=~'([\]-\`])';sub F{$u=0;grep$u|=$S->[$_][$_[0]>>
                              $_*4&15]<<$_*4,reverse 0..7;$u<<11|$u>>21}$t=$e
                               ||$d?join'',<>:(($p,$d)=($R,1),unpack u
                               ,"(3=MCV7%2W'<`");@b=@t=0..15;for(
                           ;$i<length$p;$i+=4){srand($s^=R$R,$p
                        ,$i)}while($ci<8){grep{push@b  ,splice
                     @b,R(9),5}@t;$R[$c]=R(2       **32);@{
                $S-&gt;[$c++]}=@b}@h=0..7;@o       =reverse
              @h;while($a<length
            $t){$v=R$R,$t,$a;
 $w=R$R,$t,($a+=8)-4;
   grep$q++%2?$v
    ^=F$w+$R
     [$$R]:(                                       $w^=F$v+$R[$$R]),$d?(@h,(@o)
     x3):((                                        @h)x3,@o);$_.=pack N2,$w,$v}
     print



#What It Does

#The code is a diminutive implementation of the  KGB  block  cipher,  GOST,  in
#Simple Substitution Mode as described in the Soviet Standard (GOST  28147-89).
#An English translation by Josef Pieprzyk and Leonid Tombak is  available  from
#ftp://vipul.net/pub/gost/specs.ps.gz. (You don't really want to read  this,  a
#functional description of the algorithm is included in this file.)

#Besides implementing the encryption algorithm, the  code  also  also  computes
#the key-store-unit and s-box permutations as a function of the pass-phrase.