[math-fun] Diffie-Hellman vs. exponentiation
The Diffie-Hellman operation a # b = exp(ln(a) ln(b)). This is clearly commutative, unlike exponentiation, but it still distributes over multiplication. This can be extended to an infinite series of operations in both directions: . . . a $ b = ln(exp(a) @ exp(b)) a @ b = ln(exp(a) + exp(b)) = exp(ln(a) $ ln(b)) a + b = ln(exp(a) * exp(b)) = exp(ln(a) @ ln(b)) a * b = ln(exp(a) # exp(b)) = exp(ln(a) + ln(b)) a # b = exp(ln(a) * ln(b)) . . . The operation @ is roughly max (Maslov dequantization can deform it into max). Each operation distributes over the operation above it. What is this sequence called? -- Mike Stay - metaweta@gmail.com http://math.ucr.edu/~mike http://reperiendi.wordpress.com
From the symbolic manipulation viewpoint, # has much to recommend it. Some more properties of #: # is commutative and associative: A#B = B#A, A#(B#C) = (A#B)#C. # distributes over multiplication: (A*B)#C = (A#C)*(B#C) and A#(B*C) = (A#B)*(A#C). 1 is an absorber: A#1 = 1#A = 1. Arguably, A#0 = 0. If the logs are base 2, 2 is an identity: A#2 = A; and A#(2B) = A*(A#B). One argument for using base sqrt2 for the logs is so 2#2 = 4. Over the positive reals (except 1), we have inverses: A' = 2 ^ (1/log2(A)). A # A' = A' # A = 2; (A#B)#B' = A. If either of A or B is a power of 2, then A#B is an integer. One drawback is that A#B is usually not an integer; I think expressions like 3^log_2(3) are transcendental, but I don't know the present state of knowledge. The mod P and finite field versions are also interesting: the operation tables have lots of (obvious) patterns. I use the smallest positive primitive root for the log base. Rich ----------------- Quoting Mike Stay <metaweta@gmail.com>:
The Diffie-Hellman operation a # b = exp(ln(a) ln(b)). This is clearly commutative, unlike exponentiation, but it still distributes over multiplication. This can be extended to an infinite series of operations in both directions:
. . . a $ b = ln(exp(a) @ exp(b)) a @ b = ln(exp(a) + exp(b)) = exp(ln(a) $ ln(b)) a + b = ln(exp(a) * exp(b)) = exp(ln(a) @ ln(b)) a * b = ln(exp(a) # exp(b)) = exp(ln(a) + ln(b)) a # b = exp(ln(a) * ln(b)) . . .
The operation @ is roughly max (Maslov dequantization can deform it into max). Each operation distributes over the operation above it. What is this sequence called? -- Mike Stay - metaweta@gmail.com http://math.ucr.edu/~mike http://reperiendi.wordpress.com
_______________________________________________ math-fun mailing list math-fun@mailman.xmission.com http://mailman.xmission.com/cgi-bin/mailman/listinfo/math-fun
On Wed, Oct 7, 2009 at 4:16 PM, Mike Stay <metaweta@gmail.com> wrote:
The Diffie-Hellman operation a # b = exp(ln(a) ln(b)). This is clearly commutative, unlike exponentiation, but it still distributes over multiplication. This can be extended to an infinite series of operations in both directions:
. . . a $ b = ln(exp(a) @ exp(b)) a @ b = ln(exp(a) + exp(b)) = exp(ln(a) $ ln(b)) a + b = ln(exp(a) * exp(b)) = exp(ln(a) @ ln(b)) a * b = ln(exp(a) # exp(b)) = exp(ln(a) + ln(b)) a # b = exp(ln(a) * ln(b)) . . .
The operation @ is roughly max (Maslov dequantization can deform it into max). Each operation distributes over the operation above it. What is this sequence called?
Let A #_n B = exp(ln(A) #_{n-1} ln(B)) A #_0 B = A * B Then it appears that operators #_n approach max as n -> -oo (since you exponentiate both of the operands n times, add them, then take n logs), which means that all #_n distribute over max. On Thu, Oct 8, 2009 at 12:11 PM, <rcs@xmission.com> wrote:
From the symbolic manipulation viewpoint, # has much to recommend it. Some more properties of #:
# is commutative and associative: A#B = B#A, A#(B#C) = (A#B)#C.
# distributes over multiplication: (A*B)#C = (A#C)*(B#C) and A#(B*C) = (A#B)*(A#C).
These two properties are true of all the operations.
1 is an absorber: A#1 = 1#A = 1. Arguably, A#0 = 0.
For #_n, exp^n(0) is an absorber, where exp^n is repeated exponentiation.
If the logs are base 2, 2 is an identity: A#2 = A;
If the logs are base e, exp^{n+1}(0) is an identity; similar towers hold for arbitrary bases.
and A#(2B) = A*(A#B).
This is a special case of distributivity and identity: A #_n (exp^{n+1}(0) #_{n-1} B) = A #_{n-1} (A #_n B)
One argument for using base sqrt2 for the logs is so 2#2 = 4.
Then in base sqrt2, 2 #_n 2 = 4 for all n.
Over the positive reals (except 1), we have inverses: A' = 2 ^ (1/log2(A)). A # A' = A' # A = 2; (A#B)#B' = A.
Something like this probably works for #_n, too.
If either of A or B is a power of 2, then A#B is an integer. One drawback is that A#B is usually not an integer; I think expressions like 3^log_2(3) are transcendental, but I don't know the present state of knowledge.
The mod P and finite field versions are also interesting: the operation tables have lots of (obvious) patterns. I use the smallest positive primitive root for the log base.
It's not clear to me how those would work for arbitrary n, since logs of a finite field are elements of a different ring which may not have primitive roots, but the operators immediately above and below + and * seem to be well-defined: A #_{-2} B = exp(ln(A) + ln(B)) A #_{-1} B = A + B A #_0 B = A * B A #_1 B = ln(exp(A) + exp(B)) (where I'm abusing exp and ln to mean exponentiation and log in whatever discrete base you've chosen mod P) -- Mike Stay - metaweta@gmail.com http://math.ucr.edu/~mike http://reperiendi.wordpress.com
participants (2)
-
Mike Stay -
rcs@xmission.com