From: adacrypt on

Code point range for Bali in Unicode is 1B00 .. 1B7F.

In denary the code-point range is 6912 .. 7039.

=> There are, (7039 – 6912) + 1 (incl) elements in the character set
for this country

Highest code point (in terms of information character representation)
= 7039
Lowest code point = 6912.

Lowest useful value of N to catch all pairings of (Plaintext + Key) =
7039 +1 = 7040

Minimum useful value that X may take is the value of X that produces a
range of just 1 only modulus ‘N’.

So, “ 2(X + 6912) – (X +7040) = 0 => 1 (NB. 0 => 1 when both ends are
inclusive)

The lowest value of X (minimum X) is the root of this equation (the
value of X that makes it equal to 0).

2X + 13824 –X – 7040 = 0
X + 6784 = 0
X = - 6784.

Suppose a key length of 12500 is needed so as to be able to encrypt
messages of that length in one go,

Increment X by that number on top of the minimum X (- 6784) + Balinese
cipher constants of 7040 and 6912 .

Then,

Lower bound of N = (-6784 + 7040 + 12500) = 12756
Upper bound = 2 ( -6784 + 12500 + 6912) = 25256
Max Message length = Key length = 25256 – 12756 = 12500

Any message less than and within the range 1 .. 12500 for N is
automatically covered by this same key size of course.

Worked Example,

Alice is the administrator of an office secure network in New York.
She has set the scope of her infrastructure encryption scheme for
Balinese at 12500 characters of message length capability. => she
wants to be able to send messages this long if needs be.
Messages for encryption in any language are presented to her as
strings of code points.

For Balinese,
Starting value of X = 12500 +(-6784) = 5716

Lower Bound of N = = 5716 + 7040 = 12756
Upper Bound of N = 2(5716 + 6912) = 25256
So, the range of N is 12756 … 25256 inclusive (12756<= N <=25256)
Check; 25256 – 12756 = 12500 (the key length range is ok)

The encryption algorithm is,
[(PlainText + X) + (Key + X)(Mod N) = a residue (modulo N)
Cipher text = residue – N

Let us say that Alice wants to encrypt the plaintext in Balinese with
code point 7000
Let us say also that the instantaneous key she is using is the
Balinese code point 6950
Let us say also that the instantaneous modulus N she is using is 19356
(i.e. within the calculated range of N 12756 .. 25256))

Reminder X = 5716, N = 19356

