Triangulation Cryptography - Statistical Cryptanalysis Attack.

75 views
Skip to first unread message

austin obyrne

unread,
Sep 17, 2021, 12:07:36 PMSep 17
to
Given that the ciphertext is comprised of groups of
3 x seven-digit integers. It follows that the sample
space is of the order of (9 factorial)^21 in any attack.
This is 362880^21- an enormous number that can even
be made emuch larger if needs be.

The expectation of repeats in a string of 10000 items
of vector ciphertext has been explored and no repeat
was found.

Collecting enough repeats to submit to the sample
space of 9!^21 hoping to get some meaningful frequency
and some assocoiated probability that could assigned to
some character in ASCII would be a useless exercise.

The probability index would be useless. It wouldn't even
come on scale. It would in fact be tantamount to another
brute force program that would fail for the same reason as before.

Comment:

Trying out old defunct methods of scalar cryptography as
some readers are doing won't work in vector cryptography.

Keep rowing.

Austin O’Byrne.

Leo

unread,
Sep 17, 2021, 12:17:12 PMSep 17
to
Is there a public implementation of this cipher available, so we can
generate some plaintext / ciphertext pairs to analyze it better?

Saying traditional methods won't work is one thing, but letting people
try and fail is how you make claims.

--
Leo

Richard Heathfield

unread,
Sep 17, 2021, 12:23:49 PMSep 17
to
On 17/09/2021 17:07, austin obyrne wrote:
> Given that the ciphertext is comprised of groups of
> 3 x seven-digit integers. It follows that the sample
> space is of the order of (9 factorial)^21 in any attack.
> This is 362880^21- an enormous number that can even
> be made emuch larger if needs be.

Don't be too impressed by big numbers. We polished off bigger numbers
than that in Shuttlepads.


> The expectation of repeats in a string of 10000 items
> of vector ciphertext has been explored and no repeat
> was found.
>
> Collecting enough repeats to submit to the sample
> space of 9!^21 hoping to get some meaningful frequency
> and some assocoiated probability that could assigned to
> some character in ASCII would be a useless exercise.
>
> The probability index would be useless. It wouldn't even
> come on scale. It would in fact be tantamount to another
> brute force program that would fail for the same reason as before.

You said that sort of thing about ShuttlePads. Which I seem to recall
fell rather easily.

>
> Comment:
>
> Trying out old defunct methods of scalar cryptography as
> some readers are doing won't work in vector cryptography.

They have already been shown to work.

> Keep rowing.

Until you learn from previous breaks, you're just going to keep on
rowing the same old river.


--
Richard Heathfield
Email: rjh at cpax dot org dot uk
"Usenet is a strange place" - dmr 29 July 1999
Sig line 4 vacant - apply within

Richard Heathfield

unread,
Sep 17, 2021, 12:34:51 PMSep 17
to
This raised a smile. You are now in broadly the same place I was a few
years ago.

MM tried to save me some effort by saying he'd already broken AOB's
stuff. He hadn't kept hold of the break, so although of course I
believed him I decided to try to break it for myself, which I did in
full view of sci.crypt. But... I haven't bothered to keep hold of the break.

And then along came you. When you break AOB's stuff, keep hold of the
break. :-)

austin obyrne

unread,
Sep 17, 2021, 12:36:03 PMSep 17
to
Hi Leo,

No unfortunately , I have no had any exposure whatever.
At this stage I need some support beacuse although I have
great confidence in this cipher it needs backing from the
establishment. I baulk at submitting anything to the AMS
(MM has worked on a sample but I discontinued with it
because I saw my stuff being carved up. (as a professional
standard submission needs to be) and feared having it
trivialised by the establishment). No fault of MM.

I'm even becoming rusty on my own programming work
and must start refreshing my Ada-95 source code .

AOB

Max

unread,
Sep 17, 2021, 12:44:50 PMSep 17
to
On 17.09.21 18:07, austin obyrne wrote:
> Given that the ciphertext is comprised of groups of
> 3 x seven-digit integers. It follows that the sample
> space is of the order of (9 factorial)^21 in any attack.
> This is 362880^21- an enormous number that can even
> be made emuch larger if needs be.

9 factorial? I'd like to see that math. Is there any point in your
cipher where each number from 1 to 9 has to appear exactly once? I hope
all values are independent from one another.

>
> The expectation of repeats in a string of 10000 items
> of vector ciphertext has been explored and no repeat
> was found.
>
> Collecting enough repeats to submit to the sample
> space of 9!^21 hoping to get some meaningful frequency
> and some assocoiated probability that could assigned to
> some character in ASCII would be a useless exercise.
>
> The probability index would be useless. It wouldn't even
> come on scale. It would in fact be tantamount to another
> brute force program that would fail for the same reason as before.
>
> Comment:
>
> Trying out old defunct methods of scalar cryptography as
> some readers are doing won't work in vector cryptography.

