Help me make a very mathematical encryption algorithm

Click For Summary

Discussion Overview

The discussion revolves around the construction of a mathematical encryption algorithm, focusing on the development of bijective and injective functions to map passwords to numerical representations and subsequently to matrix forms. The scope includes theoretical exploration of function properties, mathematical reasoning, and potential applications in encryption.

Discussion Character

  • Exploratory
  • Mathematical reasoning
  • Technical explanation

Main Points Raised

  • One participant proposes creating a bijective function f that maps a set of passwords to a numerical set S, with a total of 3720 possible passwords.
  • Another participant questions the desired properties of the bijective function, suggesting that it may not need to be bijective but could be injective instead.
  • A different participant suggests using the binary representation of numbers to correspond to parameters in a differential equation, although later expresses a need for a simpler approach.
  • One participant discusses quantization schemes and state spaces for differential equations, but later decides to simplify the approach to using 64-bit integers represented as binary matrices.
  • Another participant calculates the bit requirement for storing the values, concluding that at least 105 bits are needed for a uniform distribution of the passwords.
  • A suggestion is made to use 16 x 16 matrices instead of 8 x 8 matrices, considering the computational capacity of a 256-bit machine.
  • One participant proposes a function g(M) = M^69, assuming that the domain consists of binary matrix representations of the integers from 1 to 3720, positing that this could yield an injective function.

Areas of Agreement / Disagreement

Participants express various ideas about the properties and forms of the functions needed for the encryption algorithm, with no consensus reached on the specific approach or final function design. Multiple competing views and methods are presented throughout the discussion.

Contextual Notes

There are unresolved assumptions regarding the injectivity of the proposed functions and the implications of using different matrix sizes. The discussion also highlights the need for clarity on the quantization schemes and state spaces, which remain unspecified.

Jamin2112
Messages
973
Reaction score
12
Suppose I make an application with a password of max 20 characters -- no special characters and not case-sensitive. So that means there is a 1-to-1 correspondence between the set of all passwords P and the set S = {1, 2, ..., 3720 - 1, 3720}. A simple bijective function f:P-->S could be constructed. Then I want to construct another bijective function g:S-->T for some set T. Any ideas?
 
Computer science news on Phys.org
Hey Jamin2112.

What properties do you want your bijective function to have?
 
chiro said:
Hey Jamin2112.

What properties do you want your bijective function to have?

Actually, it doesn't have to be bijective, now that I think about it. Could be merely injective.

Maybe take the binary representation of the numbers and have each of those digits correspond to parameters in a differential equation?
 
What is the quantization scheme you want to use for the parameters and what is the state space for the DE model?
 
chiro said:
What is the quantization scheme you want to use for the parameters and what is the state space for the DE model?

Scratch that. I'm going to need something simpler than a differential equation.

Let's assume the ints 1, 2, ..., 3720 are represented with 64 bits. Convert the binary representation of each to an 8 x 8 matrix of 0's and 1's. Then raise that matrix to, say, the 69th power. Now we have to assume that this makes for an injective function. Is that too much to assume?
 
One small problem:

log_2(37^20) = 20*log_2(37) = 30*ln(37)/ln(2) = 104.1891 which means if you have a uniform distribution with those values, you will need at least 105 bits to store them.
 
chiro said:
One small problem:

log_2(37^20) = 20*log_2(37) = 30*ln(37)/ln(2) = 104.1891 which means if you have a uniform distribution with those values, you will need at least 105 bits to store them.

Make 'em 16 x 16 matrices. We've got a 256-bit machine.
 
So what do you want your function to be exactly (given this 16x16 matrix)?
 
chiro said:
So what do you want your function to be exactly (given this 16x16 matrix)?

g(M) = M69 where M ε ℝ16x16

Lets assume that if the only possible M in the domain are those binary matrix representations of the numbers 1 through 3720, we have an injective function.
 

Similar threads

  • · Replies 3 ·
Replies
3
Views
3K
  • · Replies 0 ·
Replies
0
Views
3K
Replies
9
Views
3K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 0 ·
Replies
0
Views
2K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 5 ·
Replies
5
Views
3K
  • · Replies 1 ·
Replies
1
Views
2K
  • · Replies 3 ·
Replies
3
Views
1K