=Submit Articles Here for Liberty BASIC Programmer's Encyclopedia= 
[[home|Liberty BASIC Programmer's Encyclopedia]]

Anybody can submit articles to the Liberty BASIC Programmer's Encyclopedia. You do not need to be a member of this site. The public may edit existing pages. Only persons with a Wikispaces account may create new pages. You may get a free Wikispaces account [[www/home|here.]]

**License**
By adding content to the Liberty BASIC Programmer's Encyclopedia, you are bound by the license. If you do not want to release your work under this license, do not submit articles. [[License|Click HERE to read the License.]]

**Article Guidelines**
The Liberty BASIC Programmer's Encyclopedia is a place for full-length technical articles. Authors should make sure that articles are well-structured, that words are spelled correctly, and that all code works properly. [[tech.writing|Click HERE for help on technical writing.]]

When you submit an article, be aware this is not the end of your involvement. Few of us get it Just Right the very first time. Expect an LBPE editor to contact you with questions, suggestions, possible edits, etcetera for you to look over and take the proper action.

**Adding Articles**
# [[http://lbpe.wikispaces.com/page/edit/Submit|Click the edit button at the top of this page.]]
# Add your article to the [[Submit#list|list at the bottom of this page]] . If you are using the formatted text editor, simply click the link button on the editing toolbar and invoke a dialog to add the link. Type the name of your new page in the "wiki link" area and click the "okay" button.If you are using the plain text editor, do this by typing a name for your page inside of double square brackets. If your article is called "Using Arrays", your link would look like this: ``* [[Using Arrays]] ``Save the editing of this page.
# View this page and click on the link you just created.
# On the new page, click the edit link and type or paste your article.
# Please place your name and the date at the top of your article, along with a descriptive title.
# Save your edits. That's all there is to it!

**//Having trouble submitting an article?//** Try [[media type="custom" key="4340767"]]

**Editing Articles**
To learn how to use WikiText markup to edit site content, click [[www/wikitext|HERE.]] You don't need to know WikiText, though. When you are editing a page, there is a button near the bottom to "Use Visual Editor." If you want to try some editing in a safe place where you can do no harm, play in the [[TestArea|Test Area]]. Before finalizing the article, you can click the "Preview" button to see how your article will appear, and make changes as needed.

**Additional Files**
If your article requires images or other additional files, simply upload them and include links in your article. When you are editing a page there is a link in the upper right for "Images". Click this to view a list of all available files and images.

**Article Placement**
One of the organizers of the Liberty BASIC Programmer's Encyclopedia will tag your article for editing. If the organizers find it to be a viable article for the encyclopedia, it will be added to all the appropriate categories.

**Confirmation**
Organizers of the Liberty BASIC Programmer's Encyclopedia will make any modifications they feel are needed. Authors may accept or reject these changes before articles are listed in the appropriate categories and locked.

**Article Modification in the Future**
One of the advantages of this format is that it affords us the ability to update and modify the information. Organizers reserve the right to modify, expand, or delete articles as they determine such actions to be appropriate.

**Who Can Edit Articles**
Articles can be edited by the original authors and by the site organizers. Others should suggest changes via the site's discussion feature.
----
[[#list]]

<span style="background-color: #ffffff; color: #333333; display: block; font-family: 'Helvetica Neue',Helvetica,Arial,sans-serif; font-size: 14px;">
=<span style="color: inherit; font-family: inherit; font-size: 1.9em;">[[lbpe/CryptographyWithLB102|CryptographyWithLB103]]</span>= 
<span style="display: block; vertical-align: middle;">

<span style="display: block; text-align: center; vertical-align: middle;"> Edit</span><span style="color: #333333; text-align: center; vertical-align: middle;">[[http://lbpe.wikispaces.com/page/history/CryptographyWithLB102| 6]]</span><span style="color: #333333; text-align: center; vertical-align: middle;">[[http://lbpe.wikispaces.com/page/menu/CryptographyWithLB102|…]]</span></span></span><span style="background-color: #ffffff; display: block; font-size: 14px;">
=[[#Cryptography with Liberty Basic]]Cryptography with Liberty Basic= 
==[[#Cryptography with Liberty Basic-102: Classical Cryptography: DES]]103: Public Key Cryptography: RSA Algorithm== 
==[[#Cryptography with Liberty Basic-By Onur Alver (CryptoMan)]]By Onur Alver (//CryptoMan//)== 

----
==[[#Cryptography with Liberty Basic-INTRODUCTION]]INTRODUCTION== 
=Table of Contents= 
[[lbpe/CryptographyWithLB102#Cryptography%20with%20Liberty%20Basic|Cryptography with Liberty Basic]]
[[lbpe/CryptographyWithLB102#Cryptography%20with%20Liberty%20Basic-102:%20Classical%20Cryptography:%20DES|103: Public Key Cryptography: R]]SA Algorithm
We will continue in our series of articles about Cryptography with Public Key Cryptography.
----
[[#TranspositionCyper]]
==[[#Cryptography with Liberty Basic-TRANSPOSITION]]RSA ALGORITHM== 

**RSA Algorithm is based on the assumption on the difficulty of factoring large composite numbers.**


|| <span style="font-size: 12px;">**Code:**</span>

<span style="font-size: 12px;"> </span><span style="font-family: Lucida Console,Monaco,monospace;">dim stats(11)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">dim SmallPrimes(1000)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 2, 3, 5, 7, 11, 13, 17, 19, 23, 29</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 31, 37, 41, 43, 47, 53, 59, 61, 67, 71</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 73, 79, 83, 89, 97, 101, 103, 107, 109, 113</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 127, 131, 137, 139, 149, 151, 157, 163, 167, 173</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 179, 181, 191, 193, 197, 199, 211, 223, 227, 229</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 233, 239, 241, 251, 257, 263, 269, 271, 277, 281</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 283, 293, 307, 311, 313, 317, 331, 337, 347, 349</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 353, 359, 367, 373, 379, 383, 389, 397, 401, 409</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 419, 421, 431, 433, 439, 443, 449, 457, 461, 463</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 467, 479, 487, 491, 499, 503, 509, 521, 523, 541</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 547, 557, 563, 569, 571, 577, 587, 593, 599, 601</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 607, 613, 617, 619, 631, 641, 643, 647, 653, 659</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 661, 673, 677, 683, 691, 701, 709, 719, 727, 733</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 739, 743, 751, 757, 761, 769, 773, 787, 797, 809</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 811, 821, 823, 827, 829, 839, 853, 857, 859, 863</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 877, 881, 883, 887, 907, 911, 919, 929, 937, 941</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 947, 953, 967, 971, 977, 983, 991, 997, 1009, 1013</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 1019, 1021, 1031, 1033, 1039, 1049, 1051, 1061, 1063, 1069</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 1087, 1091, 1093, 1097, 1103, 1109, 1117, 1123, 1129, 1151</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 1153, 1163, 1171, 1181, 1187, 1193, 1201, 1213, 1217, 1223</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 1229, 1231, 1237, 1249, 1259, 1277, 1279, 1283, 1289, 1291</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 1297, 1301, 1303, 1307, 1319, 1321, 1327, 1361, 1367, 1373</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 1381, 1399, 1409, 1423, 1427, 1429, 1433, 1439, 1447, 1451</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 1453, 1459, 1471, 1481, 1483, 1487, 1489, 1493, 1499, 1511</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 1523, 1531, 1543, 1549, 1553, 1559, 1567, 1571, 1579, 1583</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 1597, 1601, 1607, 1609, 1613, 1619, 1621, 1627, 1637, 1657</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 1663, 1667, 1669, 1693, 1697, 1699, 1709, 1721, 1723, 1733</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 1741, 1747, 1753, 1759, 1777, 1783, 1787, 1789, 1801, 1811</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 1823, 1831, 1847, 1861, 1867, 1871, 1873, 1877, 1879, 1889</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 1901, 1907, 1913, 1931, 1933, 1949, 1951, 1973, 1979, 1987</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 1993, 1997, 1999, 2003, 2011, 2017, 2027, 2029, 2039, 2053</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 2063, 2069, 2081, 2083, 2087, 2089, 2099, 2111, 2113, 2129</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 2131, 2137, 2141, 2143, 2153, 2161, 2179, 2203, 2207, 2213</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 2221, 2237, 2239, 2243, 2251, 2267, 2269, 2273, 2281, 2287</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 2293, 2297, 2309, 2311, 2333, 2339, 2341, 2347, 2351, 2357</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 2371, 2377, 2381, 2383, 2389, 2393, 2399, 2411, 2417, 2423</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 2437, 2441, 2447, 2459, 2467, 2473, 2477, 2503, 2521, 2531</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 2539, 2543, 2549, 2551, 2557, 2579, 2591, 2593, 2609, 2617</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 2621, 2633, 2647, 2657, 2659, 2663, 2671, 2677, 2683, 2687</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 2689, 2693, 2699, 2707, 2711, 2713, 2719, 2729, 2731, 2741</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 2749, 2753, 2767, 2777, 2789, 2791, 2797, 2801, 2803, 2819</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 2833, 2837, 2843, 2851, 2857, 2861, 2879, 2887, 2897, 2903</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 2909, 2917, 2927, 2939, 2953, 2957, 2963, 2969, 2971, 2999</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 3001, 3011, 3019, 3023, 3037, 3041, 3049, 3061, 3067, 3079</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 3083, 3089, 3109, 3119, 3121, 3137, 3163, 3167, 3169, 3181</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 3187, 3191, 3203, 3209, 3217, 3221, 3229, 3251, 3253, 3257</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 3259, 3271, 3299, 3301, 3307, 3313, 3319, 3323, 3329, 3331</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 3343, 3347, 3359, 3361, 3371, 3373, 3389, 3391, 3407, 3413</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 3433, 3449, 3457, 3461, 3463, 3467, 3469, 3491, 3499, 3511</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 3517, 3527, 3529, 3533, 3539, 3541, 3547, 3557, 3559, 3571</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 3581, 3583, 3593, 3607, 3613, 3617, 3623, 3631, 3637, 3643</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 3659, 3671, 3673, 3677, 3691, 3697, 3701, 3709, 3719, 3727</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 3733, 3739, 3761, 3767, 3769, 3779, 3793, 3797, 3803, 3821</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 3823, 3833, 3847, 3851, 3853, 3863, 3877, 3881, 3889, 3907</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 3911, 3917, 3919, 3923, 3929, 3931, 3943, 3947, 3967, 3989</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 4001, 4003, 4007, 4013, 4019, 4021, 4027, 4049, 4051, 4057</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 4073, 4079, 4091, 4093, 4099, 4111, 4127, 4129, 4133, 4139</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 4153, 4157, 4159, 4177, 4201, 4211, 4217, 4219, 4229, 4231</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 4241, 4243, 4253, 4259, 4261, 4271, 4273, 4283, 4289, 4297</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 4327, 4337, 4339, 4349, 4357, 4363, 4373, 4391, 4397, 4409</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 4421, 4423, 4441, 4447, 4451, 4457, 4463, 4481, 4483, 4493</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 4507, 4513, 4517, 4519, 4523, 4547, 4549, 4561, 4567, 4583</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 4591, 4597, 4603, 4621, 4637, 4639, 4643, 4649, 4651, 4657</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 4663, 4673, 4679, 4691, 4703, 4721, 4723, 4729, 4733, 4751</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 4759, 4783, 4787, 4789, 4793, 4799, 4801, 4813, 4817, 4831</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 4861, 4871, 4877, 4889, 4903, 4909, 4919, 4931, 4933, 4937</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 4943, 4951, 4957, 4967, 4969, 4973, 4987, 4993, 4999, 5003</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 5009, 5011, 5021, 5023, 5039, 5051, 5059, 5077, 5081, 5087</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 5099, 5101, 5107, 5113, 5119, 5147, 5153, 5167, 5171, 5179</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 5189, 5197, 5209, 5227, 5231, 5233, 5237, 5261, 5273, 5279</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 5281, 5297, 5303, 5309, 5323, 5333, 5347, 5351, 5381, 5387</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 5393, 5399, 5407, 5413, 5417, 5419, 5431, 5437, 5441, 5443</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 5449, 5471, 5477, 5479, 5483, 5501, 5503, 5507, 5519, 5521</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 5527, 5531, 5557, 5563, 5569, 5573, 5581, 5591, 5623, 5639</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 5641, 5647, 5651, 5653, 5657, 5659, 5669, 5683, 5689, 5693</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 5701, 5711, 5717, 5737, 5741, 5743, 5749, 5779, 5783, 5791</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 5801, 5807, 5813, 5821, 5827, 5839, 5843, 5849, 5851, 5857</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 5861, 5867, 5869, 5879, 5881, 5897, 5903, 5923, 5927, 5939</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 5953, 5981, 5987, 6007, 6011, 6029, 6037, 6043, 6047, 6053</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 6067, 6073, 6079, 6089, 6091, 6101, 6113, 6121, 6131, 6133</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 6143, 6151, 6163, 6173, 6197, 6199, 6203, 6211, 6217, 6221</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 6229, 6247, 6257, 6263, 6269, 6271, 6277, 6287, 6299, 6301</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 6311, 6317, 6323, 6329, 6337, 6343, 6353, 6359, 6361, 6367</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 6373, 6379, 6389, 6397, 6421, 6427, 6449, 6451, 6469, 6473</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 6481, 6491, 6521, 6529, 6547, 6551, 6553, 6563, 6569, 6571</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 6577, 6581, 6599, 6607, 6619, 6637, 6653, 6659, 6661, 6673</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 6679, 6689, 6691, 6701, 6703, 6709, 6719, 6733, 6737, 6761</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 6763, 6779, 6781, 6791, 6793, 6803, 6823, 6827, 6829, 6833</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 6841, 6857, 6863, 6869, 6871, 6883, 6899, 6907, 6911, 6917</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 6947, 6949, 6959, 6961, 6967, 6971, 6977, 6983, 6991, 6997</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 7001, 7013, 7019, 7027, 7039, 7043, 7057, 7069, 7079, 7103</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 7109, 7121, 7127, 7129, 7151, 7159, 7177, 7187, 7193, 7207</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 7211, 7213, 7219, 7229, 7237, 7243, 7247, 7253, 7283, 7297</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 7307, 7309, 7321, 7331, 7333, 7349, 7351, 7369, 7393, 7411</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 7417, 7433, 7451, 7457, 7459, 7477, 7481, 7487, 7489, 7499</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 7507, 7517, 7523, 7529, 7537, 7541, 7547, 7549, 7559, 7561</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 7573, 7577, 7583, 7589, 7591, 7603, 7607, 7621, 7639, 7643</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 7649, 7669, 7673, 7681, 7687, 7691, 7699, 7703, 7717, 7723</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 7727, 7741, 7753, 7757, 7759, 7789, 7793, 7817, 7823, 7829</span>


<span style="font-family: Lucida Console,Monaco,monospace;">data 7841, 7853, 7867, 7873, 7877, 7879, 7883, 7901, 7907, 7919</span>

<span style="font-family: Lucida Console,Monaco,monospace;">playwave "ding.wav", async</span>

<span style="font-family: Lucida Console,Monaco,monospace;">print "Liberty Basic RSA Demonstration"</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print "Loading Small Primes"</span>


<span style="font-family: Lucida Console,Monaco,monospace;">for i=1 to 1000: read x : SmallPrimes(i)=x :next :NoOfSmallPrimes=1000</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print NoOfSmallPrimes;" Primes Loaded"</span>

<span style="font-family: Lucida Console,Monaco,monospace;">print"Generating Random Primes"</span>

<span style="font-family: Lucida Console,Monaco,monospace;">'goto [Jump]</span>

<span style="font-family: Lucida Console,Monaco,monospace;">for i=1 to 2</span>

<span style="font-family: Lucida Console,Monaco,monospace;">t1=time$("ms")</span>


<span style="font-family: Lucida Console,Monaco,monospace;">[TryAnother]</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print "Prime No ";i</span>


<span style="font-family: Lucida Console,Monaco,monospace;">if i=1 then x=Random(30) else x=Random(30)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">iterations=0</span>


<span style="font-family: Lucida Console,Monaco,monospace;">[Loop]</span>


<span style="font-family: Lucida Console,Monaco,monospace;">iterations=iterations+1</span>

<span style="font-family: Lucida Console,Monaco,monospace;">if MillerRabin(x,7)=1 then</span>


<span style="font-family: Lucida Console,Monaco,monospace;">'print "Composite"</span>


<span style="font-family: Lucida Console,Monaco,monospace;">x=x+2</span>


<span style="font-family: Lucida Console,Monaco,monospace;">goto [Loop]</span>


<span style="font-family: Lucida Console,Monaco,monospace;">else</span>


<span style="font-family: Lucida Console,Monaco,monospace;">t2=time$("ms")</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print x;" Probably Prime. Generated in ";t2-t1;" milliseconds"</span>


<span style="font-family: Lucida Console,Monaco,monospace;">playwave "tada.wav", async</span>


<span style="font-family: Lucida Console,Monaco,monospace;">end if</span>


<span style="font-family: Lucida Console,Monaco,monospace;">if p then q=x else p=x</span>


<span style="font-family: Lucida Console,Monaco,monospace;">next i</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print</span>

<span style="font-family: Lucida Console,Monaco,monospace;">playwave "tada.wav", async</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print "p=";dechex$(p)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">[Retry]</span>


<span style="font-family: Lucida Console,Monaco,monospace;">restore</span>

<span style="font-family: Lucida Console,Monaco,monospace;">print "q=";dechex$(q)</span>

<span style="font-family: Lucida Console,Monaco,monospace;">'Common modulus N=(p)(q)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">n=p*q</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print "Key Length ";len(dechex$(n))*4;" bits "</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print</span>


<span style="font-family: Lucida Console,Monaco,monospace;">'Euler Totient Number M=(p-1)(q-1)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">m=(p-1)*(q-1)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">'Choose a suitable prime E relatively prime to M</span>

<span style="font-family: Lucida Console,Monaco,monospace;">for i=1 to 12</span>


<span style="font-family: Lucida Console,Monaco,monospace;">read e</span>


<span style="font-family: Lucida Console,Monaco,monospace;">if (GCD(e,m)=1) then goto [Start]</span>


<span style="font-family: Lucida Console,Monaco,monospace;">next i</span>

<span style="font-family: Lucida Console,Monaco,monospace;">[Start]</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print "Common Modulus, n=";dechex$(n)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print "Euler-Totient No, m=";dechex$(m)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print "Public Exponent, e=";dechex$(e)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">d=ExtBinEuclid( e, m )</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print "Secret Exponent, d=";dechex$(d)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">DIM TEST(10)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">DIM ENCR(10)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">DIM DECR(10)</span>

<span style="font-family: Lucida Console,Monaco,monospace;">TEST(1)=TEXT2DEC("LIBERTY BASIC IS THE BEST")</span>


<span style="font-family: Lucida Console,Monaco,monospace;">TEST(2)=TEXT2DEC("WHICH BASIC CAN DO THIS ")</span>


<span style="font-family: Lucida Console,Monaco,monospace;">TEST(3)=TEXT2DEC("WITHOUT CALLING EXT DLL ?")</span>


<span style="font-family: Lucida Console,Monaco,monospace;">TEST(4)=TEXT2DEC("LB CAN DO BIG INTEGERS ! ")</span>


<span style="font-family: Lucida Console,Monaco,monospace;">TEST(5)=TEXT2DEC("UNDOCUMENTED LB FEATURE. ")</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print "RSA ENCRYPTION DEMO"</span>


<span style="font-family: Lucida Console,Monaco,monospace;">for i=1 to 5</span>


<span style="font-family: Lucida Console,Monaco,monospace;">t1=time$("ms")</span>


<span style="font-family: Lucida Console,Monaco,monospace;">ENCR(i)=FastExp(TEST(i), e, n)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">t2=time$("ms")</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print TEST(i);</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print " ";ENCR(i);</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print " ";t2-t1;" ms"</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print DEC2TEXT$( TEST(i) );" --> ";DEC2TEXT$( ENCR(i) )</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print</span>


<span style="font-family: Lucida Console,Monaco,monospace;">next i</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print "________________________________________________________________________________________________________________"</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print "RSA DECRYPTION DEMO"</span>

<span style="font-family: Lucida Console,Monaco,monospace;">for i=1 to 5</span>


<span style="font-family: Lucida Console,Monaco,monospace;">t1=time$("ms")</span>


<span style="font-family: Lucida Console,Monaco,monospace;">DECR(i)=FastExp(ENCR(i), d, n)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">t2=time$("ms")</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print ENCR(i);</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print " ";DECR(i);</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print " ";t2-t1;" ms"</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print DEC2TEXT$( ENCR(i) );" --> ";DEC2TEXT$( DECR(i) )</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print</span>


<span style="font-family: Lucida Console,Monaco,monospace;">next i</span>

<span style="font-family: Lucida Console,Monaco,monospace;">print " "</span>

<span style="font-family: Lucida Console,Monaco,monospace;">print</span>


<span style="font-family: Lucida Console,Monaco,monospace;">print "RSA Demo Finished."</span>


<span style="font-family: Lucida Console,Monaco,monospace;">playwave "ding.wav", async</span>


<span style="font-family: Lucida Console,Monaco,monospace;">[stop]</span>

<span style="font-family: Lucida Console,Monaco,monospace;">END</span>

<span style="font-family: Lucida Console,Monaco,monospace;">Function GCD( m,n )</span>


<span style="font-family: Lucida Console,Monaco,monospace;">' Find greatest common divisor with Extend Euclidian Algorithm</span>


<span style="font-family: Lucida Console,Monaco,monospace;">' Knuth Vol 1 P.13 Algorithm E</span>

<span style="font-family: Lucida Console,Monaco,monospace;">ap =1 :b =1 :a =0 :bp =0: c =m :d =n</span>

<span style="font-family: Lucida Console,Monaco,monospace;">[StepE2]</span>


<span style="font-family: Lucida Console,Monaco,monospace;">q = int(c/d) :r = c-q*d</span>

<span style="font-family: Lucida Console,Monaco,monospace;">if r<>0 then</span>


<span style="font-family: Lucida Console,Monaco,monospace;">c=d :d=r :t=ap :ap=a :a=t-q*a :t=bp :bp=b :b=t-q*b</span>


<span style="font-family: Lucida Console,Monaco,monospace;">'print ap;" ";b;" ";a;" ";bp;" ";c;" ";d;" ";t;" ";q</span>


<span style="font-family: Lucida Console,Monaco,monospace;">goto [StepE2]</span>


<span style="font-family: Lucida Console,Monaco,monospace;">end if</span>

<span style="font-family: Lucida Console,Monaco,monospace;">GCD=a*m+b*n</span>

<span style="font-family: Lucida Console,Monaco,monospace;">'print ap;" ";b;" ";a;" ";bp;" ";c;" ";d;" ";t;" ";q</span>

<span style="font-family: Lucida Console,Monaco,monospace;">End Function 'Extended Euclidian GCD</span>

<span style="font-family: Lucida Console,Monaco,monospace;">Function ExtBinEuclid( u, v )</span>


<span style="font-family: Lucida Console,Monaco,monospace;">k=0 :t1=0 :t2=0 :t3=0</span>

<span style="font-family: Lucida Console,Monaco,monospace;">if u<v then</span>


<span style="font-family: Lucida Console,Monaco,monospace;">temp=u</span>


<span style="font-family: Lucida Console,Monaco,monospace;">u=v</span>


<span style="font-family: Lucida Console,Monaco,monospace;">v=temp</span>


<span style="font-family: Lucida Console,Monaco,monospace;">end if</span>

<span style="font-family: Lucida Console,Monaco,monospace;">while (IsEven( u ) and IsEven( v ))</span>


<span style="font-family: Lucida Console,Monaco,monospace;">k = k+1</span>


<span style="font-family: Lucida Console,Monaco,monospace;">u = int(u/2)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">v = int(v/2)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">wend</span>

<span style="font-family: Lucida Console,Monaco,monospace;">u1 = 1: u2 = 0: u3 =u: t1 =v: t2 =u-1: t3 =v</span>

<span style="font-family: Lucida Console,Monaco,monospace;">[Loop1]</span>


<span style="font-family: Lucida Console,Monaco,monospace;">[Loop2]</span>

<span style="font-family: Lucida Console,Monaco,monospace;">' print "*"</span>


<span style="font-family: Lucida Console,Monaco,monospace;">if (IsEven(u3)) then</span>


<span style="font-family: Lucida Console,Monaco,monospace;">if IsOdd(u1) or IsOdd(u2) then</span>


<span style="font-family: Lucida Console,Monaco,monospace;">u1=u1+v</span>


<span style="font-family: Lucida Console,Monaco,monospace;">u2=u2+u</span>


<span style="font-family: Lucida Console,Monaco,monospace;">end if</span>


<span style="font-family: Lucida Console,Monaco,monospace;">u1=int(u1/2)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">u2=int(u2/2)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">u3=int(u3/2)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">end if</span>

<span style="font-family: Lucida Console,Monaco,monospace;">if IsEven(t3) or (u3<t3) then</span>


<span style="font-family: Lucida Console,Monaco,monospace;">temp=u1: u1=t1: t1=temp</span>


<span style="font-family: Lucida Console,Monaco,monospace;">temp=u2: u2=t2: t2=temp</span>


<span style="font-family: Lucida Console,Monaco,monospace;">temp=u3: u3=t3: t3=temp</span>


<span style="font-family: Lucida Console,Monaco,monospace;">end if</span>


<span style="font-family: Lucida Console,Monaco,monospace;">if IsEven(u3) then</span>


<span style="font-family: Lucida Console,Monaco,monospace;">goto [Loop2]</span>


<span style="font-family: Lucida Console,Monaco,monospace;">end if</span>

<span style="font-family: Lucida Console,Monaco,monospace;">while u1<t1 OR u2<t2</span>


<span style="font-family: Lucida Console,Monaco,monospace;">u1=u1+v: u2=u2+u</span>


<span style="font-family: Lucida Console,Monaco,monospace;">wend</span>

<span style="font-family: Lucida Console,Monaco,monospace;">u1=u1-t1: u2=u2-t2: u3=u3-t3</span>

<span style="font-family: Lucida Console,Monaco,monospace;">if (t3>0) then</span>


<span style="font-family: Lucida Console,Monaco,monospace;">goto [Loop1]</span>


<span style="font-family: Lucida Console,Monaco,monospace;">end if</span>


<span style="font-family: Lucida Console,Monaco,monospace;">while u1>=v AND u2>=u</span>


<span style="font-family: Lucida Console,Monaco,monospace;">u1=ul-v: u2=u2-u</span>


<span style="font-family: Lucida Console,Monaco,monospace;">wend</span>

<span style="font-family: Lucida Console,Monaco,monospace;">ExtBinEuclid=u-u2</span>

<span style="font-family: Lucida Console,Monaco,monospace;">End Function</span>


<span style="font-family: Lucida Console,Monaco,monospace;">function IsEven( x )</span>


<span style="font-family: Lucida Console,Monaco,monospace;">if ( x MOD 2 )=0 then</span>


<span style="font-family: Lucida Console,Monaco,monospace;">IsEven=1</span>


<span style="font-family: Lucida Console,Monaco,monospace;">else</span>


<span style="font-family: Lucida Console,Monaco,monospace;">IsEven=0</span>


<span style="font-family: Lucida Console,Monaco,monospace;">end if</span>


<span style="font-family: Lucida Console,Monaco,monospace;">end function</span>


<span style="font-family: Lucida Console,Monaco,monospace;">function IsOdd( x )</span>


<span style="font-family: Lucida Console,Monaco,monospace;">if ( x MOD 2 )=0 then</span>


<span style="font-family: Lucida Console,Monaco,monospace;">IsOdd=0</span>


<span style="font-family: Lucida Console,Monaco,monospace;">else</span>


<span style="font-family: Lucida Console,Monaco,monospace;">IsOdd=1</span>


<span style="font-family: Lucida Console,Monaco,monospace;">end if</span>


<span style="font-family: Lucida Console,Monaco,monospace;">end function</span>


<span style="font-family: Lucida Console,Monaco,monospace;">Function FastExp(x, y, N)</span>

<span style="font-family: Lucida Console,Monaco,monospace;">if (y=1) then 'MOD(x,N)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">FastExp=x-int(x/N)*N</span>


<span style="font-family: Lucida Console,Monaco,monospace;">goto [ExitFunction]</span>


<span style="font-family: Lucida Console,Monaco,monospace;">end if</span>


<span style="font-family: Lucida Console,Monaco,monospace;">if ( y and 1) = 0 then</span>

<span style="font-family: Lucida Console,Monaco,monospace;">dum1=y/2</span>


<span style="font-family: Lucida Console,Monaco,monospace;">dum2=y-int(y/2)*2 'MOD(y,2)</span>

<span style="font-family: Lucida Console,Monaco,monospace;">temp=FastExp(x,dum1,N)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">z=temp*temp</span>


<span style="font-family: Lucida Console,Monaco,monospace;">FastExp=z-int(z/N)*N 'MOD(temp*temp,N)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">goto [ExitFunction]</span>


<span style="font-family: Lucida Console,Monaco,monospace;">else</span>

<span style="font-family: Lucida Console,Monaco,monospace;">dum1=y-1</span>


<span style="font-family: Lucida Console,Monaco,monospace;">dum1=dum1/2</span>


<span style="font-family: Lucida Console,Monaco,monospace;">temp=FastExp(x,dum1,N)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">dum2=temp*temp</span>


<span style="font-family: Lucida Console,Monaco,monospace;">temp=dum2-int(dum2/N)*N 'MOD(dum2,N)</span>

<span style="font-family: Lucida Console,Monaco,monospace;">z=temp*x</span>


<span style="font-family: Lucida Console,Monaco,monospace;">FastExp=z-int(z/N)*N 'MOD(temp*x,N)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">goto [ExitFunction]</span>


<span style="font-family: Lucida Console,Monaco,monospace;">end if</span>


<span style="font-family: Lucida Console,Monaco,monospace;">[ExitFunction]</span>

<span style="font-family: Lucida Console,Monaco,monospace;">end function</span>


<span style="font-family: Lucida Console,Monaco,monospace;">Function PowMod( a, n, m)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">r = 1</span>


<span style="font-family: Lucida Console,Monaco,monospace;">while (n > 0)</span>

<span style="font-family: Lucida Console,Monaco,monospace;">if (n AND 1) then '/* test lowest bit */</span>


<span style="font-family: Lucida Console,Monaco,monospace;">r = MulMod(r, a, m) '/* multiply (mod m) */</span>


<span style="font-family: Lucida Console,Monaco,monospace;">end if</span>


<span style="font-family: Lucida Console,Monaco,monospace;">a = MulMod(a, a, m) '/* square */</span>


<span style="font-family: Lucida Console,Monaco,monospace;">n = int(n/2) '/* divided by 2 */</span>


<span style="font-family: Lucida Console,Monaco,monospace;">wend</span>

<span style="font-family: Lucida Console,Monaco,monospace;">PowMod=r</span>


<span style="font-family: Lucida Console,Monaco,monospace;">End Function</span>


<span style="font-family: Lucida Console,Monaco,monospace;">Function MulMod( a, b, m)</span>

<span style="font-family: Lucida Console,Monaco,monospace;">if (m = 0) then</span>


<span style="font-family: Lucida Console,Monaco,monospace;">MulMod=a * b ' /* (mod 0) */</span>


<span style="font-family: Lucida Console,Monaco,monospace;">Else</span>


<span style="font-family: Lucida Console,Monaco,monospace;">r = 0</span>


<span style="font-family: Lucida Console,Monaco,monospace;">while (a > 0)</span>

<span style="font-family: Lucida Console,Monaco,monospace;">if (a AND 1) then ' /* test lowest bit */</span>


<span style="font-family: Lucida Console,Monaco,monospace;">r= r+b</span>


<span style="font-family: Lucida Console,Monaco,monospace;">if (r > m) then</span>


<span style="font-family: Lucida Console,Monaco,monospace;">r = (r MOD m) ' /* add (mod m) */</span>


<span style="font-family: Lucida Console,Monaco,monospace;">end if</span>


<span style="font-family: Lucida Console,Monaco,monospace;">end if</span>


<span style="font-family: Lucida Console,Monaco,monospace;">a = int(a/2) ' /* divided by 2 */</span>


<span style="font-family: Lucida Console,Monaco,monospace;">b = b*2</span>


<span style="font-family: Lucida Console,Monaco,monospace;">if (b > m) then</span>


<span style="font-family: Lucida Console,Monaco,monospace;">b = (b MOD m) ' /* times 2 (mod m) */</span>


<span style="font-family: Lucida Console,Monaco,monospace;">end if</span>


<span style="font-family: Lucida Console,Monaco,monospace;">wend</span>

<span style="font-family: Lucida Console,Monaco,monospace;">MulMod=r</span>

<span style="font-family: Lucida Console,Monaco,monospace;">End If</span>


<span style="font-family: Lucida Console,Monaco,monospace;">End Function</span>


<span style="font-family: Lucida Console,Monaco,monospace;">Function rand( x )</span>


<span style="font-family: Lucida Console,Monaco,monospace;">x=x*5</span>


<span style="font-family: Lucida Console,Monaco,monospace;">x=x+1</span>


<span style="font-family: Lucida Console,Monaco,monospace;">rand=x</span>


<span style="font-family: Lucida Console,Monaco,monospace;">End Function</span>

<span style="font-family: Lucida Console,Monaco,monospace;">Function MillerRabin(n,b)</span>

<span style="font-family: Lucida Console,Monaco,monospace;">'print "Miller Rabin"</span>


<span style="font-family: Lucida Console,Monaco,monospace;">'t1=time$("ms")</span>

<span style="font-family: Lucida Console,Monaco,monospace;">if IsEven(n) then</span>


<span style="font-family: Lucida Console,Monaco,monospace;">MillerRabin=1</span>


<span style="font-family: Lucida Console,Monaco,monospace;">goto [ExtFn]</span>


<span style="font-family: Lucida Console,Monaco,monospace;">end if</span>

<span style="font-family: Lucida Console,Monaco,monospace;">i=0</span>


<span style="font-family: Lucida Console,Monaco,monospace;">[Loop]</span>


<span style="font-family: Lucida Console,Monaco,monospace;">i=i+1</span>


<span style="font-family: Lucida Console,Monaco,monospace;">if i>1000 then goto [Continue]</span>


<span style="font-family: Lucida Console,Monaco,monospace;">if ( n MOD SmallPrimes(i) )=0 then</span>


<span style="font-family: Lucida Console,Monaco,monospace;">MillerRabin=1</span>


<span style="font-family: Lucida Console,Monaco,monospace;">goto [ExtFn]</span>


<span style="font-family: Lucida Console,Monaco,monospace;">end if</span>


<span style="font-family: Lucida Console,Monaco,monospace;">goto [Loop]</span>


<span style="font-family: Lucida Console,Monaco,monospace;">[Continue]</span>

<span style="font-family: Lucida Console,Monaco,monospace;">if GCD(n,b)>1 then</span>


<span style="font-family: Lucida Console,Monaco,monospace;">MillerRabin=1</span>


<span style="font-family: Lucida Console,Monaco,monospace;">goto [ExtFn]</span>


<span style="font-family: Lucida Console,Monaco,monospace;">end if</span>

<span style="font-family: Lucida Console,Monaco,monospace;">q=n-1</span>

<span style="font-family: Lucida Console,Monaco,monospace;">t=0</span>

<span style="font-family: Lucida Console,Monaco,monospace;">while (int(q) AND 1 )=0</span>


<span style="font-family: Lucida Console,Monaco,monospace;">t=t+1</span>


<span style="font-family: Lucida Console,Monaco,monospace;">q=int(q/2)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">wend</span>


<span style="font-family: Lucida Console,Monaco,monospace;">r=FastExp(b, q, n)</span>

<span style="font-family: Lucida Console,Monaco,monospace;">if ( r <> 1 ) then</span>


<span style="font-family: Lucida Console,Monaco,monospace;">e=0</span>


<span style="font-family: Lucida Console,Monaco,monospace;">while ( e < (t-1) )</span>


<span style="font-family: Lucida Console,Monaco,monospace;">if ( r <> (n-1) ) then</span>


<span style="font-family: Lucida Console,Monaco,monospace;">r=FastExp(r, r, n)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">else</span>


<span style="font-family: Lucida Console,Monaco,monospace;">Exit While</span>


<span style="font-family: Lucida Console,Monaco,monospace;">end if</span>

<span style="font-family: Lucida Console,Monaco,monospace;">e=e+1</span>


<span style="font-family: Lucida Console,Monaco,monospace;">wend</span>


<span style="font-family: Lucida Console,Monaco,monospace;">[ExitLoop]</span>


<span style="font-family: Lucida Console,Monaco,monospace;">end if</span>


<span style="font-family: Lucida Console,Monaco,monospace;">if ( (r=1) OR (r=(n-1)) ) then</span>


<span style="font-family: Lucida Console,Monaco,monospace;">MillerRabin=0</span>


<span style="font-family: Lucida Console,Monaco,monospace;">else</span>


<span style="font-family: Lucida Console,Monaco,monospace;">MillerRabin=1</span>


<span style="font-family: Lucida Console,Monaco,monospace;">end if</span>

<span style="font-family: Lucida Console,Monaco,monospace;">[ExtFn]</span>

<span style="font-family: Lucida Console,Monaco,monospace;">End Function</span>


<span style="font-family: Lucida Console,Monaco,monospace;">Function Random( Digits )</span>


<span style="font-family: Lucida Console,Monaco,monospace;">' x=INT(RND(1)*TIME$("ms")*9912812828239112219) * INT(RND(1)*9912166437771297131373) * INT(RND(1)*71777126181142123) * INT(RND(1)*7119119672435637981) * INT(RND(1)*991216643912127789) * INT(RND(1)*79126181142123) * INT(RND(1)*711911128376332417) * INT(RND(1)*991216643123129) * INT(RND(1)*79126181142123) * INT(RND(1)*6661912727312317)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">' Random=INT(VAL(RIGHT$(STR$(x,1)))</span>

<span style="font-family: Lucida Console,Monaco,monospace;">x=INT(RND(1)*TIME$("ms")*9912812828239112219) * INT(RND(1)*9912166437771297131373) * INT(RND(1)*71777126181142123) * INT(RND(1)*7119119672435637981) * INT(RND(1)*991216643912127789) * INT(RND(1)*79126181142123) * INT(RND(1)*711911128376332417)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">x=x*x+x+41</span>

<span style="font-family: Lucida Console,Monaco,monospace;">y$=mid$(str$(x),INT(rnd(1)*30+1),Digits )</span>

<span style="font-family: Lucida Console,Monaco,monospace;">ldg=val(right$(y$,1))</span>


<span style="font-family: Lucida Console,Monaco,monospace;">z=0</span>


<span style="font-family: Lucida Console,Monaco,monospace;">if ldg=0 then z=1</span>


<span style="font-family: Lucida Console,Monaco,monospace;">if ldg=2 then z=1</span>


<span style="font-family: Lucida Console,Monaco,monospace;">if ldg=4 then z=1</span>


<span style="font-family: Lucida Console,Monaco,monospace;">if ldg=6 then z=1</span>


<span style="font-family: Lucida Console,Monaco,monospace;">if ldg=8 then z=1</span>

<span style="font-family: Lucida Console,Monaco,monospace;">Random=val(y$)+z</span>

<span style="font-family: Lucida Console,Monaco,monospace;">End Function</span>

<span style="font-family: Lucida Console,Monaco,monospace;">FUNCTION TEXT2DEC( x$ )</span>


<span style="font-family: Lucida Console,Monaco,monospace;">a$=UPPER$(x$)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">y$=""</span>


<span style="font-family: Lucida Console,Monaco,monospace;">FOR i=1 TO LEN(a$)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">y$=y$+STR$(ASC(MID$(a$,i,1)))</span>


<span style="font-family: Lucida Console,Monaco,monospace;">NEXT</span>


<span style="font-family: Lucida Console,Monaco,monospace;">TEXT2DEC=VAL(y$)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">END FUNCTION</span>


<span style="font-family: Lucida Console,Monaco,monospace;">FUNCTION DEC2TEXT$( n )</span>


<span style="font-family: Lucida Console,Monaco,monospace;">a$=STR$(n)</span>


<span style="font-family: Lucida Console,Monaco,monospace;">y$=""</span>


<span style="font-family: Lucida Console,Monaco,monospace;">FOR i=1 TO LEN(a$)-1 STEP 2</span>


<span style="font-family: Lucida Console,Monaco,monospace;">m=VAL(MID$(a$,i,2))</span>


<span style="font-family: Lucida Console,Monaco,monospace;">if m>30 and m<99 then y$=y$+CHR$(m) else y$=y$+"."</span>


<span style="font-family: Lucida Console,Monaco,monospace;">NEXT</span>


<span style="font-family: Lucida Console,Monaco,monospace;">DEC2TEXT$=y$</span>


<span style="font-family: Lucida Console,Monaco,monospace;">END FUNCTION</span>


<span style="font-size: 12px;"> </span> ||
[[code]]


[[code]]
</span>