This has nothing to do with cryptography. As long as you work with
integers (which you do), you can't escape combinatorics.

austin obyrne

unread,
Sep 17, 2021, 1:11:54 PMSep 17
to
Hi Max,

As I see I don't think combinatorics is valid as a method in vector cryptography
.- OK in scalar data that have magnitude but not with vectors ( that have direction as well as magnitude).

AOB

Max

unread,
Sep 17, 2021, 1:32:18 PMSep 17
to
On 17.09.21 19:11, austin obyrne wrote:
[..]
>
> As I see I don't think combinatorics is valid as a method in vector cryptography
> .- OK in scalar data that have magnitude but not with vectors ( that have direction as well as magnitude).

You don't use "directions". They are, at best, an "emergent property" of
your vectors. Your vectors are sufficiently defined by their x, y and
z-values. As these values are integers, I can easily map them / encode
them to a single integer (143, 752, 12) simply becomes 143752012.

Still wondering, where do the 9! come from? I think, this is wrong.


>
> AOB
>

Cheers,

Max

Richard Heathfield

unread,
Sep 17, 2021, 1:43:55 PMSep 17
to
On 17/09/2021 18:32, Max wrote:
> On 17.09.21 19:11, austin obyrne wrote:
> [..]
>>
>> As I see I don't think combinatorics is valid as a  method in vector
>> cryptography
>> .- OK in scalar data that have magnitude but not with vectors ( that
>> have direction as well as magnitude).
>
> You don't use "directions". They are, at best, an "emergent property" of
> your vectors.

You are of course correct, but you will never convince AOB of this. It's
"Eve thinking", and AOB doesn't understand Eve thinking.

austin obyrne

unread,
Sep 17, 2021, 2:04:28 PMSep 17
to
Each column (of the 7) can be filled in 9! ways i.e. nine factorial ways.
(The possibility space must consider filling all 9 places in every possible way)
There are 7 'columns' => 9^7
There are 3 sets of 7 integers as coefficients of i, j, k => (9!^7) ^3 = 9! ^ 21
in words - nine factorial to the power of twenty one.

AOB

Max

unread,
Sep 17, 2021, 2:15:02 PMSep 17
to
I asked, where the 9! comes from, not the 21. Why do you think, each
column can be filled in 9! ways?
If we're talking digits, then each spot in a 7-digit-number can be
filled in 10 ways. So, there are 10^7 possible combinations.

>
> AOB
>

austin obyrne

unread,
Sep 17, 2021, 2:23:52 PMSep 17
to
On Friday, 17 September 2021 at 18:32:18 UTC+1, Max wrote:
Doesn't gel !

This doesn't apply to physical vectors that represents physical quantities
like velocity and displacement.

You might be confusing it with ' n-tuples ' that don't have direction per se
that can be manipilated in combinatrics.- your reference to an 'emergent proprty' is normal in that case.

AOB

austin obyrne

unread,
Sep 17, 2021, 2:35:31 PMSep 17
to
Zero (0) doesn't count anywhere n the first column= > 9 only ways
- Doesn't happen in my work but you may have a point to argue in other cases
.- Better settle for 9 all round - hence 9! - agreed ?

AOB

Max

unread,
Sep 17, 2021, 2:49:04 PMSep 17
to
Yes, it does. Or do you only allow for vector coefficients greater or
equal to 100? 7 would be 007. Same with all the following digits. 700 is
a valid value, too.


> - Doesn't happen in my work but you may have a point to argue in other cases
> .- Better settle for 9 all round - hence 9! - agreed ?
No. Even if there were 9 possible values per digit, that would be
9*9*9*...*9 aka 9^n. 9! would be 9*8*7*6*5*4*3*2*1, only applicable, if
each digit in a 9-digit-number would have to be unique and also not
allowed to be 0.


>
> AOB
>

austin obyrne

unread,
Sep 17, 2021, 3:09:44 PMSep 17
to
This is beyond argument - it is a standard result => n places can be filled in n! ways - I've been using this on trust for many years

In our case these is no point in filling a place in the first column.with zero - okay in all the others of course => total = ( 9! + 10!^6) ^3 in a single ciphertext item comprised of 3 x 7digit integers. - please check.

Aob

Max

unread,
Sep 17, 2021, 3:30:48 PMSep 17
to
Yes, there is. If you want to express a k digit number with n digits and
n > k > 0 , you have to fill up the left n-k digits with zeros. There is
no other way to express 7 as a 3-digit-number than 007.

