ECCHacks |
A gentle introduction to elliptic-curve cryptography |
|
Clock additionClock addition is a standard way to add points on the clock. Examples:
The following Python function, returns the sum of two clock points P1 and P2:
def clockadd(P1,P2):
x1,y1 = P1
x2,y2 = P2
x3 = x1*y2+y1*x2
y3 = y1*y2-x1*x2
return x3,y3
# example:
P1 = (0.8,0.6)
P2 = (0.28,0.96)
print clockadd(P1,P2)
# output: (0.936, 0.3519999999999999)
print clockadd(P2,P1)
# output: (0.936, 0.3519999999999999)
# perfect real output would have been (0.936, 0.352)
import math
def oclock(time):
radians = time * math.pi / 6
return math.sin(radians),math.cos(radians)
print clockadd(oclock(4),oclock(1))
# output: (0.5000000000000002, -0.8660254037844385)
print oclock(5)
# output: (0.49999999999999994, -0.8660254037844387)
# perfect real output would have matched
As before, these functions aren't perfectly accurate. Something to try: Can you write a clocksub that subtracts two clock points? For example, subtracting "3:00" from "1:00" should give "10:00". Version: This is version 2014.12.27 of the clockadd.html web page. |