------------www.mrklingon.org-----------
...You are foreigners and aliens here... 1 Peter 2:11  

The Klingon in the Basement


Home Archives Contact

Friday, May 09, 2003 :::
 



Diving In!




::: posted by Joel at 8:10 AM


Thursday, May 08, 2003 :::
 

Holmey

The latest HolQeD came yesterday (Klingon Language Institute Journal).
In an editorial, the head of the KLI remarked how he was interviewed
recently and got the usual "why study Klingon" (i.e. why waste time on an
imaginary language). He got ready to launch into his regular spiel about
the values of studying an artifical language, then just said: "do you
speak any other languages?" No.

He goes on to say:

"I haven't revealed a great truth here; this is all pretty basic and
obvious stuff. And that's the problem. It's so basic, so fundamental, we
overlook it. I can't help but wonder how different the political scene
might be if our prevailing cultural zeitqeist didn't include this massive
monolingual handicap, and if we daily confronted linguistic concepts and
forms that were alien to us, so that in the process of comprehending them
we gained insight into our own structures, and pehaps into the way others
grappling with them - and us - perceived as well."


::: posted by Joel at 11:23 AM




Powered by Blogger

/* Cryptography Javascript code written by John Walker (http://www.fourmilab.ch/javascrypt/). Modified by Vincent Cheung (http://veenix.blogspot.com/) July 17, 2006 */ /* >8)&0xFF); state[2][j]^=((roundKey[j]>>16)&0xFF);state[3][j]^=((roundKey[j]>>24)&0xFF);}} function keyExpansion(key){var expandedKey=new Array();var temp; Nk=keySizeInBits/32;Nb=blockSizeInBits/32;Nr=roundsArray[Nk][Nb];for(var j=0; j>8)&0xFF])|(SBox[(temp>>16)&0xFF]<<8)|(SBox[(temp>>24) &0xFF]<<16)|(SBox[temp&0xFF]<<24))^ Rcon[Math.floor(j/Nk)-1]; else if(Nk>6&&j%Nk==4)temp=(SBox[(temp>>24)&0xFF]<<24)|(SBox[(temp>>16) &0xFF]<<16)|(SBox[(temp>>8)&0xFF]<<8)|(SBox[temp&0xFF]); expandedKey[j]=expandedKey[j-Nk]^ temp;}return expandedKey;}function Round(state, roundKey){byteSub(state,"encrypt");shiftRow(state,"encrypt");mixColumn(state,"encrypt"); addRoundKey(state,roundKey);}function InverseRound(state,roundKey) {addRoundKey(state,roundKey);mixColumn(state,"decrypt");shiftRow(state,"decrypt"); byteSub(state,"decrypt");}function FinalRound(state,roundKey){byteSub(state,"encrypt"); shiftRow(state,"encrypt");addRoundKey(state,roundKey);} function InverseFinalRound(state,roundKey){addRoundKey(state,roundKey); shiftRow(state,"decrypt");byteSub(state,"decrypt");}function encrypt(block,expandedKey) {var i;if(!block||block.length*8!=blockSizeInBits)return;if(!expandedKey)return; block=packBytes(block);addRoundKey(block,expandedKey);for(i=1;i0;i--)InverseRound(block, expandedKey.slice(Nb*i,Nb*(i+1)));addRoundKey(block,expandedKey); return unpackBytes(block);}function byteArrayToHex(byteArray){var result=""; if(!byteArray)return;for(var i=0;i0) {plaintext=plaintext.concat(getRandomBytes(bpb-i));}return plaintext;} function getRandomBytes(howMany){var i,bytes=new Array();for(i=0;i0; block--){aBlock=decrypt(ciphertext.slice(block*bpb,(block+1)*bpb),expandedKey); if(mode=="CBC")for(var i=0;i */ /* =0){a=a%0x80000000;a>>=b;a+=0x40000000>>(b-1);}else{a>>=b;} return a;}function shl1(a){a=a%0x80000000;if(a&0x40000000==0x40000000) {a-=0x40000000;a*=2;a+=0x80000000;}else{a*=2;}return a;}function shl(a,b) {a=integer(a);b=integer(b);for(var i=0;i=0){if(t2>=0){return((t1&t2)+0x80000000);} else{return(t1&b);}}else{if(t2>=0){return(a&t2);}else{return(a&b);}}} function or(a,b){a=integer(a);b=integer(b);var t1=a-0x80000000; var t2=b-0x80000000;if(t1>=0){if(t2>=0){return((t1|t2)+0x80000000);} else{return((t1|b)+0x80000000);}}else{if(t2>=0){return((a|t2)+0x80000000);} else{return(a|b);}}}function xor(a,b){a=integer(a);b=integer(b); var t1=a-0x80000000;var t2=b-0x80000000;if(t1>=0){if(t2>=0){return(t1 ^ t2);} else{return((t1 ^ b)+0x80000000);}}else{if(t2>=0){return((a ^ t2)+0x80000000);} else{return(a ^ b);}}}function not(a){a=integer(a);return 0xffffffff-a;} var state=new array(4);var count=new array(2);count[0]=0;count[1]=0; var buffer=new array(64);var transformBuffer=new array(16); var digestBits=new array(16);var S11=7;var S12=12;var S13=17;var S14=22; var S21=5;var S22=9;var S23=14;var S24=20;var S31=4;var S32=11;var S33=16; var S34=23;var S41=6;var S42=10;var S43=15;var S44=21;function F(x,y,z) {return or(and(x,y),and(not(x),z));}function G(x,y,z){return or(and(x,z),and(y, not(z)));}function H(x,y,z){return xor(xor(x,y),z);}function I(x,y,z) {return xor(y,or(x,not(z)));}function rotateLeft(a,n){return or(shl(a,n),(shr(a, (32-n))));}function FF(a,b,c,d,x,s,ac){a=a+F(b,c,d)+x+ac;a=rotateLeft(a,s);a=a+b; return a;}function GG(a,b,c,d,x,s,ac){a=a+G(b,c,d)+x+ac;a=rotateLeft(a,s);a=a+b; return a;}function HH(a,b,c,d,x,s,ac){a=a+H(b,c,d)+x+ac;a=rotateLeft(a,s);a=a+b; return a;}function II(a,b,c,d,x,s,ac){a=a+I(b,c,d)+x+ac;a=rotateLeft(a,s);a=a+b; return a;}function transform(buf,offset){var a=0,b=0,c=0,d=0; var x=transformBuffer;a=state[0];b=state[1];c=state[2];d=state[3];for(i=0;i<16; i++){x[i]=and(buf[i*4+offset],0xFF);for(j=1;j<4;j++) {x[i]+=shl(and(buf[i*4+j+offset],0xFF),j*8);}}a=FF(a,b,c,d,x[0],S11,0xd76aa478); d=FF(d,a,b,c,x[1],S12,0xe8c7b756);c=FF(c,d,a,b,x[2],S13,0x242070db);b=FF(b,c,d,a, x[3],S14,0xc1bdceee);a=FF(a,b,c,d,x[4],S11,0xf57c0faf);d=FF(d,a,b,c,x[5],S12, 0x4787c62a);c=FF(c,d,a,b,x[6],S13,0xa8304613);b=FF(b,c,d,a,x[7],S14,0xfd469501); a=FF(a,b,c,d,x[8],S11,0x698098d8);d=FF(d,a,b,c,x[9],S12,0x8b44f7af);c=FF(c,d,a,b, x[10],S13,0xffff5bb1);b=FF(b,c,d,a,x[11],S14,0x895cd7be);a=FF(a,b,c,d,x[12],S11, 0x6b901122);d=FF(d,a,b,c,x[13],S12,0xfd987193);c=FF(c,d,a,b,x[14],S13,0xa679438e) ;b=FF(b,c,d,a,x[15],S14,0x49b40821);a=GG(a,b,c,d,x[1],S21,0xf61e2562);d=GG(d,a,b, c,x[6],S22,0xc040b340);c=GG(c,d,a,b,x[11],S23,0x265e5a51);b=GG(b,c,d,a,x[0],S24, 0xe9b6c7aa);a=GG(a,b,c,d,x[5],S21,0xd62f105d);d=GG(d,a,b,c,x[10],S22,0x2441453); c=GG(c,d,a,b,x[15],S23,0xd8a1e681);b=GG(b,c,d,a,x[4],S24,0xe7d3fbc8);a=GG(a,b,c, d,x[9],S21,0x21e1cde6);d=GG(d,a,b,c,x[14],S22,0xc33707d6);c=GG(c,d,a,b,x[3],S23, 0xf4d50d87);b=GG(b,c,d,a,x[8],S24,0x455a14ed);a=GG(a,b,c,d,x[13],S21,0xa9e3e905); d=GG(d,a,b,c,x[2],S22,0xfcefa3f8);c=GG(c,d,a,b,x[7],S23,0x676f02d9);b=GG(b,c,d,a, x[12],S24,0x8d2a4c8a);a=HH(a,b,c,d,x[5],S31,0xfffa3942);d=HH(d,a,b,c,x[8],S32, 0x8771f681);c=HH(c,d,a,b,x[11],S33,0x6d9d6122);b=HH(b,c,d,a,x[14],S34,0xfde5380c) ;a=HH(a,b,c,d,x[1],S31,0xa4beea44);d=HH(d,a,b,c,x[4],S32,0x4bdecfa9);c=HH(c,d,a, b,x[7],S33,0xf6bb4b60);b=HH(b,c,d,a,x[10],S34,0xbebfbc70);a=HH(a,b,c,d,x[13],S31, 0x289b7ec6);d=HH(d,a,b,c,x[0],S32,0xeaa127fa);c=HH(c,d,a,b,x[3],S33,0xd4ef3085); b=HH(b,c,d,a,x[6],S34,0x4881d05);a=HH(a,b,c,d,x[9],S31,0xd9d4d039);d=HH(d,a,b,c, x[12],S32,0xe6db99e5);c=HH(c,d,a,b,x[15],S33,0x1fa27cf8);b=HH(b,c,d,a,x[2],S34, 0xc4ac5665);a=II(a,b,c,d,x[0],S41,0xf4292244);d=II(d,a,b,c,x[7],S42,0x432aff97); c=II(c,d,a,b,x[14],S43,0xab9423a7);b=II(b,c,d,a,x[5],S44,0xfc93a039);a=II(a,b,c, d,x[12],S41,0x655b59c3);d=II(d,a,b,c,x[3],S42,0x8f0ccc92);c=II(c,d,a,b,x[10],S43, 0xffeff47d);b=II(b,c,d,a,x[1],S44,0x85845dd1);a=II(a,b,c,d,x[8],S41,0x6fa87e4f); d=II(d,a,b,c,x[15],S42,0xfe2ce6e0);c=II(c,d,a,b,x[6],S43,0xa3014314);b=II(b,c,d, a,x[13],S44,0x4e0811a1);a=II(a,b,c,d,x[4],S41,0xf7537e82);d=II(d,a,b,c,x[11],S42, 0xbd3af235);c=II(c,d,a,b,x[2],S43,0x2ad7d2bb);b=II(b,c,d,a,x[9],S44,0xeb86d391); state[0]+=a;state[1]+=b;state[2]+=c;state[3]+=d;}function md5_init() {count[0]=count[1]=0;state[0]=0x67452301;state[1]=0xefcdab89;state[2]=0x98badcfe; state[3]=0x10325476;for(i=0;i=63){transform(buffer,0);}} function md5_finish(){var bits=new array(8);var padding;var i=0,index=0,padLen=0; for(i=0;i<4;i++){bits[i]=and(shr(count[0],(i*8)),0xFF);}for(i=0;i<4;i++) {bits[i+4]=and(shr(count[1],(i*8)),0xFF);}index=and(shr(count[0],3),0x3F); padLen=(index<56)?(56-index):(120-index);padding=new array(64);padding[0]=0x80; for(i=0;i */ /* maxLineLength){b64t+=b64l+"\n";b64l="";} b64l+=base64code.charAt(b[i]>>2);b64l+=base64code.charAt(((b[i]&3)<<4) |(b[i+1]>>4));b64l+=base64code.charAt(((b[i+1]&0xF)<<2)|(b[i+2]>>6)); b64l+=base64code.charAt(b[i+2]&0x3F);}if((b.length-i)==1) {b64l+=base64code.charAt(b[i]>>2);b64l+=base64code.charAt(((b[i]&3)<<4)); b64l+="==";}else if((b.length-i)==2){b64l+=base64code.charAt(b[i]>>2); b64l+=base64code.charAt(((b[i]&3)<<4)|(b[i+1]>>4)); b64l+=base64code.charAt(((b[i+1]&0xF)<<2));b64l+="=";}if((b64l.length+4) >maxLineLength){b64t+=b64l+"\n";b64l="";}if(base64addsent) {b64l+=base64esent;}b64t+=b64l+"\n";return b64t;}function disarm_base64(s) {var b=new Array();var i=0,j,c,shortgroup=0,n=0;var d=new Array(); if((j=s.indexOf(base64sent))>=0){s=s.substring(j+base64sent.length,s.length);} if((j=s.indexOf(base64esent))>=0){s=s.substring(0,j);}while(i=s.length){if(j>0){ //alert("Base64 cipher text truncated."); return b;}break;} c=base64code.indexOf(s.charAt(i));if(c>=0){d[j++]=c;}else if(s.charAt(i)=="=") {d[j++]=0;shortgroup++;}else if(s.substring(i,i+base64esent.length)==base64esent) {i=s.length;continue;}else{}i++;}if(j==4){b[n++]=((d[0]<<2)|(d[1]>>4))&0xFF; if(shortgroup<2){b[n++]=((d[1]<<4)|(d[2]>>2))&0xFF;if(shortgroup<1) {b[n++]=((d[2]<<6)|d[3])&0xFF;}}}}return b;} /* ]]> */ /* =0x80)&&(c<=0x7FF)){utf8+=String.fromCharCode((c>>6)|0xC0); utf8+=String.fromCharCode((c&0x3F)|0x80);}else{utf8+=String.fromCharCode((c>>12) |0xE0);utf8+=String.fromCharCode(((c>>6)&0x3F)|0x80); utf8+=String.fromCharCode((c&0x3F)|0x80);}}return utf8;} function utf8_to_unicode(utf8){var s="",i=0,b1,b2,b2;while(i=0xC0)&&(b1<0xE0)){b2=utf8.charCodeAt(i+1); s+=String.fromCharCode(((b1&0x1F)<<6)|(b2&0x3F));i+=2;} else{b2=utf8.charCodeAt(i+1);b3=utf8.charCodeAt(i+2); s+=String.fromCharCode(((b1&0xF)<<12)|((b2&0x3F)<<6)|(b3&0x3F));i+=3;}}return s;} function encode_utf8(s){var i,necessary=false;for(i=0;i0xFF)){necessary=true;break;}} if(!necessary){return s;}return String.fromCharCode(0x9D)+unicode_to_utf8(s);} function decode_utf8(s){if((s.length>0)&&(s.charCodeAt(0)==0x9D)) {return utf8_to_unicode(s.substring(1));}return s;} /* ]]> */ /* ').replace(/\\n/g,'
'); keyText = prompt("Please enter the decryption key", ""); setKey(keyText); var ct=new Array(); // remove line breaks ct=disarm_base64(encryptedText.replace(/
/gi, "").replace(/
/gi, "").replace(/\\n/gi, "")); var result=rijndaelDecrypt(ct,key,"CBC"); var header=result.slice(0,20); result=result.slice(20); var dl=(header[16]<<24)|(header[17]<<16)|(header[18]<<8)|header[19]; if((dl<0)||(dl>result.length)) { // alert("Message (length "+result.length+") truncated. "+dl+" characters expected."); dl=result.length; } var i,plaintext=""; md5_init(); for(i=0;i')); } /* ]]> */