Groups commonly used for cryptography include multiplicative group of integers modulo prime p(in which P is the modular multiplication, M is the modular exponentiation) and additive group of points on an elliptic curve over finite fields(in which P is the modular addition of points, M is the modular multiplication between of a point and an integer). The finite cyclic groups practical for cryptography need to satisfy that it is easy to compute M(m,A) from given m and A, but hard to compute an m satisfying M(m,A)=B from given A and B (usually called the discrete logarithm problem of such finite cyclic group). There are generators G (usually more than one) different with the identity element, making M(n,G)=E, and it can be proved that M(0,G)=E, M(1,G), M(2,G)……M(n-1,G) make up all the elements of the group.įor an arbitrary element, and arbitrary integers x, y, it can be proved that M(y,M(x,A))=M(x,M(y,A))=M(xy,A), which is the basis of DH. The inverse element of identity element E is itself.Īpplying m times operation P to the same element A is defined as a new operation M(m,A), with additional definition M(-m,A)=-M(m,A), thus according to these definitions, P(M(x,A),M(y,A))=M(x+y,A), and M(0,A)=E. P(A,E)=A, and there for each element A exists only one inverse element (-A) making P(A,-A)=E.
There is an identity element E in the group, with an arbitrary element A, satisfying The basic group operation P is commutative and associative: P(A,B)=P(B,A), P(P(A,B),C)=P(A,P(B,C)). The number of the elements of a finite cyclic group is finite (as its name), and is called the order of the group.
Started here, integers are represented with lowercase letters, while elements of theĬyclic group are represented with uppercase letters, and "=" is used to represent mathematical identity. The GUI version requires GTK+ >= 3.Standardized deployment procedure of using OTR to protect privacy For Debian/Ubuntu users, based on XMPP IM protocol Principle of OTR protocol Diffie–Hellman (DH) key exchangeĭiffie–Hellman key exchange is performed between integers and a finite cyclic group. Please note: Important requirements for building CoyIM are also git and golang (at least version 1.11). If you want to know more about the features you will and will not find in CoyIM, read this page. If the client you have been using so far is Pidgin, you will find the files you need to import in the. If you don’t import your account settings, keys and fingerprints through the wizard that opens at the first launch, you can still import them by going to Accounts -> Import at a later stage. By importing them, you won’t have to do anything else to use CoyIM just as you used your former client. If you already have a Jabber client installed and configured for OTR encryption in your computer, you can use this wizard to import your account settings as well as your OTR keys, and your contacts’ fingerprints. When you first launch CoyIM, a wizard will appear.
Using CoyIM is very simple: you just need to download the executable file from the project’s home page and then run it.
There have been no security audits of the code, and you should currently not use this for anything sensitive. The implementation is written in the Go language, to avoid many common types of vulnerabilities that come from using unsafe languages.ĬoyIM is currently under active development. Besides that, it will only use the Tor Onion Service for a known server and also uses TLS and TLS certificates to verify the connection – no configuration required. To do this, CoyIM has OTR enabled and uses Tor by default.
Our ambition is that it should be possible for even the most high-risk people on the planet to safely use CoyIM, without having to make any configuration changes. It adds a graphical user interface and implies safe and secure options by default. CoyIM is a new client for the XMPP protocol.