>
> Aob
>

Richard Heathfield

unread,
Sep 17, 2021, 3:42:55 PMSep 17
to
No, because you're wrong.

> - it is a standard result => n places can be filled in n! ways - I've been using this on trust for many years

Instead of taking it on trust, think about it. n! is the number of
unique ways you can order n *distinct* objects. The first object can be
any of n, the next can't be the one you already picked, so it can be any
of (n-1), the next any of (n-2), all the way down to 1 for the nth
object. That's where the factorial comes from.

But in a vector like 221 319 207 the objects are not unique. 1 appears
twice and 2 appears 3 times. If any digit can appear in any place, then
there are n (ten) possible choices for each place, thus 10^9 ways of
arranging ten digits. You can ditch a bunch for banning leading 0s if
you like but it's still way more than 9!

Max

unread,
Sep 17, 2021, 4:25:20 PMSep 17
to
On 17.09.21 21:42, Richard Heathfield wrote:
<snip>
>

Is it just me or has the quality of Friday evenings gone down?

BtW, if you haven't, you might enjoy the article "What to do when the
trisector comes" that I linked a while ago.

Cheers,

Max

Chris M. Thomasson

unread,
Sep 17, 2021, 4:39:14 PMSep 17
to
Sorry for butting in, but what about:

124 = 1 + 2 + 4 = 7

;^)

Max

unread,
Sep 17, 2021, 4:44:22 PMSep 17
to
On 17.09.21 22:39, Chris M. Thomasson wrote:
[...]
>>
>> Yes, there is. If you want to express a k digit number with n digits
>> and n > k > 0 , you have to fill up the left n-k digits with zeros.
>> There is no other way to express 7 as a 3-digit-number than 007.
>
> Sorry for butting in, but what about:

Why sorry? Good to see you.

>
> 124 = 1 + 2 + 4 = 7

That is indeed a way to represent 7 as a 3 digit number. But first, that
is no decimal expression and second, if you use this method, the biggest
3-digit-number you can represent is 999 = 9+9+9 = 27. That's not very
efficient amiright?

>
> ;^)
>

Rich

unread,
Sep 17, 2021, 4:46:53 PMSep 17
to
Max <maxt...@gmx.net> wrote:
> On 17.09.21 18:07, austin obyrne wrote:
>> Given that the ciphertext is comprised of groups of 3 x seven-digit
>> integers. It follows that the sample space is of the order of (9
>> factorial)^21 in any attack. This is 362880^21- an enormous number
>> that can even be made emuch larger if needs be.
>
> 9 factorial? I'd like to see that math. Is there any point in your
> cipher where each number from 1 to 9 has to appear exactly once? I
> hope all values are independent from one another.

As with most things that Austin posts, his math is comically wrong.

So, now it is "seven digit integers". Well, "seven digit integers" can
represent 10,000,000 possible numbers.

Now, I switch to some "bc" work to do the math.

Three "seven digit" integers then are:

10000000*10000000*10000000*3
3000000000000000000000

Possible combinations.

Now, define a factorial function (this is direct from the bc manpage):

define f (x) {
if (x <= 1) return (1);
return (f(x-1) * x);
}

And then compute (9 factorial)^21:

f(9)^21
56888396215740878371932195299255658329404794388858314473940721862532\
2895127819048683463338098688000000000000000000000

Hmm, that number is significantly longer than the first. How much
longer (at this size, I'm just letting BC do integer arithmetic, with
numbers this big, no one cares if the answer has a decimal value)?

(f(9)^21)/(10000000*10000000*10000000*3)
18962798738580292790644065099751886109801598129619438157980240620844\
0965042606349561154446032896

So Austin's math is wrong by a factor of 189,627,987,385,802,927,906,\
440,650,997,518,861,098,015,981,296,194,381,579,802,406,208,440,965,\
042,606,349,561,154,446,032,896 times.


wizzofozz

unread,
Sep 17, 2021, 4:48:00 PMSep 17
to
Op 17-9-2021 om 21:09 schreef austin obyrne:
>>>
> This is beyond argument - it is a standard result => n places can be filled in n! ways - I've been using this on trust for many years
>

Max and Richard already answered this, but you can experiment with small
numbers.
According to you, 1 place can be filled in 1! (=1) ways.
But when using digits, I can fill it in 10 ways, namely 0,1,2,3,4, .. ,9.
If I use hexdigits, I can fill it in 16 ways: 0,1,2,3,..,9,a,b,..,f.

