Calculate equation with unknown algorithm?

unknown301

New member
Joined
Dec 21, 2019
Messages
3
To solve for variable d, given that
variable x & y are random numbers
and variable z is calculated by "x % y" or "mod(x, y)"

Is there any way to calculate variable d with the unknown algorithm being used? (with list of known solutions + the solution could be validated by calculating some of the known solution and have the same result of variable d)
download.jpg
 
To solve for variable d, given that
variable x & y are random numbers
and variable z is calculated by "x % y" or "mod(x, y)"

Is there any way to calculate variable d with the unknown algorithm being used? (with list of known solutions + the solution could be validated by calculating some of the known solution and have the same result of variable d)
View attachment 15620
1576970021498.png
Please follow the rules of posting in this forum, as enunciated at:

READ BEFORE POSTING

Please share your work/thoughts about this assignment

Please tell us:

Where did this data come from?

What is the approximate "physics" behind this data?

Why are you interested in calculating this relationship?
 
Why do you imply that y is a random variable? The y-values look nothing like a seies of random numbers. Do you mean that the values shown of x and y are arbitrary values or sampled values?

And would you please demonstrate the relationship among x, y, and z.
 
Please follow the rules of posting in this forum, as enunciated at:

READ BEFORE POSTING

Please share your work/thoughts about this assignment

Please tell us:

Where did this data come from?

What is the approximate "physics" behind this data?

Why are you interested in calculating this relationship?
Sorry for not following the rules of this forum.

My work and thoughts:
1. Variable z is calculated by mod(x, y)
2. Keeping the variables y and z at constant values resulted in different output of variable d. However, the change in d was constant while y and z were the same values across different records.

Your questions:
1. This data is initially collected by by listening between a sender and receiver. However, some data records have similar y and z values, these records have been sent intentionally to try to find the algorithm behind this

2.
From the sender side => values of x and y are randomly generated, where value z is calculated from mod(x, y).
From the receiver side (response value) => value of d is calculated with an unknown algorithm or mathematical operation.

3. In the beginning, I was interesting to only solve this secret mechanism. However, with the effort I spent in trying to solve it, I still have not manage to. That's way I want to know the way this work and possibly use it.

Why do you imply that y is a random variable? The y-values look nothing like a seies of random numbers. Do you mean that the values shown of x and y are arbitrary values or sampled values?

And would you please demonstrate the relationship among x, y, and z.

Values of x and y are randomly generated, where value z is calculated from mod(x, y).
Value of d is calculated with an unknown algorithm or mathematical operation.

This data is initially collected by by listening between a sender and receiver. However, some data records have similar y and z values, these records have been sent intentionally to try to find the algorithm behind this
 
Last edited:
You reference "random" in both posts. Do you really mean "arbitrary"? Or do you mean that you have reason to believe that both sender and receiver share an unknown random number generator? Your problem is absolutely hopeless if it involves a true random number generator that is unknown

You want to know what algorithm generates d from x and y? You do realize, I hope, that an infinite number of algorithms can generate the list of d's from the given list of x's, y's, and z's. From a finite set of data, you cannot determine which of the infinite possible algorithms is the actual algorithm. The best that you can do is to use some of the data to test algorithms developed from the rest of the data.
 
I think you need to tell us more about the situation. What are the "sender" and "receiver"? Do you know anything about the algorithm? (For example, is its purpose to encode or compress data, or what?)

All I can see is that d<z in all examples we have, but a given change in x does not result in a consistent change in d, so it can't be linear (mod z).

If you want anyone to work on the data, it would be more helpful to put it in a form that we could copy.
 
You reference "random" in both posts. Do you really mean "arbitrary"? Or do you mean that you have reason to believe that both sender and receiver share an unknown random number generator? Your problem is absolutely hopeless if it involves a true random number generator that is unknown

You want to know what algorithm generates d from x and y? You do realize, I hope, that an infinite number of algorithms can generate the list of d's from the given list of x's, y's, and z's. From a finite set of data, you cannot determine which of the infinite possible algorithms is the actual algorithm. The best that you can do is to use some of the data to test algorithms developed from the rest of the data.
Sorry for not explain the problem clearly, actually I'm not sure about "arbitrary".
What I meant by random, that it is the sender random choice and it's not random number generator shared with the receiver. But really, there is no control about what number the sender choose.

Is there any tools that help to test the data I have against some algorithms? I already done some tries with Octave, I found a number which result in correct d value, but only could applied to two records, which I think is not that reliable. [mod(i, x) = d] | where i is an increment just to try
[mod(63939225, 15633) = 255 | mod(63939225, 16441) = 176]