[(7000 + 5716) + (6950 + 5716) (Mod 19356) = 25382 (Mod) 19356 = 6026
cipher text = residue – N => 6026 – 19356 = -13330
In practice this is made positive => cipher text = 13330
-----------------------
The decryption algorithm is,
Plaintext (as message text now) = Cipher text + 2N – 2X - Key

Cipher text = 13330 x (-1) = - 13330

Then,
Plaintext (as message text) = - 13330 + (2 x 19356) – (2 x 5716) –
6950 = 7000

This value is correct and is now decoded back into its character value
in Balinese.

Comment. There are 128 x 128 x 12500 possible permutations of
(Plaintext, Key, Modulus N) as encryption transformations in this
Alice’s crypto scheme in Balinese i.e. a possibility space of
204800000 for whatever that may be worth.

(large possibility spaces often mean nothing in cryptography – it is
not relevant here either).

The reader might like to try encrypting a few of your own characters.

This is the general drill for all of the Unicode languages.

Clearly, when all of these parameters are embedded in a computer
program it all becomes very easy once the basic design algorithm is
understood. - adacrypt

(Bali is an island in the Indonesian Republic).

From: Globemaker on
On Dec 31, 2:10 am, adacrypt <austin.oby...(a)hotmail.com> wrote:
> Code point range for Bali in Unicode is 1B00 .. 1B7F.
>
> In denary the code-point range is 6912 .. 7039.
>
> => There are, (7039 – 6912) + 1 (incl) elements in the character set
> for this country
>
> Highest code point  (in terms of information character representation)
> = 7039
..
..
..
> The reader might like to try encrypting a few of your own characters.
>
> This is the general drill for all of the Unicode languages.
>
> Clearly, when all of these parameters are embedded in a computer
> program it all becomes very easy once the basic design algorithm is
> understood. - adacrypt


Hello adacrypt,
Can you post some Balinese plaintext and corresponding cipertext on
sci.crypt ?
This will demonstrate the practicality and strangeness of the
cryptography.
I tried to post Greek Unicode ciphertext on sci.crypt, but it came out
as numbers.
GlobeMaker
From: adacrypt on
On Dec 31 2009, 10:11 pm, Globemaker <alanfolms...(a)cabanova.com>
wrote:
> On Dec 31, 2:10 am, adacrypt <austin.oby...(a)hotmail.com> wrote:> Code point range for Bali in Unicode is 1B00 .. 1B7F.
>
> > In denary the code-point range is 6912 .. 7039.
>
> > => There are, (7039 – 6912) + 1 (incl) elements in the character set
> > for this country
>
> > Highest code point  (in terms of information character representation)
> > = 7039
>
> .
> .
> .
>
> > The reader might like to try encrypting a few of your own characters.
>
> > This is the general drill for all of the Unicode languages.
>
> > Clearly, when all of these parameters are embedded in a computer
> > program it all becomes very easy once the basic design algorithm is
> > understood. - adacrypt
>
> Hello adacrypt,
> Can you post some Balinese plaintext and corresponding cipertext on
> sci.crypt ?
> This will demonstrate the practicality and strangeness of the
> cryptography.
> I tried to post Greek Unicode ciphertext on sci.crypt, but it came out
> as numbers.
> GlobeMaker

Hi,
I dont think I could do that - the nearest is to use a Microsoft
Windows simulated key board (I'm using Windows) at my end but nothing
is guaranteed at the other end - frankly its beyond my ken - that is
why I think codepoint presentation may be a solution - it may not be
the only solution as far as I can see at present - Wait a minute - it
occurs to me that a solution my be possible by using visual basic to
encrypt with and then having more generous access to the key board
simulating facilitating in microsoft - needs experimenting - a
surrogate method of carrying Greek might also be possible -
Interesting - A very Happy New Year - adacrypt
From: adacrypt on
On Dec 31 2009, 10:11 pm, Globemaker <alanfolms...(a)cabanova.com>
wrote:
> On Dec 31, 2:10 am, adacrypt <austin.oby...(a)hotmail.com> wrote:> Code point range for Bali in Unicode is 1B00 .. 1B7F.
>
> > In denary the code-point range is 6912 .. 7039.
>
> > => There are, (7039 – 6912) + 1 (incl) elements in the character set
> > for this country
>
> > Highest code point  (in terms of information character representation)
> > = 7039
>
> .
> .
> .
>
> > The reader might like to try encrypting a few of your own characters.
>
> > This is the general drill for all of the Unicode languages.
>
> > Clearly, when all of these parameters are embedded in a computer
> > program it all becomes very easy once the basic design algorithm is
> > understood. - adacrypt
>
> Hello adacrypt,
> Can you post some Balinese plaintext and corresponding cipertext on
> sci.crypt ?
> This will demonstrate the practicality and strangeness of the
> cryptography.
> I tried to post Greek Unicode ciphertext on sci.crypt, but it came out
> as numbers.
> GlobeMaker

Just remembered - all the most recently reviewed programming language
compilers come with a full library of Unicode languages pre-installed
as enumerated data types that enable the screening of the character
sets - I have no experience of doing that yet but it can be done in C+
+ and Ada -2005 - in that case if the user is using the mutual data
base concept that my cryptography is promoting then the decrypted
message would be screened in the parent plaintext language - but again
you have to have operatives who can work on it - print and archive it
- isn't that supposed to be the purpose of Unicode -i.e. to make it
posble to communicate by numbers either as secured or unsecure
excahnges of information - anything else is retrogressive ? - adacrypt
From: Globemaker on
On Jan 1, 12:44 am, adacrypt

> Just remembered - all the most recently reviewed programming language
> compilers come with a full library of Unicode languages pre-installed

Hello adacrypt,
I have already studied Unicode, so here is how I take English Unicode
in a text file and make a Greek file in .rtf rich text format for
Microsoft Wordpad. The program is in the Perl language

# baffle_63.pl August 7, 2009 Alan Folmsbee, Kona, Hawaii
# .RTF Spec requires decimal Unicode in Wordpad Rich
# Text Format, after backslash u
# Unicode spec has Greek tables in hex so convert to decimal for .rtf
use strict;
use warnings;

my $paragraph = "C:/import/writings/greek3/english_50.txt";
my $code_out = "C:/import/writings/greek3/greek_63.rtf";
open(ENGLISH, "$paragraph") or die "Can't open $paragraph: $!";
open(GREEK, ">$code_out") or die "Can't open $code_out: $!";

# 26 small letters assigned for Unicode Greek version of English
sentence.
# The letters c and j are left as in English so the 24 Greek letters
have 2 added.
my @greek_small_letters = (945, 946, 99, 948, 949, 966, 947, 951, 953,
106,
954, 955, 956, 957, 959, 960, 952, 961, 963, 964, 965, 968, 969, 967,
958, 950);
# The RTF header is sent to the file.
print GREEK "\{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033\{\\fonttbl
\{\\f0\\froman\\fcharset0 Times New Roman\;\}\{\\f1\\fswiss\\fcharset0
Arial\;\}\}
\{\\\*\\generator alan Msftedit 5\.41\.15\.1515\;\}\\viewkind4\\uc1\
\pard\\sb100\\sa100\\f0\\fs24";
my $k;
my $offset;
for ($k=0; $k<26; $k++)
{
print GREEK "\\"."u".$greek_small_letters[$k].",";
}
# Next, show capital letters numbered 32 less than small letters
for ($k=0; $k<26; $k++)
{
$offset = $greek_small_letters[$k] - 32;
print GREEK "\\"."u".$offset.",";
}

print GREEK "\\"."line";

my $line;
my $size;
my @english_sentence;
my $letter;
my $greek_letter;
my $flag_match = 0;

while ($line = <ENGLISH>)
{
print "\n$line";
chomp $line;
@english_sentence = split (//,$line);
$size = @english_sentence;
for ($letter=0; $letter<$size; $letter++)
{
$flag_match = 0;
for ($k=0; $k<26; $k++)
{
# small letters
if ($flag_match !=1)
{
if (ord($english_sentence[$letter]) == ($k+97))
{
$greek_letter = $greek_small_letters[$k];
$flag_match = 1;
}
else
{
$greek_letter = ord($english_sentence[$letter]);
}
}
# capital letters
if ($flag_match !=1)
{
if (ord($english_sentence[$letter]) == ($k+65))
{
$greek_letter = $greek_small_letters[$k] - 32;
$flag_match = 1;
}
else
{
$greek_letter = ord($english_sentence[$letter]);
}
}

}
# handle newline code, the invisible code used as /line or /par
in .rtf
if ($letter == ($size-1))
{
print GREEK "\\"."u".$greek_letter."\\"."line";
}
else
{
print GREEK "\\"."u".$greek_letter.",";;
}
}
}
print "\nThe size of the last sentence was $size characters";
print GREEK "\}";
close (ENGLISH);
close (GREEK);
exit();