According to you, 2 places can be filled 2! (=2) ways.
But when using digits, I can fill it in 100 ways, namely 00,01,02,03,04,
..,10,11,12, .. ,99.
If I use hexdigits, I can fill it in 256 ways:
00,01,02,03,..,09,0a,0b,..,0f,10,11,..,1a,..,1f,..,ff.

So, the number of ways you can fill n places is not only dependent on
how many places you have to fill, but also the number of symbols you can
use to fill them with.
So, if you have n places and m items, then
with repetition: m**n
without repetition: m!/(m-n)!

As an example for the "without repetition" formula as, with say 10
digits and 3 places to fill,
10*9*8 == 10*9*8*7*6*5*4*3*2*1/7*6*5*4*3*2*1 == 10!/7! == 10!/(10-3)!

If the order doesn't matter you can divide once more by 3! (because you
have that many orderings of the 3 choosen items) in the above example,
so m!/(n!(m-n)!).

Ozz


Rich

unread,
Sep 17, 2021, 4:50:17 PMSep 17
to
Austin really just has a scalar algorithm. He just works with groups
of three scalar numbers. The only "vector" is within his own mind
because a three axis point can be considered to define the "tip" of a
vector if one presumes some starting point (such as his common
'universal origin' start of 0,0,0).

Reality is he simply has scalar points, and performs scalar operations
on the scalar points, to produce scalar outputs. Vectors are just a
figment of his imagination.

Rich

unread,
Sep 17, 2021, 4:54:28 PMSep 17
to
Max <maxt...@gmx.net> wrote:
> On 17.09.21 20:04, austin obyrne wrote:
>> On Friday, 17 September 2021 at 18:32:18 UTC+1, Max wrote:
>>> On 17.09.21 19:11, austin obyrne wrote:
>>> [..]
>>>>
>>> Still wondering, where do the 9! come from? I think, this is wrong.
>>
>> Each column (of the 7) can be filled in 9! ways i.e. nine
>> factorial ways. (The possibility space must consider filling all 9
>> places in every possible way)
>> There are 7 'columns' => 9^7
>> There are 3 sets of 7 integers as coefficients of i, j, k => (9!^7)
>> ^3 = 9! ^ 21 in words - nine factorial to the power of twenty one.
>
> I asked, where the 9! comes from, not the 21. Why do you think,
> each column can be filled in 9! ways?
> If we're talking digits, then each spot in a 7-digit-number can be
> filled in 10 ways. So, there are 10^7 possible combinations.

Austin does not understand basic math.

Chris M. Thomasson

unread,
Sep 17, 2021, 4:55:18 PMSep 17
to
On 9/17/2021 1:44 PM, Max wrote:
> On 17.09.21 22:39, Chris M. Thomasson wrote:
> [...]
>>>
>>> Yes, there is. If you want to express a k digit number with n digits
>>> and n > k > 0 , you have to fill up the left n-k digits with zeros.
>>> There is no other way to express 7 as a 3-digit-number than 007.
>>
>> Sorry for butting in, but what about:
>
> Why sorry? Good to see you.

I am trying to get over my old habit of butting in and including some
reference to my own work. This pisses some people off on here. Hijack!?


>> 124 = 1 + 2 + 4 = 7
>
> That is indeed a way to represent 7 as a 3 digit number. But first, that
> is no decimal expression and second, if you use this method, the biggest
> 3-digit-number you can represent is 999 = 9+9+9 = 27. That's not very
> efficient amiright?

Not efficient at all. Its just a way, so to speak. Perhaps,

2*3+1, or 1*8-1, na still to verbose, and not very efficient. Actually,
this is making me think about partitions by:

https://en.wikipedia.org/wiki/Srinivasa_Ramanujan

https://en.wikipedia.org/wiki/Partition_(number_theory)


[...]

wizzofozz

unread,
Sep 17, 2021, 4:56:27 PMSep 17
to
Op 17-9-2021 om 22:25 schreef Max:
I read it, and enjoyed it.
The conclusions of how to deal with the trisectors was interesting
because of the parallels with the cryptographers in this group; if you
point out an error/flaw, they will come back with "fixes" until it gets
to complicated to find flaws (in your spare time) and they'll think they
"won".

Cheers,
Ozz

Chris M. Thomasson

unread,
Sep 17, 2021, 4:56:57 PMSep 17
to
Holy.... MOLY!

Rich

unread,
Sep 17, 2021, 4:57:26 PMSep 17
to
Max <maxt...@gmx.net> wrote:
> On 17.09.21 21:42, Richard Heathfield wrote:
> <snip>
>>
>
> Is it just me or has the quality of Friday evenings gone down?

No, you have just run up against Austin's missunderstanding of basic
math and statistics.

wizzofozz