My goal is to know how to calculate d from the three values the sender send, I know it isn't easy but I would give it a try.

I think you need to tell us more about the situation. What are the "sender" and "receiver"? Do you know anything about the algorithm? (For example, is its purpose to encode or compress data, or what?)

All I can see is that d<z in all examples we have, but a given change in x does not result in a consistent change in d, so it can't be linear (mod z).

If you want anyone to work on the data, it would be more helpful to put it in a form that we could copy.
So basically the sender generate x & y and calculate z and send the three values [x, y, z]. Then, the receiver check that calculation of z is correct [mod(x, y) == z] and do an unknown mathematical operation to calculate response with d value. The d value is used by the initial sender to make sure that the response is really from the recipient. It's just for validate that this response is from the recipient.

I have attached the table, sorry for not provide that from the beginning.
 

Attachments

  • Table1.csv.txt
    699 bytes · Views: 3
  • Table1.txt
    696 bytes · Views: 2
I have attached the table, sorry for not provide that from the beginning.

And for Matlab users...
Code:
x=[15633, 16441, 17249, 18057, 18865, 19673, 64407, 55304, 36885, 25739, 51906, 37707, 38380, 39053, 39726, 40399, 15718, 8559, 47795, 18756, 12345, 2000, 3000, 4000, 5000, 6000, 21812, 6094, 24783, 19031, 13511, 44827, 33333, 33334, 33335, 33336, 33337, 61683];
y=[808, 808, 808, 808, 808, 808, 866, 731, 554, 671, 685, 673, 673, 673, 673, 673, 646, 660, 876, 985, 678, 700, 700, 700, 700, 700, 755, 109, 778, 706, 672, 708, 999, 999, 999, 999, 999, 886];
z=[281, 281, 281, 281, 281, 281, 323, 479, 321, 241, 531, 19, 19, 19, 19, 19, 214, 639, 491, 41, 141, 600, 200, 500, 100, 400, 672, 99, 665, 675, 71, 223, 366, 367, 368, 369, 370, 549];
d=[255, 176, 97, 18, 220, 141, 274, 414, 233, 168, 232, 2, 0, 16, 13, 10, 77, 222, 164, 15, 125, 500, 150, 0, 50, 300, 77, 38, 210, 32, 40, 56, 281, 259, 237, 216, 194, 48];
 
Sorry for not explain the problem clearly, actually I'm not sure about "arbitrary".
What I meant by random, that it is the sender random choice and it's not random number generator shared with the receiver. But really, there is no control about what number the sender choose.

Is there any tools that help to test the data I have against some algorithms? I already done some tries with Octave, I found a number which result in correct d value, but only could applied to two records, which I think is not that reliable. [mod(i, x) = d] | where i is an increment just to try
[mod(63939225, 15633) = 255 | mod(63939225, 16441) = 176]

My goal is to know how to calculate d from the three values the sender send, I know it isn't easy but I would give it a try.
Couple of things.

I have very little knowledge of cryptography so I am giving fair warning up front.

"Random" has a special meeting in mathematics. "Arbitrary" is what you mean. But presumably the x and y values are not completely arbitrary. I assume that they are integers (maybe non-negative or even positive integers).

I can understand the z-value as a check on correct transmission, but z is not needed to compute d because z is determined by x and y. You can simplify your life by ignoring z in the computation of d.

As I understand cryptography (but remember my warning), using d to validate that the response comes from the proper party means either that: (a) the algorithm used to calculate d is very difficult to find from x and y, or (b) the algorithm also depends on one or more other numbers that are known to sender and receiver but are not public. My understanding (be warned) that option a is the idea behind public-key encryption and option b is the idea behind private-key encryption.

There is at least one free site for cryptography questions, but I do not know how good it is.

 
So basically the sender generate x & y and calculate z and send the three values [x, y, z]. Then, the receiver check that calculation of z is correct [mod(x, y) == z] and do an unknown mathematical operation to calculate response with d value. The d value is used by the initial sender to make sure that the response is really from the recipient. It's just for validate that this response is from the recipient.
One thing you have not told us yet is the larger purpose of this scheme. Is it cryptographic (so that ideally it ought to be nearly impossible to do what you are asking), or is it something less serious, like a checksum to make sure that the message was not corrupted, without trying to be extremely secure? (As I read it, z is essentially a checksum on the message, but d is something more.)

I, too, have no special knowledge in either area.
 
Top