GEM is free and friendly android application.

Please leave any comments via sending EMAIL.


GEM consists of three phases to achieve the desired features.


After users install GEM, they immediately connect to registration administrator (RA) to obtain a private key corresponding to the name and MAC address of their devices. The private key is generated by using the identity-based cryptosystem. Note that, the connection to the RA is required at the very beginning. The RA allows each device to be registered only once. After obtaining the private key, the user no longer needs to connect to the RA.

Gesture authentication

Denote U1's identity and private key by ID1 and SK1, respectively. Denote U2's identity and private key by ID2 and SK2, respectively. According to pairing-based identity-based cryptosystem (Reference), the shared secret key between U1 and U2 can be caculated without any interaction between U1 and U2, i.e., Session_key = e(SK1, H(ID2)) = e(H(ID1), SK2). U1 and U2 are able to confirm the involvement of each other because the shared session key is only known to U1 and U2.

In gesture authentication phase, U2 repeats the gesture of U1. U2's smartphone then captures the sensor information, encrypts the gesture with the session key, and sends the encrypted gesture to U1.

Secure e-card sending

U1 checks the encrypted gesture. If the received gesture has exactly the same pattern as U1's, U1 knows U2 must generate the encrypted gesture.

In the secure e-card sending phase, U1 still uses the session key to encrypt the e-card and sends the encrypted e-card to U2. After U2 receives U1's e-card, U2 sends the e-card to U1.


With the above three phases, the e-card can be well protected in the sense that