unread,
Sep 17, 2021, 5:03:44 PMSep 17
to
Op 17-9-2021 om 22:57 schreef Rich:
And it's also "Call of Duty Vanguard open beta early access" weekend. :-)

Ozz

Max

unread,
Sep 17, 2021, 5:11:11 PMSep 17
to
Exactly! I also liked his solutions. If only I were able to stick to it...

>
> Cheers,
> Ozz
>

wizzofozz

unread,
Sep 17, 2021, 5:53:48 PMSep 17
to
Op 17-9-2021 om 23:11 schreef Max:
Yes, and by the way; no offense to Chris, Daniel etc. Nothing wrong with
discussing ideas as long as it is a two way interaction ;-)

Ozz


Max

unread,
Sep 17, 2021, 6:16:36 PMSep 17
to
Absolutely! I enjoy everybody who keeps this newsgroup going. I also
like talking with Austin. He has stamina. It's just frustrating
sometimes to get stuck with him.

>
> Ozz
>
>

austin obyrne

unread,
Sep 18, 2021, 3:12:36 AMSep 18
to
Hi Max,

Good of you to say that but nothing of what I say has been concocted
- it is all very well known mathematics - I have merely applied it to cryptography.
AOB

MM

unread,
Sep 18, 2021, 4:56:45 AMSep 18
to
On Saturday, 18 September 2021 at 08:12:36 UTC+1, austin obyrne wrote:
> Good of you to say that but nothing of what I say has been concocted
> - it is all very well known mathematics - I have merely applied it to cryptography.

The "vector factoring" is concocted.

As for the well-known mathematics, you make very many errors, and you seldom
correct them.

M
--

Richard Heathfield

unread,
Sep 18, 2021, 5:09:28 AMSep 18
to
On 18/09/2021 09:56, MM wrote:
> On Saturday, 18 September 2021 at 08:12:36 UTC+1, austin obyrne wrote:
>> Good of you to say that but nothing of what I say has been concocted
>> - it is all very well known mathematics - I have merely applied it to cryptography.
>
> The "vector factoring" is concocted.

Vector factorisation has been around for at least half a century. See,
for example, William H. Lawton's and Edward A. Sylvestre's 1971 article,
"Self modeling curve resolution", in Technometrics (an engineering
statistics journal).

MM

unread,
Sep 18, 2021, 5:25:52 AMSep 18
to
On Saturday, 18 September 2021 at 10:09:28 UTC+1, Richard Heathfield wrote:
> On 18/09/2021 09:56, MM wrote:
> > On Saturday, 18 September 2021 at 08:12:36 UTC+1, austin obyrne wrote:
> >> Good of you to say that but nothing of what I say has been concocted
> >> - it is all very well known mathematics - I have merely applied it to cryptography.
> >
> > The "vector factoring" is concocted.
> Vector factorisation has been around for at least half a century. See,
> for example, William H. Lawton's and Edward A. Sylvestre's 1971 article,
> "Self modeling curve resolution", in Technometrics (an engineering
> statistics journal).

Hmm. I expect AOB to not understand that paper at all. It will take me
some time to digest it, and I've done some simliar work myself (fitting
multiple functions to a single data set).

M
--

MM

unread,
Sep 18, 2021, 5:28:12 AMSep 18
to
On Friday, 17 September 2021 at 17:34:51 UTC+1, Richard Heathfield wrote:
> And then along came you. When you break AOB's stuff, keep hold of the
> break. :-)

How about this: https://groups.google.com/g/sci.crypt/c/GmJrmCW-dTI/m/6mboBBcvBQAJ

M
--

MM

unread,
Sep 18, 2021, 5:41:24 AMSep 18
to
On Friday, 17 September 2021 at 17:07:36 UTC+1, austin obyrne wrote:
> Given that the ciphertext is comprised of groups of
> 3 x seven-digit integers. It follows that the sample
> space is of the order of (9 factorial)^21 in any attack.
> This is 362880^21- an enormous number that can even
> be made emuch larger if needs be.

That only works if breaking your cipher is an all-or-nothing
job.

In reality it is not.

Removing the additive component is at most 3*(a few million)
brute-force attempts because of your easliy-recognisable
baked-in constants, your patently ridiculous "scrambling"
and the fact that there is no diffusion between the x, y & z
components. Detecting a successful attempt is easy; use
a sum-of-least-squares and look for a minimum standing
out like a beacon.

Reversing the remnant comes down to factoring the x, y and z
components, rejecting any non-common factors and working
the rest like a Sunday newspaper puzzle. Your crappy scrambling
can also be used to Eve's advantage here.

Aaaaand ...

https://groups.google.com/g/sci.crypt/c/GmJrmCW-dTI/m/6mboBBcvBQAJ

