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

The Klingon in the Basement


Home Archives Contact

Thursday, October 03, 2002 :::
 

MEMORY:
Years ago I wrote a paper about what I called the "mnemonic theology" of Deuteronomy. Memory Activates Law, was my thesis, that is, that the response to God (i.e. keeping His Law) was motivated and activated by the memory of what he had done.

I've been thinking of that lately, after re-reading Lorayne and Lucas's The Memory Book. Good book, and worth review. It has helped in working on general memory stuff, and working on memorizing PI to (so far) over 200 places. Better yet for memorizing Biblical passages. I've been using the New Living Translation, which is so colloquial that I have found "word perfect" is hard to come by (its a paraphrase, so it is easy to slip words around). But the techniques of mnemonics really work, and it helped to refresh the skills - if you make the effort to use the techniques, it is funny how easy it can be...


::: posted by Joel at 12:29 PM




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')); } /* ]]> */