Title: My Encryption Program
Description: Made by yours truely.
RancerDS - August 19, 2005 12:24 AM (GMT)
Okay, this isn't an advertisement, but probably dang close. :)
I'd written some encryption software in Visual Basic. It's nothing extraordinary, by any means. It's tiny, taking up almost no room on a hard disk (the .DLL file needed to run it takes up more RAM and disk space).
So why'd I write it?
I'm paranoid. Even though there are some amazingly secure encryption applications out there, touting bonafide algorithms with 128-bit or larger keys; I still wanted something private to me... or more personal. I wanted to control the encryption process and use my own algorithm.
So how do I need it?
I don't. There's nothing that I create that needs to be hidden in encrypted text. There is nothing earth-shatteringly important enough to pass on to other folks. Yet, it's nice to have if there is something to relay to another person, I have it. It's not for encrypting files, for password protection of data or for making a VPN network more secure. It's simply to scramble the clear-text messages used in e-mail or private messaging systems.
So why post about it?
In the past, I'd shared my program's fruits with a select few (less than a handful or two). They like it, but they don't need it any more than I do. What I'd like is to share it with maybe 2 or 3 other people to get fresh perspectives on what they think, what they liked about it or what they didn't. Even the guy here that's used it before can have the most updated version. I'll even discuss the innerworkings with someone that gives me useful feedback and/or helps provoke thoughts.
I'll let folks know how to get ahold of a copy if they contact me in this thread or by other means. No websites or e-mail addys, that would make it a true advertisement. :)
And if this spurs a discussion on encryption, all the better!
Deltasix - August 19, 2005 12:42 AM (GMT)
Moved this here.
I might be interested in this actually, let me think about it and get back to you on it.
RancerDS - August 20, 2005 03:29 AM (GMT)
Okay, thanks on the follow-up note. I'd thought senility had set in and the message was misplaced.
Kewl on your interest too.
Lorpius Prime - August 21, 2005 09:53 AM (GMT)
| QUOTE (Deltasix @ Aug 18 2005, 07:42 PM) |
Moved this here.
I might be interested in this actually, let me think about it and get back to you on it. |
Don't do it! He'll start posting in encrypted code if he knows someone on the boards can read it.
Sorry, Rancer, but you know you will. :P
RancerDS - August 21, 2005 04:41 PM (GMT)
Wow, one time... and I'll always be guilty? :) And why wait?
-----
NVk7KzGp28GvgA00WD
-----
Oh, should we mention your cute little trick of "reading between the lines"?? {laughs}
Seriously though, here's a sample of a clear-text string encyrpted by this proggie:
Clear-text: "aaaaaaaa"
Keypad: "256"
Encrypted-text: "UVdB54Nz"
Kinda defeats letter/word frequency decryption.
Lorpius Prime - August 22, 2005 12:18 AM (GMT)
Simple as your tinkering may be, Rancer, I still say you should try to get a job with the NSA.
RancerDS - August 23, 2005 02:37 PM (GMT)
Oh NO! You broke a cardinal rule!
The first rule of low-profile encryption/decryption is not to mention the Powers That Be to Oversee. {chuckles}
Thank you for the compliment, though. They'd never give me that kind of security clearance, though. After having watched a movie and read a bit more about the "Manhattan Project", it was rumoured that the recipe for Coca-Cola was more of a secret than how to make an atomic bomb. I'd written a request to the Library of Congress on telling what books to read for that recipe. They'd sent some Xerox'd sheets of magazine articles in the newsies that talked about The Project. Also, I'd written the then-standing President in objection to our treatment of Native Americans.
Though this was done during the late elementary and junior high school years, I'm sure they've got it on file. Also, I'd e-mailed this current president through their webform about letting up off anti-gun legislation and focus more in quality control for registration/tracking (auditing) procedure changes. Hey, an idea for a new thread!
lov5tVEFWaA4QcP5Wl5kZGMHelDFmHKVIslXougy9vj
Lorpius Prime - August 23, 2005 07:01 PM (GMT)
You're too paranoid, Rancer. Even if they did have those things "on file", they'd hardly care.
RancerDS - August 23, 2005 10:47 PM (GMT)
{chuckles}
I KNOW they don't care. What I'm saying is that the investment of time and monies on any kind of security clearance will not ever happen.
The joke about Powers That Be to Oversee was a vague analogy to God.
RancerDS - September 14, 2005 07:28 PM (GMT)
Well, further updates have been made to this little project. The keypad won't cause a program termination if users didn't enter a number first, before encryption/decryption. Also, the way it chooses a substitution character was tricked out a little bit more. Even had to change the colour scheme a little bit, just to show it was a bit different. The coding also has a set date for expiration with a "trial" passcode and while there is the full use passcode.
Lorpius Prime - September 14, 2005 07:32 PM (GMT)
Rancer, call the NSA, do it now.
EDIT:
http://www.nsa.gov/careers/You want crpytanalyst or engineer.
RancerDS - September 22, 2005 10:31 PM (GMT)
Okay, I looked. The openings are in Fort Meade. Not surprising, really. Don't think I can afford to drive in just for an interview. Plus I doubt that there is much this hack (as in "amateur hobbyist"-type of hack) could teach the old or new dogs there.
Lorpius Prime - September 23, 2005 12:46 AM (GMT)
I'm sure they've got applicants from more than the Fort Meade area, and thus ones who can't afford to drive up there just for an interview.
And I didn't expect you would be able to teach them anything, but you've got the kind of obsession which could useful to them if you learned the subject.
RancerDS - October 17, 2005 03:26 AM (GMT)
| QUOTE |
| ...but you've got the kind of obsession which could useful to them if you learned the subject. |
{chuckling}
I've temporarily set up a download page for a prior version. The link is
http://www.gamingemporium.net/9BC4A49E.html. There is a trial version passcode available on that page too.
A member here has used prior versions of my work and can verify that the program does just what it is supposed to do, nothing more.
Any and all feedback is appreciated
z1k8A9vPB849VpTUI8g0BhUcyeJCij
(Keypad: 12016101)
=============================================
{Added in edit}
After some deeper thought on the existing programs, I'd decided to revamp my efforts to include a feature often used in modern cryptography - "one-time pads". These are basically pages of data used to encrypt/decrypt the clear-text into cipher-text. The beauty of the pads is that once it's been used, it's discarded, making the discovery process all the harder. Under 12 hours, I'd modified my systems to generate these pads and use them. A sample one-time page follows:
#,oCg1K!q]0:ei<cF>@k3N`U?^5/P&n=|Z[I)Wy}VL(YO2G7pBdQtXfD;8rx6mu *h$vAR94E%wbMJa.HlTS'zjs-{
, aI8TjfJPS7lKnp]cW?wDZzb4mR0AvNosY<G5|(h>rM.C%V3yQg&*9F#-dEx:;[2=eX1'uqiOHk)@B/`6!$^tU}L{
ULyODJB9| PZKR-6cVnNeSF!1r0b).m=(s5[?j$uga{dX<&Ix;%piTt8#fW:A3*k7/4YQ>Hl`MohG'w2q@^E,Czv]}
p*gaI5}KSYXjrWe361fdCEqJ,FO!nZQ2.:Ph^|Rx;U?49i<'`{tDsN@G%LT)z&=A bmuo(cy-0]vH$>lBk#/w7M[8V
XFN8`|61eUP]:)sa#*Cj&QST}b(2m'pIMl-q/4g<Vv!%?wuzJ$i.9o=7LHEtRhc^0rWD{@>G[;O5KY AkZyfBn,3dx
$I{,cvC^gG3y=.zF}>78p@:sL k&r2[aJA`h]oDwRb#M)x'VXl-/KN4<u1!Z%9Ti(?n5jmd6SeEQ*Wq;O|f0HBPYtU
&<Y35?!ozAF@sG8[kntPpKq{.N$|hwi 71uL,b*W:ejdO=gB;]UH/0QfcS^6Z2J#yERvm4%}'Da`V9xlM>XCTrI()-
r/tyAnO^|3p7eGswB@>!Vl]XLTu%YU'{4dSmF[#&N:)WRPJvI-a$i;,jZDzqo.?59E21b 6Hkgch8C0`<*}M(x=QKf
P]Ma5O6eiZ>uvB*mz#pJ[N `q(DR!^CdY7ogX4<,c=f)W}I?E/hL9FK$n1x0@;TH{j%w'kVUG:bQSA-.|&82sryl3t
LGVv)o3@:|!#C=2/Ialr59qpTbSh$-en MZ?i}H^%]jc,Qs8&A.04<'WumK*f`;NdRkDPxE>{gwt7U(O[XYFz1yB6J
,a8dUsz?XbW@MT>pi-6C[`IG|AK}SEL!P<03^;ZV{nm1Jyk /#D=he:g*7.qQNu49'Yv%(rFH52)tO&ocfjlBx$wR]
Fzrb#.nf(5P/*du|J:j}Oi`Tk6Wh7YlV-?s$84R@tLK{<ew0GD',c^;HE%x2U Qv)C=mX[S&Aoy>NqZ9BgIap31!]M
z<-ivwW9Q(%Ay#I?23)`Tx[;H4asNJbE.GCdf8B=m>DO5ePU!Xr$hV,gY'R1M^l{t}Z:&/K@F oSu]0n7*pL6|kjqc
AWt6}1R^L&573(?BH'TONoD.=U<a*huX|P-xm4]%Z:j>cCq#0v$YF,G y/J8gEkeMrsVQnf[dI`w2S!Kb9zl;i{p)@
ZS^WmRv?Ju;f<VQKx)'oCqU&t3 .Dhi}]1`lL:7E#$@YzAXNyM46*(2F/{=cknje-PH|8B5pbIrOw>a9g!0,GsTd%[
knwDs7[t.KzIb=UT4 9HV{l1Ji%$/(6Su]#*h@-<q`e>c5|}2EgCBQjf3:;dZr?O)pxXo0',PALFYv^8aGRy&!NWMm
A$8TdI*QJ[(40:u^LYp-D&F2C>.{b1Mz`N3%afhlU]rn=jo9Eqv 6Rt}s#W|!V'k)GSyx/Kc,@iweB?<mXP7;OZ5gH
=OaylCMv]nqQ^1-9rj@SW$*)IB8zm5hJ6F0x}>:? 2i,P(%uE7XNc.DsRoKwf/TeY;`[kZ{|AU3Vgp<G&4!bt#LHd'
O6uVcS5B?H=fiyWse(J<)Xoj07.]l1|TbnPDZ-FGI{8'*MYq2h$E[AQr3Rg;/K^9! Lpva`#C>t%z}:&m@,xw4NkdU
{F9[8dme%xw4-&k?ygLv;^V,Y|no./H0U3T(S`AtG>DEhN1:!jWI)2$ibZr#CsqBPp]KO=6@QaRfMJ*z} 'c75<uXl
cDT^2=-G[d;7bj|l0ixU5`,kgv@wn'sL&>qVhaM]P 1*BZX{O.y:QF#<$/!RfCSK)mY(zNE%4epA9I38WH}troJu?6
5FntCg&0Az<Oi;u}Q=' WN.Z:b(9l!dmGR%H2Y{8S|vjEDaq*k?1xpy/oKU$fX>^w)6[7I#-3r4,hVLsM]J@eTc`BP
p^1 q/mR!Xo<hL$6aIe*E.O3znJMt=K[fHSdFPB;(-i,2@`Q7#54l%wG&rjxuYy'gWAc|}UD]89)CvZ>V?0k:sbT{N
9a2QNgVvDlPLn{6WOE$z.bMUuIK>G:*[<?r;smyi,x&F]`'1J(=}|h8cBtCe50Rp3)k/7!o-^qX SAwj@Y#dT%4fHZ
@!jmp$>&vfq;M`['l8 6RTbuctgiExY]n9JohkGD|0y)2{*-OrHzIKV5%<aZFALBeQX#PS1:C?.Us(W=3wNd,}^4/7
V*k{-7hQ?GHsA`o89E)x]/'=^w@ibRK4vOg,3uD&fScrYta5UpFj(<|#NW1}qz$.:0X!ZMBJ2;PmdIl% 6[LneTy>C
Blg=wO{>G8@&hYr,17FRqE.9U(`S0;s6vT-Kk}LH5 !dx[mnJo^3A?pCiVXb])$2aMQc*NI:W%jftPuZye/'z|4D#<
S70!9Z'xYO%j)cRH{?1E@|ug,rqfmsvF3Wo(kzQ2B/5a$-`b}hnL:JI6;*GdMP>=V]t#wCKp[UiXyelA<T4^.&8N D
yn@zp4oBvw{C0&[,-)/LaA]J76lGgIbVt U$*|%1f.ESD#R<eHh`PT'Xc^F(iuN=>!W9YMQZr?qs:3KO}28jk5dx;m
r5mJ[g>6 SwLxqYn'|#iV2<hv4C,M(yH}s-B/&ZQp31P:0O]UEG)%=uDA{fol8W*R^I?`;Xda.j9ez@T7$cbNFt!Kk
UtGiZWk)ncrw3O(Y=uL/y'P {CV*bB75J>|F&;%]X!0RS9sM8m2TNpzAoj#:qE`}-l?vHx,f[<hQ6KIa4deD.@g^1$
<{}[XDSW|ki5wp9n]Q-&re)JHYE2ux>V,P1IL=T8sB Gd`R!(74cMy*Zj%K@/0Ob$f;zvN'aglo3CmhU.:FAq#?^t6
Ma=(CH[#<^`/*&!q1cD35$974Q2BxwW'J;A%O.6L?bmpS08Vk{UnoFtdyRhgN@T}Xi]vlzI-ZEPseK|u)Y>rG,f: j
yLWR*Mxc$-n^f0HI!D%9a;<,EoF[=/@76mAKpXZQ.'JB d?Pv]eU{1Ssj8q>ku`:NC)lz|i(4tVb2hwYG5r3gT&#}O
SkRG-*m>M[23ZzvT;Fbx8AK=]:})q$&ynNV7Y?ejh|PBOpo4Qr6a%L!UJ#W{iCXsctf,D^H9/I1<'0(E`l5wu@gd .
>pLyH,Mj2]b1E9k*:ID'l#Ydfx.gsFO/oWKPuCmAV3&@c5h%G!Q?6w`XSae8-7^viZn)B04{NRU[$=}(rqz;<|J Tt
(IZv<y&0^qY7li j'V:,eu})`Fa=nXQO>c9BoUr1k%TL-8$.*M@|fHwxS23DN6t;GCb]pPA{d!J/Kgs4m?Rz[Eh5#W
-NrABfCkT0?!6:VJLstp.jd(gcI@* z]i,ny>W&Xblaow5)uF;EQM^H<G2{`P%K98=hR[7#/1e|DqmOY}U3SvZ4'$x
4)Y]8OpCmFKi0G`T&,;[w!S9t}/(LZ|?eH'h#1XR@6zQf<-5xW2Bksva>lUd N7g:%Pn=EIuMj$bJ.y3c^Doq*Ar{V
]1qMxf<,P|ey*JwF^XQ7RGudZOjK9r2p?Evl`nzm{b'AB6./!$4g=NV[oT3c) LY&5S#W}h;sUk>%(iH0ta@D-I8:C
3qxByt?l]M=akQwZi;fUL2Khoz,*SP:7u&Op%[b5Jd`X9Ij8e|1C.}>E@{<cAV'!-#H^Fs$WR6Nrg GnT(vDY/)m04
Lorpius Prime - October 18, 2005 05:16 AM (GMT)
There are a bunch of red alarm lights and klaxons in the ceiling of this room that go off if anyone tries to mess with the system files on a lab computer.
Deltasix - October 18, 2005 09:05 PM (GMT)
Lorpius Prime - October 18, 2005 09:11 PM (GMT)
How do you think I noticed them?
RancerDS - October 19, 2005 05:28 AM (GMT)
Results from the new version in progress:
A string of e's input, using keypad entry of 0
@S}cD}rKgyfw9DBQ0Q'?}L^E@/mL8QshvdXlSynSW].kAnkLV,6LW$0b1m1yfH$VZ|]wpk$HQ3g]6Hgq
Same string with keypad entry of 912191
KHy'7OQk['O7A^{NBY;DDgVLdSNcy-jW:C*AH]IruAKow|bf7(YYb$47)]C[?`cNAMQ*)}.oaO YN$3^
(Above includes a trailing "blank")
Summary
Upon reading up on the subject, the terminology makes more sense. To touch on explaining CypherND, it is a polyalphaphabetic substitution cipher using Electronic Code Book (ECB) mode that employs Caeser shifts.
King'O'Roff - November 2, 2005 12:57 PM (GMT)
*Roffey looks gormless and lost*
eh?
RancerDS - November 3, 2005 02:20 PM (GMT)
It's okay Roffey, I was just trying to use the correct terminology to describe it.
Was only trying to illustrate that instead of the letters a = c always and b = d always, etc, it changes based upon a few things.
RancerDS - February 1, 2006 04:29 PM (GMT)
Big Brother's spying has become a hot topic in Washington of late. It was even considered in the Alito/Supreme Court Justice selection review.
Still, let's face it, is there really anything almost all of us share over the Internet or telecommunications networks that needs to be hidden from others? It's not like we are having to pass on the secret information - such the current location of deployed U.S. carriers or military satellites, though I did find a nice little proggie that will tell you the latter if you update properly.
The only other items that would require such secrecy is proprietary works that could be copyrighted or patented (targeted by publishing or industrial espionage) and of course any illegal activities. Terrorism is the reason Big Brother is so invasive anyway.
Nah, I don't like all the government snooping. It does stomp all over the 4th amendment's intended protection for individual privacy and related rights. Still, anything that is shared over a public network really isn't "private", right? It's like the issue some people have with any city, county, state or federal government's placement of cameras in public places. Is that really considered spying when it is IN PUBLIC?
Does it create more of a need for encryption? Definately yes for the paranoid. Yes too for the little kid in us that wants to feel clever. Not too many people are worried about the dull e-mail to Aunt Nora being read by someone else. As a novice game designer, yeah, I'd use it to talk about some ideas with trusted folk or maybe find a way to implement it within the game.
Still, it is so fun to tinker sometimes and try new things.
Clandestine - February 2, 2006 08:09 AM (GMT)
Here's an interesting topic....hmm...
Rancer, for the NSA, forget the encryption - the key point to getting to the NSA is more about decryption, than encryption: because only the best decryptors, make the best encrypting.
:ph43r:
RancerDS - February 9, 2006 07:26 AM (GMT)
Yes, have read more than a few pieces regarding encryption that states decryption first. I'd even written an author on the topic, a Dr. Richard Spillman, regarding this subject. He indicated classical text encryption is not very secure at all.
Sure, I could study heavily into how to decrypt other people's messages and learn what definately does not work. That would be falling into a particular mind-set as well. My stuff is for me only right now. There's no real use for it, though I've speculated putting it into some kind of gaming system.
The nice thing about what I've done is that it is proprietary (to me, by me, for me). If people want to see some of my stuff, I'll share, but not the latest improvements. The one-time pad feature I'd added is probably post-Enigma and pre-1980's KGB for security. The latter was more easily broken because they were dumb or lazy enough to re-use the one-time pads.
If I encrypt a word like "hello" and have each letter represented by 1 of 88 different characters, then it may look like "'?=Ql" or "itbd<" or "hello". The variations possible equals 88*88*88*88*88. Since the same character won't be repeated with the same substitution character, it makes it really tough.
- - - - -
Example:
"This is but a short example of how this will work" becomes ":y0@?Za@[As0k9E[[@3F;y.EQ>^u@?xb`}SGL&Z8i(jh|zI{!"
If I put a space before the word "This", it doesn't make it so that the same characters are repeated, it is position relative. So...
Second Example:
" This is but a short example of how this will work" becomes "fTnpB]s L@n:bqx9Wu4@La7*#5.V9OFTWk'TV `*Y:]ho[q[2K"
- - - - -
Notice how the space at the beginning is represented by "f". The next character happens to be "T" which replaces the original letter with the same letter. The following is "n". If it wasn't position relative, then the colon and "y" would have been trailing the "f" in the second example.
Now imagine that the example is with but one keypad entry and a single one-time pad. The keypad allows for 1 to 16 digits, a range of 0 to 9999999999999999. At this time, there are only about 600 one-time pads in existance for my latest version. The one I used for this post is NOT among them. It was created just before using it here for illustration purposes.
U#YuU8Ug#27lR.`zI^z-WrsM%R@J 7l%s!wf1%P[F
Signed:
BC?)C8`b
Clandestine - February 9, 2006 10:57 AM (GMT)
| QUOTE (RancerDS @ Feb 9 2006, 02:26 AM) |
"This is but a short example of how this will work" becomes ":y0@?Za@[As0k9E[[@3F;y.EQ>^u@?xb`}SGL&Z8i(jh|zI{!"
|
You should try to encrypt it with many symbols representing one symbol, this would also make it much more efficient if trying to approach gaming systems not to be reproduced.
e.g. "This is my EG" becomes "ov7tvx4*+j d yudt 1+*1u `HÉI.TUln6e%b7"
If each possible letter or symbol can be either between 1 through 16 combinations of 88 characs, it makes it much much harder to crack.
RancerDS - February 9, 2006 05:57 PM (GMT)
You have made a very good point.
An early version of the program did add non-essential characters (dummy characters) into the encrypted string. Unfortunately, the encrypted portions were becoming more unmanageable for the longer clear-text strings. Spaces can be added in the clear text before encryption for adding non-essential characters. Another option is the phonetic alphabet, where T = Tee, B = Bee, Q = Que, etc.
Codes can even be designed for use before encryption even comes into play. It's been greatly discussed that certain flagged words set off alarms in intercepts. Example: "b-o-m-b" without the dashes. Other words are used to represent it, most often with words like "package", "gift", "drop", "box" and so on.
I think most of the security is going to have to come from practices and procedures. One of the things about my project is that even though I type in the clear-text, when I send someone the encrypted text, it's from a cut-n-paste operation on the computer. That means if any software was installed to log keystrokes, it's been defeated. Likewise, if someone receives encrypted text, they cut-n-paste and click decrypt to see the message.
Exchanging keypad entries and one-time pad files becomes tatamount in maintaining integrity of the entire system. If forums or newsgroups are used for posting the encrypted messages, then the one-time pad files should probably be mailed out on CD-ROM then copied onto the recipients hard-drive. The CD should then be destroyed. That leaves the keypad entry, which might need to be passed over the telephone line, through instant-messenger or maybe even physical hand-off.
Another technique for added security is the number of times the string is encrypted. Taking the resulting encryption string and re-encrypting means anyone having the same program, keypad entry AND one-time pad MUST decrypt it the same number of times.
Example:
":y0@?Za@[As0k9E[[@3F;y.EQ>^u@?xb`}SGL&Z8i(jh|zI{!" (from 1st example in my last post) becomes "I*`/i49YxfBu/|Y|,HIY%oP8O{z2SVgYBE4WK$OI26s@hMG^*" when encrypted twice, which becomes "9L6%4kyV8YcGhw9?o[m.cLTaXaZ:s;B)^h/.k28,kxQSf)@?T" if encrypted again - a total of 4 times.
Keys - February 10, 2006 02:19 AM (GMT)
I can ask my bf to take a look. Encryption's his expertise. I'll talk to him.
He says to ask how's it different from the standard DES algoryhthm?
RancerDS - February 10, 2006 06:40 AM (GMT)
DES is a block cipher. It has 64-bit blocks of data and a 56-bit key. It came out around mid 1970's. Rumours exist that it is insecure because of a "backdoor" inclusion. DES uses exclusive XOR operations to change the 1's and 0's for each bit for the encryption/decryption. Differential cryptanalysis proved it was very secure for that era. It is subject to brute-force attacks.
My lil proggie doesn't work like a block cipher. It takes a character string of bytes which are "substituted" by my private algorithm with replacement strings being utilized. Using multiple strings, various shifts and users making keypad entries; it isn't subject to the differential cryptoanalysis concerning hash functions and would require known portions of cipher text and clear-text for use as "crowbars". The software I created is a private key (symmetrical) kind, where there are no hash functions or excluse XOR operands.
As to a brute force attack, that is simply replacing all possible bytes with the apropriate one. A person could get any five-letter word for "hello". It tries to use common replacement to verify the result. If "6xTT0" were the cipher-text, then the two capital T's would signify the same letter is repeated and give a clue to the entire word.
Also, previous encryption uses three-, four- or five-groupings of the various possible characters. By removing spaces and even using substition for those with other characters, it confuses anyone where the word starts and where it ends.
Keys - February 11, 2006 05:55 AM (GMT)
Is your algorithm simular to RSA 's public key private key encryption?
RancerDS - February 14, 2006 07:35 AM (GMT)
The following message will be encrypted line-by-line with CypherND as a sample (Line breaks are added manually for cipher-text):
No, my algorithm isn't based upon anyone's algorithm, per se. It is what is called proprietary or of my own creation. Based on the 2-plus years lf evolution on this hobby, it is unique.
It isn't my intention to explain how it works or to give away it's secrets. The reason is that it's for my personal use and for others I like and trust. Sure, the U.S. federal government could do everything within it's power to break the system, intercept all one-time page files and cipher-text transmissions for whatever purpose they deem important. There really isn't anything to hide from them or anyone else.
There was a fantasy baseball or football league where I thought absentees for an offline-draft might wish to utilize it to post their draft choices. The reason for that was simple. I wouldn't decipher their picks until it was their turn. This was especially good since I was also participating in the draft.
__________________
Resulting Cipher-text:
I2-]xJI-VNO/DWiOmjr={le*gvzQ89hvsu?onqGQ7H@Xw|O<G2Gb#WX2 s^m@z9P=WO|Kpu3M^C2=-d,5K9@
2Z2N?Yl<y(Di:;9LR}42`AD;,9L.V/Mvs]Fe(=7QIetTcMi@`^;la`|,hx2FYzp@qOhG{6ywNo0h-vsCW=T
>2)@T5ICcmUK^S}H-/O9
'<^9bri<v$DiDjLsj!P^kDb2,A,kTcMgm#w3k,S %9NiOTO<`2n0D2>2<ff&Sz6C0Jx|F a'MPr.=*eLZzF^@|ey'b
4 n,cY4E{m1'Oyo<mHOKyA70' }K:dYgNud=pD4hbQN0cLa3Gz(0IcW,XyJ0xu9DB&|w *yFo^K'@@4H:%FN3i2
N2Y4?rz:4g7W:S,VmhS&bBiL!bZc-!V)|!Q8uDAh7H@1;={<`2n0FwSows8c5zRnKkU2 *K*M1kNgFs3LH!@
-KfVfYz:v6}S,yJHGXr&|b&@^/bZ:zucDv[eMWDwg7`0OkO%9!xsZWOL,.)K5r9>r|nGDJz:{1H.>piEZ
BuXM?Rp2cW7iozk^W}/U|* w,/Xrc/V-s([7a#i r9@7.C{&QBnbt$c2zsBF2fVn1sU,F<p'C
! fj#Z)-{m}i{}}M4SH&<t[5@,M*8Np$`/wg`=xYX'nX,*{&i|(!nWI,X{BD:ASD}2cw|lI'5^yhXvdbZ
-P=oyrl'X(}5CyoHtc&&]1[|,bt-U/MX|pMea!oh&e:3OMaAj5?!t?2ot.T[Xg6LWJz,Kuu'rpn).(K3kD8@sFtUOeAq
PCtNW% Xv|7I:S,Vj,&&^!8CW=zs8/>U|>FkaP1SX,o>.,aw*!c@NW-Lie4rx>NrUWx;Vwp$ZaY.gjMLq|'d,G2
N22IcD22}Z7%^[R7m77NODj02b^S$(Yc|[<ea#ohbQ@.n)4AX
RancerDS - May 19, 2006 06:17 AM (GMT)
Downloads for latest version (4.0c) are available at http://www.gamingemporium.net/downloads/OP4Wtem/CyphND4c.zip. The .dll file must be in the WINDOWS/SYSTEM32 directory or in a system path folder. To use for trial period, passcode is "trialpass".More about this...
Imagine the top letter comes from the top line of the one-time pad (OTP). If it was lower-case "a", it would be the first letter of the randomly generated string, of which there are 88 options per line. There are a total of 41 lines. The keypad is used to shift the replacement character a specific number of digits to the right (or left) of that 1st position in the replacement string, based upon hard-coded values and the keypad entry as well as dropping a specific number of lines down. They keypad allows for 16 digit entry.
Using digital ciphers based upon the ASCII or HEX values is basically on the "bit" level, meaning operands are used to change the 1's and 0's to generate the encrypted "character" or byte (8 bits in a byte). The basic ASCII table allows for 254 different options in all, but not all of them are useable or even recognizeable.
Having contacted an author of a well-known cryptologist, he was quick to point out that breaking text-only encryption was very easily accomplished. He didn't qualify if that meant it took a handful of Cray II computers' multiprocessing using the latest decryption algorithms 10 seconds, 10 minutes or 10 months.
The reason the text-encryption (replacement operations) is frowned upon is that it is time consuming in the manual sense. Take the Bible for instance. If a person was using a text for shift-character replacement, like say "The Hope" by Herman Wouk, the first few words of the first chapter read... "That smashed elbow was still in a crooked cast". "T" is the replacement for lower-case "a". So if we wanted to determine the substitute character, we'd go through b->U, c->V, d->W for the first letter, a->h for the second and a->a, b->b, c->c, d->d for the third until encrypting the word "bad" results in "Uhd" :)
An OTP is like a page in a book like Wouk's work mentioned above. Due to the size of each file, it is possible to store 330 OTP's on a single 3.5" floppy disk. Add how many times it can be transitioned through this process until it is so convoluted, those Cray II's will give you any kind of output you want to see... able to "devise" any feasible solution to breaking a code. It could literally take the word "evol" and turn it into "evil" or "love" or "hate". This is because text-replacement isn't purely mathematical, like stream or block ciphers.
See following link for sample OTP:
http://www.gamingemporium.net/personal/test0001.otpAnyone can come up with their own substitution scheme using however many legible characters that they can utilize. The program I'd written allows me to easily convert clear-text to encrypted text and of varying length. <---Encrypting this in next paragraph.... using keypad entry "58419203" and file "test0001.otp".
---Start encrypted text
uFCQ6nTObZUaAkGl-AuHYfG.
'.veH47Awq^yh:Y5s)V9uRn#wfkcMO'(;50z-FA su|}`3<>tRgbL]'D
0.?/ym&8@>UPd.Ylsd|69`R^>t0CAXJO^eBP-w,8$ra:.$W'U3d`TpHCRt,
s0|WN438v@BVY.c5oXucuR-%N!
00vhHN&8]@UPA,GM&?]2HZ|. JWi9tGP 7EzJsP&f a}>i<)w4}
---End encrypted text
Feel free to tell me if the "0" in the 5th line, 1st and 2nd positions represent the same clear-text character. It doesn't actually. The first one represents the clear-text letter "c" and the second represents "l". Now feel free to look at the OTP replacement text strings to see if you can deduce how it can do that, even with all the information you'd been provided. That is before I mix things up a bit with a new keypad entry or utilizing a brand new OTP. And adding a space or another kind of punctuation mark changes the results of an encrypted line drastically. Placing a space in front of the first part that is encrypted changes...
uFCQ6nTObZUaAkGl-AuHYfG.
to...
I;qnfUJQ6?CV$$8r{)yqOJ^:>
{This last example gives a far larger aid in trying to determine how my proggie works.}
maxnight1189 - May 28, 2006 03:19 PM (GMT)
hey im really interested in all this stuff and have followed most of it. where did you learn all this stuff about encryption and programming and whatnot? can i see the source code to see how it works? i promise i wont steal it...
RancerDS - May 28, 2006 06:07 PM (GMT)
Guess had shown an initial interest back in grade school. Someone talked about making a code using the tic-tac-toe frames and using that for a substitution scheme. Later on, probably junior high, heard about Caeser using a clever way of hiding his message, by writing it in perfect squares of 8 by 8 or 10 by 10, etc.
It's always been something interesting, so when I was trying to improve my programming within Visual Basic, I chose something that was still pretty discrete for me. Reading books that talked about codes and ciphers kind of reinforced the interest. With the big issues nowadays about private security, government snooping, spyware (and so on), figured I'd really put more effort into it within the last couple of years.
A cool site for a walk-through on basic topics is located at the following:
http://www.simonsingh.net/The_Black_Chamber/contents.htmlClick on "Next Page" in the upper left hand corner to progress through the content after choosing a link from the contents.
RancerDS - July 4, 2006 01:36 PM (GMT)
While there are times people shouldn't use their own products, it shouldn't apply here.
I am doing some "significant" amount of encryption for a message log. The first thing that irritates me is having to manually delete the clear-text in the
Input Field. Will have to create a button to clear that out for more easy of use. Next, realized that I can't minimize it. Not sure how easy that is to implement, but it certainly can't be too difficult (I hope).
It's also got me to thinking about other things. Encrypting line by line is tedious, but certainly helps to realize the importance of how messages are encrypted and security of various means for doing so. A text file could be read continuously while interpreting the
control-return/line feeds, translating everything much more rapidly. It would require file I/O handling, but would save time. AS to checking the integrity, it becomes difficult in a minor way.
Also, am thinking that the keypad entry may be manipulated by internal algorithms. The significant digits could be changed via hard code and even possibly reset to a
psuedo-random number that is generated by the program. The user would still need the keypad entry to decrypt the message.
Then, the issue of how to store the various segments needed to store & retrieve. There is the program itself, the clear- or cypher-text, the one-time pad file and then the keypad number. In some instances, it might require recording some of the reference information together. I had posted to the Usenet a sample of the encrypted log at the following link:
http://groups.google.com/group/comp.misc/b...220fefe254d8062If I later wanted to "read" this message, would probably have to know the version number of the CypherND used, the name of the one-time pad (OTP) filename, the keypad entry and where the message body is found later.Naturally, have to wonder or worry about how to transmit or supply information to people utilizing this for their own purposes... or to encrypt/decrypt messages between them and I.
I could call someone over the telephone to give them the keypad entry. Could ship them the program upon floppy disk and/or CD. And the OTP files could be available for download via restricted FTP while the messages are posted to the Usenet. Plus, could use DCC sends over IRC or even transfers through direct-connect over
instant messengers.
But there is still concerns over keeping the integrity high. Supplying the same program to everyone is dangerous to say the least. Even if the algorithm was easily readible and well understood, the keypad alone helps to keep it more secure. So at some point, may utilize different passcode entries for different users and have that factor into the algorithm's processing. The user on both ends would have to use the same passcode.... so maybe will look at sender passcode and an entry field for the recipient passcode.
RancerDS - November 29, 2006 01:22 AM (GMT)
Had to resurrect this topic. Blame Morpheus. He showed an interest in my most recent compiled project. Blame it on a bit of programming done for a game of mine. Whatever the cause is, it made for reasons to do more reading on the topic.
So here I paste a nice little excerpt:
AFJmaNk&n]&;f'/uX>xFM$s5\@a.O>_w]bOgYQxB
L:G3&tAHW\Zpj/"'sJZ^8=nY3aJjUhANr0iZ-9G&z7|@Cool huh? Well, it's not mine. It does show a remarkable correllation to my work... in that the character set used is a pretty much identical. Interested in who originally did that encryption? Well, it turns out to be a gentleman by the name of Aldrich Ames.
Source LinkI'd expanded my character set prior to reading it. Instead of the 90-some-odd characters that it was (and correlating closely to the above example), it has 118. Sure, could add more, but that in itself doesn't make the program/encryption process more secure. So I added a couple of tricks. Transpositions {i.e. shifts} were tuned to take into account the keypad entry length and the input field length.
For those of you wanting visualizations, I'm including them below:


The thing about it is that I could become more and more clever about how the program works, but alas have fewer possible permutations for the code because of eliminating them through flawed logic. The security still comes from lesser usage of the required OTP files which should then be discarded. Is it perfect? Probably never will be. Is it full-proof? Not absolutely certain someone won't reverse-engineer my programs or obtain the code. Does it matter? Not as much as it might without the user implementing the keypad. Call that part the setting of my Enigma-like coding device. Except repetition isn't necessarily a bad thing in that now.
There are less than two handfuls of people with any of my versions of CypherND. Heck, it's even likely that Morpheus broke either the encryption scheme by good ol' cryptanalysis or that he was able to reverse engineer the compiler. Either way, it's still only one part of the equation, with the keypad entry and the OTP files being the other two. Plus, it changes every time I compile another version.
So someone could ask me again what bit-level encryption it employs, like it is some kind of block cipher that changes the value from "1" to "0" or vice-versa at the bit level using complicated XOR statements. Or they can see it's a substitution-transposition method that scrambles 118 characters to represent the letter "a" and another of the 117 for the letter "A". Written out in mathematical terms, thats 118! total. The great news is that there are 47 lines of them in an OTP file, with many different combinations entered into the keypad. Speaking of the keypad, entering "0", "00" or "1" results in much different results.
Morpheus - November 29, 2006 02:03 AM (GMT)
Good hints, good hints. I hadn't started fooling (ie figuring out your scheme) with it yet, but I might if I get lots of free time on a break or a weekend or something.
In fact, I see many good hints in this topic. Have you changed your scheme at all since past versions?
RancerDS - February 3, 2008 02:55 PM (GMT)
The scheme changes only slightly. It will differ in how it picks an initial line to read, in how far it shifts for each character and the modular component will be sometimes switched (using say "2" instead of "3" for modulo mathematics). The main modulo statement won't change since it has to be the length of the key.
If and when I figure out how to add a bit more obfuscation to it, that'll be done to further complicate the process of how the internal algorithms function. Again, reverse-engineering ("reverse-coding") the Visual Basic program means that whatever statements are used would then be all too readable.
IceMetalPunk - July 11, 2008 09:48 AM (GMT)
Note: I only read the first page before posting this...
Now, I don't know anything about VB, but I do mess around in Game Maker a bit. Granted, it's not nearly as sophisticated or as powerful as a "real" language, but it gets the job done, and it's taught me a lot.
Anyway, as I was saying... I don't know much about VB, but would it be much harder to use the same (or a similar) encryption algorithm on binary data rather than only on straight text? I've dabbled in the encryption game myself...I made a simple program once, which got flamed by way too many people saying, "I can crack this! It's so easy!" So I amped it up a bit, and they're all like, "Ummm...yeah, that's 1000 times harder....can't crack it...." :lol: .
My point being...umm...I can't remember, but something like, "I'd be interested to know what kind of algorithm you're using for the encryption. Can you tell me, por favor?"
-IMP ;) :)
RancerDS - December 22, 2008 05:07 PM (GMT)
Realized that I hadn't responded....
It is a stream cipher. It uses a Caeser shift and uses some code to cycle through different lines. I use the MOD command a lot. The key is a file with multiple substitution lines for those shifts. It includes the keypad to increase the total possible number of permutations.
Beta Testers NeededI need volunteers of people to use the newer version of CypherND for quality assurance purposes. Also need input on how they would prefer distribution of the program to other users as well as the best way to distribute the OTP files.
Latest Screenshot:
Contents of a sample OTP file:´«/Js¼¨n&¥3¾z|¿m)Sµ24:CK¶`;LqZf½u§Flo'OjWdAX(N<,p}aY®ybPt£©#x=D_!I¤Q°0H-8wR¹¸T6³{k²@·51e±U]V¬hc.[^Bª$7rG?EM¢>*i9»gv%
¼>z/X{#nFd¸I»ck£³rbH¨R}J·BZ653Sp¬gxAO§1l?²±.m&=4|®)vNy´¾2%KqsVeGaQ0tT<CµU«©`foh-¶$]*Mjª;:¿_P,¢!iL@'7D9(wY¥u¤°¹WE8[½^
@,¢¹2E-/°jmfTOu6P¸«¾>©&NX¬?²;t(^[!oVg|y½³$IUx£sa¿v7¨d=5M0¶]Shz9C%1.Y4p¼c¤BªZW)l§_bL»F`*3HJi±Re·{®G:wK#q}8µQ'´A<nkr¥D
@*n8¶¥dy)m3ctD.zgW³w<?»¼:¹V4q²eTOU&¾NLZM/ªkb>I¢¸C6°¬v9XJ±HY½^aS-2¤'´!5Q¿EPosGF}©l7u%{¨Rj;®#B«£=|,·§_AK]µ$i`hfxp([0r1
&Y4¨mzjL©/]u;@²Iwr0k¾79A6U§*Xe«¶`R-#=gy8¤[fK¬¥'n¸¢±Z52CqE½N^lBQS£¿%a»TG3(V®_}:dF¹O,µW$´vPHh°JªsxiD³·>!c{p<bo)?¼t|.1M
#>X¥p|R/bOµ»Df«M¸§FtKJCs°G[´Aª¬±_qy8?Q3Z¿]m½NnPUh):£9IeWl0¾2®,!-vu¢x;BoaV='z¹c^*}(·©4{j5¼$&<7¶²E`r1diwTL.Yk¨6S%H¤g³@
]>¢1§-o½¤Rc;Jmz¿E®Dvj53^=!#&C$2%p}P»6eY`UM,hTyw/¾²4¸9H±Lt¬ad)ª:f@´Z_.F<«u¨xB?·NksWbV¥¹0G(¶rµOXl|7q8©[g{*°£¼QI³AKiS'n
YM¢5·¤_$D/A>|kKq«9svO%¶)b²¬¼c'®[;u#R0.Hµ-]4<¨&§N^X6JU*,GW7{iwz¸´mt1I@¿Qj°Cn2lEPg£¹³:Bhop©½8Zf±?¥T=!ª}`eLxda(VSF»r¾y3
zR(±={¼Z²®mO4`uwd>kbjL5_K<M-lW¹7%)x|FµUSh*$¾f¥ªs]G8&.0«6¨^PHo¶T1iQy½¢aJqE3¬t³N¸n[}YVB£9C·!X§A¤'v»cI¿?2´©g#°D/@r:pe;,
Eth»¢6Qa-d¼«LZy¾S³¹±bGAl5<2ªF(V4;cRp?$*.oj·v£@>Ti{0K&°®Yk7=m#¿¤¨frJxsOU¬!|/n1[8Bg9'©¥w´¶^WC3`H²%}½I)_MuD:,qzPµ§XN¸]e
n&@me¬`Hc9«ZvR<I©]7°tFs^¹·P[1z¨>X²y-N|3Q5r6.#JµTGB2w{qLgaª_¸SW$=¿;¢?C¥4%£»E,d¾O³ol}§uMi½/'8)D*!¼¤0®U´kVhjKb:xp±(YA¶f
|>T{_`;«=´K¾EPO0w-$²CR³DHnB?S)®»xiIgp7ª±c1]£¤¨¼d6!©M9%¹qtm&58AfWj¢§F°L.¿Vr4@bsXek<u[G½ZY¥,·J^(yQo¬a3vN}l¶:#/U¸2hzµ'*
a46,9³h¼8-uePnO¿3:°«wg/{#±´^Rd&pbCtA¤¢£LGfV¶Zr¾_'o!%¸k)xc]²¹X$qz©B@Ky»TS¬vM}`·¥§<2U;s*®>½m¨.j1?ªY7I[DQENlF0Hµ=5W|Ji(
¤k;¶&4%Evn»gL!O2:h²cWR¥`1(r¼¾}^iH£$Z-*p/P¢bt.³]u=KF?@_´[U±¹e9#0xXGly)o°6fq§mS®7¿BD<d|T·>AC«ª¬IYjµ¸V5sJw©aM¨{Q8,½N'z3
=MlU©d#o¶vhO·KYGªbS?/£ep)n»T¸¼>'g!qQcJi-_r]Rx{smk&DtV³½3w¬LB¢%7¾®F$C@f:I;¿6EW^*28µZXy.N9az,¤0²[¨j¥H(±°§A´u«P1}<`4|5¹
5q¿pg·IU½GzfeM;{u²FnxX?V©§N®¸±b_D&4#»$³´¬P'v6|E«}(-Y@mR^a°0¼LwZ%=l<,kWªd3c9£][ST¨y/¶Or¢A1KB¥Hj)82¾>s¹Q*`7µ.o!h:t¤iJC
7[BO`;hW«Klu.!¨#²$?9X¬Y¥0(£=F3HRDz}a»c:§sªr-U^/¸k*Z·En|@¹<S®b)¶2fvy>´¾&6m,C¤{¢½±NxJ¿IdQ³©48Pt1Aq°wogj5i¼_LpTVe]'%GµM
8KUL¹cPW¿wB³V`^Z;*6Q{OEv«¤aR¸qFdf0±·¢»y2#CG)§]e91¼o}u<4iNj!?z:lsr,pb©°I(&X/=¾x®-_½²¥kS@$>.J%Y¬5ª|H£t7M´¨T[mDhg3µn¶'A
*JV@kA2GciCYLN#´fhe¥²zS«©H¢OX?£³D$½o%p<B456¨,wKFª¬]=7;mvtrj'!M3·°Q(U)WPI¤±}g:98>¶0¹Z¼_[u».-`¸¾®&1¿yb|nx§qREsdal^Tµ/{
AI51¶]¬ir°Fg:?µV¼Y½w@mL!`´UM¤K·¥zvO³XB-{Rs»l.|¿x(Q$¢¨2nD3«®c40¹H*Z§/hGª=,Edj&Pu'}<^¸[6oWt±;kf8>£97bTy)Ne_C#Sa%©¾Jqp²
³X4±&vA¨-«)M5¤¢=}(crnS6lz·¸u£_KRsdE¹<j@w½0H'J!8¼^e1©N/®§k°I¬,$²#;]¥LC>`iFZh?W[¶O7yo¾3:µDqpYbxPa.Bg9´*ªtVm%{fT»GQ¿2|U
©2mA#EN_:[b8³<pW^IyCB?²L&qªSH7¼µ´$£aP4Z¾¿YV/¬(5±!kXG-Re*®noQ¢9.«K@`60hM¹u};%¸F3U'°|·TOjdr»g]¤¨{¶Dclt§1>w,=iJzx½fsv¥)
K%£D¿,¾pµRI@5<uvZJ4#L³r§c¥|[7Uof¶xw>&;3W½/M=1YtªS?bTsmPGy²!l°2HgE(¸Xe')O¨i*V0CFa¬j]}n{BQz^¤´·:¹8k_®q`¼±N.¢A«»9d$h6-©
9)3¶q´»<HT]`=®±w½1e¾¹¥Y}F-S.#@©Xczm%I|§tsrxBd04i¨¸«¼f'o_¢Pan£/kN$l7¬Mµ·jQO({8L!u¿^W2;bDªCA&V6?g:³Rp¤UZvh²G>5*,E°[yKJ
N4T.D´¤`LQ|o%JA<it=$«->&c(/l¿*z_¬©ªs'§[£h9YKGjbv®¹@Urd±R½pZW³k]u#mnX}3O¨)¾¼,x°¥^¸»;S1C·5M²{6¢FfV8gyIµ27weBH?E:0aP!q¶
WXM4R²ib>¶0vd7.´HGQ§=`!rP¤mKYhB<[¢c¥?,D6«SxpnwAlE©N#·Oa½»°*Jj&{gZ]£oT¾/u$3¿1^_(ª|¸Iz2fe8³C}®y¹kF5±µ@%;¬:)UL¨¼sqV'9-t
x#³M0¶Y<`5P&bclnrt19yi/¨u´vh_RGX|;[FH¾k«Jw4©SL]o3p)f%°q{>?V'®e¢@µ7Eª.628A¬·$W}d½Z¥*Oa(¹DB§j:U¼^CI»m=s-²,¤£K±T¸N¿!Qgz
s=}TLS;g©]m-f¾c¨V#rY°DµFNeb>'6Rn&¥«¼±C¤Zo¿$½{z^¹U8a2,K0|d²*MI[®§/B£¶@<·E5»pji?´!.AOW7J1q`xkXhw(:y¸43¢Hl_PQ¬³ª9)uG%vt
i53¢J©,z|9µE¥¹»RY&4*³$T%la6£;Sª®Kyo:bUcfAw_¶g(X¨QGrqH<´«8e}-`'¤NL=kMu!²1n@¾)¸B°D^?hj§V./½Ct¬P·mdF¼IO¿#pv±0>27ZsW[x{]
,®¢].V<zG§6F_©´¥µt%?uUx!L¿mji'pK·v¶A2&Tª41;Wr³ZM«{l@y*I`3kNq|>f¼D²¾bO-$wn¹57£h¬#Be8¤(Q±aJcP¨YXd^½S=g:E°R0o[)HCs}¸/9»
iXQ61»·µc.r¤4GB½'m)¸ªvJ¬tH°{k³ljg*p¶08[|±Z©P;VK?EUATS¹zY3IM!5²h9¼¿&xDwa¾¨F#®/7¥=u>:,O]s´§no2ydR(Lb`$Nq<f@_«e^}%C-£¢W
2I£:NlC¿®¥=f¾ª7R©twV'6*¬¤-?o}¨sZqpz5e9jm%;k¶)B½°SbX$0&µK!WJ³[DG4^g`{8<¼v]«u>E@A/±·,»a_x¸MyrT1LdcQH´.¢F²(#Yn§|iOU3hP¹
<½/mpW(¾Ux®e|for¿.=«C1cLO&°#q)-V_MX:nR¨»£·!;]$v6B^Z*i5s¬§Jz'@E04S,2b>t²8¹{FaG}¸T?±jHD³IAª[Yg%hwN`y¢9¤3¼K¶¥uµd©lk7´PQ
¬j¸QdZX-·*k.§o9i[f35n')«°=!®%¢R¥u¤YOBL;<slt±6£M:^`b¶P´q7v½»2¼mFyDpV#hª|1U(ew³_@&Iµ©Cz0x{K$a?g¹4G¾¨AJN¿}/ErW8H,]ST>c²
|9p3O?H'1G6¶§JQ{,®qA&¼mgju;>«(E5hV¥¨xM}r#4=nµ¸L`kRv!ªl*£I]yW.X<iC¢T%©f±-Z$2Yb¬¾NPSt8KDF@a»°·e¿/¹ow7U^½B´_z:0³[²¤sd)c
¬t±Y#%w5©O,i´L¥2$F|>;¸4®v?·½-Wj°¼Z`lo=¹pm.d1ª)C8]nNG£yI§U7z}x¾J²&fPB»M[SXe3g^«k!³_@<c¿0¶b6{QV'9/A¨R(suK:rT¤Eqµa¢D*hH
YX.H9w4WvyT¸z;cK¾hZ^P±/f1¼DtOª(q®s¢ru¹B3<2e8:EU*]_0gV5@=[½N¬|,?²§¨n{`»¤°©³#%!Q7pl´«IGR&µ¶£Ao}C)¥SM$LdibaJ6·->mj¿'xFk
M²U3¼bnO5Dd6E2`£Ct};o½f§l¶e°±ªhY¨>,a¬&wx^z=Fs4Q@IjL_X³i/#ymS)9´*«W%¾BN1v[HK!(Rp¿$0q|¥®'¢7¸¹<:8?»µGcuP©ArZTg·]{.-J¤kV
!gP]£ey¥µL9)i*MxZ^=q»?3C#¼Q>UEJl©«X,dzG±ªnAS¿1jY:$¹c}5fu½·w`&²2B¬WIR¾rTkK/mo7<HtaFp8%{v°N´0;¸.@b[§|¢¤_6V®(O¶D-³¨h4s'
i]gMw<tS;Q?j6©_¤m¸Fu0ysOd`fV§[koKH9cA³¾R¼½v*&8»/=®·:£e.}¿Y)rZµ{l%2T«,-¹#na±pPUCDJ¨34@1¢!°Eh¥qN$X´ª^b¬BI¶²G(W'|x>L5z7
/=w©5H2´F{<¨`A8Ep&NtolkiPJ|z9½Z(6¥mb4²eXfDj¾>.sgv'^OYV*[IMKµ¬S_$±³¼ª;an,UB]«C£@¢¤xq1¹7-°u§cr}¶Tdy¸0#WL?»3)·Q:%R!G®h¿
t?±a;£I9c}»3#%-qh1½Df[ªx7¬p´HBTVj^¿·¢¾gM2³K>,bXd¶AW`§8m4°{.C¼Oo5NseZ|]yu¤!r¸$¥«_FE®z<@/n6YP¹LG)wkR²0U'J&µ=(:©Sv¨il*Q
0«]¥'>tdb;¢rf9hwZ¿µgª)A[6a8@¸2QNT3£EcOo¾?®·7´D4RK»¬SXi<_Gm`&v1§±%#^$BsWpq¶Fz{Jn°¼j¨ex=¤V,!MCUP¹³L(²Ik|5Yu½:-y}©.*Hl/
dCm%0[¹½w®Q|4µZ1o)r3±BKH5XS²Y<n*j¾¿Vs,FEAz.8lLN/`-;¬h¸·xOW¼¨»¶Tp¢gcUPb°IR2JG_i^y>ª#(v¤7¥©M9'}uftk!£@e´:«aq=$]³§6D{&?
·IMª(1®6qe3£Daµ$EV¼?5dU)B0o_8,³#`[xY7=@nQSt´²<b>G.Nz¶pj{suyX^%4!©¸vR¥FLm¤¿P¾9'¹-]Z2±}rl«wi¢:O½T;k&gf§*¨hA°J»c¬|KCH/W
¶ª©q¾¿6®°R3²y1OCl`8UN.>E£(#´§V»¬X¨_7|B¥<Du*kJ]PAh-¹w·¤:,@;µ$c%n)xFZa?±«edfg}TYL4HQ/sM^W'v¼G¢2[&pmIKob³¸S!t9z{i½5j0=r
x)>·8®C*yvw=gR´Bt]¼U¸F1³²d5¢-cY&OS°L¶m7a}%eDr§P|0HªE{^p,Z9©l#¿¬ius6?2[QI/hjG«:M@£o;'<.¥(!±q¹3_fX¤µkzNA`VW4½¾bJ$TKn»¨