Bingo!

> Trying out old defunct methods of scalar cryptography as
> some readers are doing won't work in vector cryptography.

See above. Breaks are more persuasive than assurances.

> Keep rowing.

Your boat sank years ago.

M
--

Richard Heathfield

unread,
Sep 18, 2021, 5:55:08 AMSep 18
to
On 18/09/2021 10:41, MM wrote:
> On Friday, 17 September 2021 at 17:07:36 UTC+1, austin obyrne wrote:
>> Given that the ciphertext is comprised of groups of
>> 3 x seven-digit integers. It follows that the sample
>> space is of the order of (9 factorial)^21 in any attack.
>> This is 362880^21- an enormous number that can even
>> be made emuch larger if needs be.
>
> That only works if breaking your cipher is an all-or-nothing
> job.
>
> In reality it is not.
>
> Removing the additive component is at most 3*(a few million)
> brute-force attempts because of your easliy-recognisable
> baked-in constants, your patently ridiculous "scrambling"

I love that he's still using that "scrambling" when I explained years
ago how to unpick it.

MM

unread,
Sep 18, 2021, 6:34:10 AMSep 18
to
On Saturday, 18 September 2021 at 10:55:08 UTC+1, Richard Heathfield wrote:
> I love that he's still using that "scrambling" when I explained years
> ago how to unpick it.

He made a characteristically half-arsed attempt at replacing it with
Fisher-Yates, but gave up at the first hurdle.

AOB - when you claim that your scrambling can produce N! permutations;
it cannot. It has a pattern that Eve is DELIGHTED to exploit.

M
--

Rich

unread,
Sep 18, 2021, 8:26:07 AMSep 18
to
MM <mrvm...@gmail.com> wrote:
> On Saturday, 18 September 2021 at 10:55:08 UTC+1, Richard Heathfield wrote:
>> I love that he's still using that "scrambling" when I explained years
>> ago how to unpick it.
>
> He made a characteristically half-arsed attempt at replacing it with
> Fisher-Yates, but gave up at the first hurdle.

Which is also sad, given that Fisher-Yates (the shuffle algorithm) is
actually fairly easy to understand. One does need a reasonable source
of randomness (of which Austin lacks), but the actual shuffle is the
easy part. Or at least it is easy for anyone with more than a
gradeschool understanding of programming.

Richard Heathfield

unread,
Sep 18, 2021, 9:02:56 AMSep 18
to
It does, however, contain a subtle and easily overlooked question - do
you, or do you not, want Sattolo's variation? If you do, j =
randbetween(0, i - 1) instead of j = randbetween(1, i). This matters for
things like S-boxes, where you may want the longest possible cycle.

In the following quote from CDX4 S-box generation, note this line:

new = CISPRNG_csrange(prng_state, 0, ch - 1);
^^^^^^

static void InitialiseSBoxes(SBoxGroup *sbox_group,
unsigned long *prng_state)
{
unsigned int box = 0;

assert(sbox_group != NULL);
assert(prng_state != NULL);

for(box = 0; box < NUMBOXES; box++)
{
unsigned int ch = 0;
unsigned int temp = 0;

/* initialise box */
for(ch = 0; ch < SBOXSIZE; ch++)
{
sbox_group->encode[box][ch] = ch;
}
/* shuffle box */
ch = SBOXSIZE;
while(ch > 1)
{
unsigned int new = 0;
--ch;
new = CISPRNG_csrange(prng_state, 0, ch - 1);
temp = sbox_group->encode[box][ch];
sbox_group->encode[box][ch] = sbox_group->encode[box][new];
sbox_group->encode[box][new] = temp;
}
/* calc reverse */
for(ch = 0; ch < SBOXSIZE; ch++)
{
sbox_group->decode[box][sbox_group->encode[box][ch]] = ch;

MM

unread,
Sep 18, 2021, 9:17:32 AMSep 18
to
On Saturday, 18 September 2021 at 14:02:56 UTC+1, Richard Heathfield wrote:
> In the following quote from CDX4 S-box generation, note this line:
>
> new = CISPRNG_csrange(prng_state, 0, ch - 1);
> ^^^^^^

Just for the record; GG messes up formatting totally. In GG it's not
possible to see what the ^^^^^^ is supposed to point to.

Other ASCII-art fails for the same reason.

This doesn't affect me, but it will be unreadable for AOB, as he only uses GG.

M
--

MM

unread,
Sep 18, 2021, 9:24:15 AMSep 18
to
On Friday, 17 September 2021 at 17:07:36 UTC+1, austin obyrne wrote:
> The expectation of repeats in a string of 10000 items
> of vector ciphertext has been explored and no repeat
> was found.

Eve is not doing frequency analysis, so she doesn't need repeats.

Eve is using the distinct pattern in your bakeed-in constant lists.
She is using the simplistic "twisting" in your facile scrambling
and a least-squares-sum to find a minimum, and therefore find
your "secret" parameters. That gets nine parameters with minimal
effort.

This is a HUGE improvement on a brute-force search of all the
parameters taken simultaneously.

> Collecting enough repeats ...

Eve doesn't care about repeats, but in this case the absence of
them actually HELPS her.

M
--

Richard Heathfield

unread,
Sep 18, 2021, 9:28:36 AMSep 18
to
On 18/09/2021 14:17, MM wrote:
> On Saturday, 18 September 2021 at 14:02:56 UTC+1, Richard Heathfield wrote:
>> In the following quote from CDX4 S-box generation, note this line:
>>
>> new = CISPRNG_csrange(prng_state, 0, ch - 1);
>> ^^^^^^
>
> Just for the record; GG messes up formatting totally. In GG it's not
> possible to see what the ^^^^^^ is supposed to point to.

Sorry. The ch - 1 is what I was pointing to. It maximises the S-box
cycle length.

Richard Heathfield

unread,
Sep 18, 2021, 9:31:22 AMSep 18
to
On 18/09/2021 14:24, MM wrote:
> On Friday, 17 September 2021 at 17:07:36 UTC+1, austin obyrne wrote:
>> The expectation of repeats in a string of 10000 items
>> of vector ciphertext has been explored and no repeat
>> was found.
>
> Eve is not doing frequency analysis, so she doesn't need repeats.

Actually she is, but not until later on.

> Eve is using the distinct pattern in your bakeed-in constant lists.
> She is using the simplistic "twisting" in your facile scrambling
> and a least-squares-sum to find a minimum, and therefore find
> your "secret" parameters. That gets nine parameters with minimal
> effort.

Yes. English has a very distinct shape.

MM

unread,
Sep 18, 2021, 9:44:32 AMSep 18
to
On Saturday, 18 September 2021 at 14:31:22 UTC+1, Richard Heathfield wrote:
> On 18/09/2021 14:24, MM wrote:
> > Eve is not doing frequency analysis, so she doesn't need repeats.
> Actually she is, but not until later on.

True, but by this time, she has removed the "non-repeat" malarkey,
and is working an a Sunday-newspaper level ciphergram remnant
anyway.

M
--

Richard Heathfield

unread,
Sep 18, 2021, 9:51:36 AMSep 18
to
On 18/09/2021 14:17, MM wrote:
> On Saturday, 18 September 2021 at 14:02:56 UTC+1, Richard Heathfield wrote:
>> In the following quote from CDX4 S-box generation, note this line:
>>
>> new = CISPRNG_csrange(prng_state, 0, ch - 1);
>> ^^^^^^
>
> Just for the record; GG messes up formatting totally. In GG it's not
> possible to see what the ^^^^^^ is supposed to point to.
>
> Other ASCII-art fails for the same reason.

Talking of art: in digging out that source code, I was delighted to
rediscover a 600-line single-source-file (C language) version of CDX4
that expects as input a 24-bits-per-pixel BMP (no colour space header)
of any dimensions (w, h). It rips off the 54-byte header, encrypts the
image, and bolts the header back on unencrypted, so that you can view
the encrypted image with standard viewers. Lots of fun; good for seeing
whether there are any patterns lurking. Even with a very small key (CDX
has one round per byte of key), it made a good job of the Flying
Scotsman (but a terrible job of Tux!). And not too shabby at 3.75Mbps
with a 40-bit key (bigger keys will slow it down).

If anyone (any unkillfiled person!) asks me, I'll post the code here.

Richard Heathfield

unread,
Sep 18, 2021, 10:20:35 AMSep 18
to
Quite so.

MM

unread,
Sep 18, 2021, 12:14:40 PMSep 18
to
On Friday, 17 September 2021 at 17:36:03 UTC+1, austin obyrne wrote:
> I'm even becoming rusty on my own programming work
> and must start refreshing my Ada-95 source code .

If you return to that, remember the input of comp.lang.ada, amongst
many others.

Find someone who has experience, and solicit their help.

LOSE YOUR ASCII FIXATION! Computer data is a sequence of
numbers in the range 0..255, that is all. What they mean, ASCII,
GIF, MPEG, audio, whatever, is of no concern. If the result of
decryption is the same set of numbers as in the original file(s),
then you have succeeded. Doing this actually simplifies your
programs!

Your programs are /terrible/ - they obfuscate the algorithm,
they are usually WAY too verbose and they crash with consumate
ease. They require editing where a proper design would accept
input. They provide Eve with numerous clues as to how to attack
your ciphers. (Hint: if you try to decrypt with a wrong key you
should get nonsense, not a helpful (to Eve) exception fault).

M
--

Rich

unread,
Sep 18, 2021, 12:18:09 PMSep 18
to
Richard Heathfield <r...@cpax.org.uk> wrote:
> On 18/09/2021 13:26, Rich wrote:
>> MM <mrvm...@gmail.com> wrote:
>>> On Saturday, 18 September 2021 at 10:55:08 UTC+1, Richard
>>> Heathfield wrote:
>>>> I love that he's still using that "scrambling" when I explained
>>>> years ago how to unpick it.
>>>
>>> He made a characteristically half-arsed attempt at replacing it
>>> with Fisher-Yates, but gave up at the first hurdle.
>>
>> Which is also sad, given that Fisher-Yates (the shuffle algorithm)
>> is actually fairly easy to understand. One does need a reasonable
>> source of randomness (of which Austin lacks), but the actual shuffle
>> is the easy part. Or at least it is easy for anyone with more than
>> a gradeschool understanding of programming.
>
> It does, however, contain a subtle and easily overlooked question -
> do you, or do you not, want Sattolo's variation? If you do, j =
> randbetween(0, i - 1) instead of j = randbetween(1, i). This matters
> for things like S-boxes, where you may want the longest possible
> cycle.

Ah, thanks for that. I was unaware of that subtlety (and had not read
through the wikipedia page of F-Y fully, as Sattolo's variant is
described therein, about half way down). I learned something new
today.

Rich

unread,
Sep 18, 2021, 12:20:55 PMSep 18
to
Yes, a side effect of GG failing to display Usenet articles inside of a
<pre> tag (which usually is by default set to use a fixed width font)
or failing to apply a "font-family: monospace;" style to the elements
containing the article bodies (and failing to keep hard line breaks if
they choose this method).

711 Spooky Mart

unread,
Sep 24, 2021, 4:14:07 PMSep 24
to
On 9/17/21 11:36 AM, austin obyrne wrote:


> I'm even becoming rusty on my own programming work
> and must start refreshing my Ada-95 source code .

Ada is a obscure and niche specific language. It is not ideal for
collaboration and exploration of simple cryptographic primitives if you
want many eyes on it. If you want people to read your code and comment
on it use C or Python or even JavaScript.

--
███████████████████████████████████
█░░░░░░░░░░░█░░░░░░░░███░░░░░░░░███
█░░███████░░█░░████░░███░░████░░███ [chan] 711
█░░░░░░░██░░█░░░░██░░███░░░░██░░███ spooky mart
██████░░██░░███░░██░░█████░░██░░███ always open
██████░░██░░███░░██░░█████░░██░░███ stay spooky
██████░░██░░█░░░░██░░░░█░░░░██░░░░█ https://bitmessage.org
██████░░██░░█░░██████░░█░░██████░░█
██████░░░░░░█░░░░░░░░░░█░░░░░░░░░░█
███████████████████████████████████

711 Spooky Mart

unread,
Sep 24, 2021, 4:32:17 PMSep 24
to
On 9/17/21 3:39 PM, Chris M. Thomasson wrote:

>
> Sorry for butting in, but what about:
>
> 124 = 1 + 2 + 4 = 7
>
> ;^)
>

Meesa wuvz meesum Pythagorean maffz.

We can claim any book contains secret codes that say anything we want
with tricks like this. We can also claim that something has been encoded
securely when in reality, it hasn't.

I glimpse how grifters prey on our self-deceptions to catch us in
theirs. This principle has some application to compromising data
security. It's better for Eve if we are grifting ourselves.

Rich

unread,
Sep 24, 2021, 5:57:48 PMSep 24
to
711 Spooky Mart <7...@spooky.mart> wrote:
> On 9/17/21 11:36 AM, austin obyrne wrote:
>
>
>> I'm even becoming rusty on my own programming work and must start
>> refreshing my Ada-95 source code .
>
> Ada is a obscure and niche specific language. It is not ideal for
> collaboration and exploration of simple cryptographic primitives if
> you want many eyes on it. If you want people to read your code and
> comment on it use C or Python or even JavaScript.

Yes, Ada is not 'mainstream' by any definition now.

However, Ada is *all* AOB knows -- and he only knows a very limited
subset of Ada at that, and then of Ada-95, which is a very old version
at this point in time.

So he is unlikely to switch to C or Python or Javascript, as to him the
effort needed to make the switch is likely not worth it in his limited
world view.
Reply all
Reply to author
Forward
0 new messages