Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND SYSTEM FOR PROTECTING AND SHARING DIGITAL DATA BETWEEN USERS IN A NETWORK
Document Type and Number:
WIPO Patent Application WO/2016/060568
Kind Code:
A1
Abstract:
Scalable method and system for secure sharing of encrypted information in a cloud system, the encrypted information being encrypted only once, and each user joining and accessing a shared folder by individual encrypted key material transferred.

Inventors:
WOLD TERJE (NO)
HARDERSEN TRYGVE SANNE (NO)
Application Number:
PCT/NO2015/050188
Publication Date:
April 21, 2016
Filing Date:
October 13, 2015
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
INVENIA AS (NO)
International Classes:
G06F21/31; G06F21/62; H04L9/14; H04W12/033; H04W12/04
Domestic Patent References:
WO2001052473A12001-07-19
WO2013157957A12013-10-24
WO2014152025A22014-09-25
Foreign References:
US20130254536A12013-09-26
US20130254537A12013-09-26
Other References:
See also references of EP 3207725A4
Attorney, Agent or Firm:
ZACCO NORWAY AS (0125 Oslo, NO)
Download PDF:
Claims:
Claims

1.

Method for protecting and sharing digital data between users in a network comprising the following steps: providing a plurality of users (50) each with a Personal Key Pair (51,52) comprising a public key (51) and a private key, (52).

2.

Method according to claim 1, wherein the method comprise the further steps:

connecting the users to a server (CS) via a network (102), the server (CS) storing the public keys (51) of all users (50) unprotected, and

encrypting all information designated for a user (50)with corresponding user's public key (51).

3.

Method according to claim 1, wherein the method comprise the further steps:

providing the plurality of users (50), as owner, each with a Store (60) and a corresponding StoreKeyPair (61,62) comprising a public key, StorePublic,(61) and a private key, StoreKey, (62), wherein the server (CS) storing the StorePublic (61) of all users (50) unprotected, and wherein the StorePublic (61) is made available for each User (50) authorized for accessing the corresponding Store (60).

4.

Method according to claim 1, wherein the method comprise the further steps:

encrypting the StoreKey (62) with a StoreSecret (63), The StoreSecret (63) being a random strong symmetric key being generated by the Store's (60) owner (50) , storing the encrypted StoreKey (62) at the server (50), and encrypting the StoreSecret(63) with the public key (51) of each User (50) being authorized for accessing the corresponding Store (60),

5.

Method according to claim 1, wherein the method comprise the further steps:

a user providing a File (70) for sharing, and a random strong symmetric key, FileSecret (73),

encrypting the content, and optionally metadata, of File (70) using the FileSecret (73), and

encrypting the FileSecret (73) using the StorePublic (61).

6.

Method according to claim 1, wherein the method comprise the further steps:

sharing the file (70) by a user (50), as owner, the user (50) creating a Share (80) in the server (CS) and a corresponding ShareKeyPair (81,82) comprising a public key, SharePublic,(81) and a private key, ShareKey, (82), and

ShareKey (82) is encrypted with a random strong symmetric key, ShareSecret (83), and

encrypting FileSecret (73) using SharePublic (81) for each File (70) comprised in the Share (80) before adding participating Users (50), and

the ShareSecret (83) being encrypted with the public key (51) of each User (50) intended for participating in the share.

7.

Method according to claim 1, wherein the method comprise the further steps:

creating a new ShareKeyPair (81,82) for the Share (80) for subsequent sharing of file (70) when one or more User (50) is no longer intended to participate in the Share (80), and server (CS) maintaining a Share/Store (60,80) key table for the content in the respective Share/Store (60,80).

8.

Method according to claim 1, wherein the method comprise the further steps:

authenticating a user (50) by the user storing a strong hash of a secret password, Password, in the server (60) during registration,

the user (50) sending Password to the server (60) whereupon server sends a random session ID, SessionID, the SessionID being encrypted with the user's public key(51),

user (50) decrypting SessionID using the user's private key (52), and for each subsequent message to server (50) includes the decrypted sessionlD.

9.

Method according to claim 1, wherein the method comprising to store the public parts of the keypairs in a PCKS#1 key container.

10.

Method according to claim 1, wherein the method comprising to store the private parts of the keypairs in a PCKS#12 key container.

11.

Method according to claim 10, wherein private parts of the keypairs are password protected before stored in the PCKS#12 key container.

12.

Method according to claim 1, wherein user's private key (52) is stored in the Server (60), wherein the private key (52) is protected with a passphrase only known to the user (50) and sent to the user (50) only when authenticated.

13.

System for protecting and sharing digital data between users in a network comprising:

a communication network,

one or more user devices (50),

a network connected server (60),

computing resources in user device (50) for encryption and decryption of user data (70) and encryption key parts,

computing resources in a server (60) for encryption and decryption of user data (70) and encryption key parts, a key management services,

an identity management services,

user data (70) to be protected, stored and shared in the server (60), wherein the user data (70) being protected, stored and shared in accordance with the method described in claims 1 to 12. 14.

System according to claim 1, wherein the communication network comprising a cloud network and services.

Description:
Method and system for protecting and sharing digital data between users in a network

The present invention is related to security challenges in the cloud storage industry, specifically sharing large amount of data between different devices or sharing data with many users or both.

Identified cloud storage problems can be summed up to be:

•Applications offered today are not secure enough for many users or user groups.

• Information confidentiality is maintained in the cloud only by complicated and/or time consuming processes?

· Sharing scalability and confidentiality is not achieved.

Security issues in cloud storage:

The privacy of user data may be compromised at the cloud storage services, and mechanisms such as SSL transport is put more and more under increasing pressure, and simply relying on passwords for authentication is insufficient for many users and applications.

Taking into consideration the amount of data that are exchanged between users, and often a large number of users accessing the same confidential information (data), secure sharing requires a lot of extra processing, and data maintenance is complicated when security requirements are high. Specifically this is evident when data needs to be encrypted in order to fulfill security requirements.

Further challenges are encountered by the magnitude of devices accessing sensitive information, either stored in the cloud or on a device (portable and stationary). Accessing secure information on a device such as a mobile phone, PDA, computer without restricted viewing access and other may put at risk the sensitive information that are intended for the user(s)' eyes only.

The present invention comprise a scalable method and system for secure sharing of encrypted information in a cloud system, the encrypted information being encrypted only once, and each user joining and accessing a shared folder by individual encrypted key material transferred. It is also part of the invention to provide a device for secure communication between two or more users, their devices and the cloud and cloud service provider. The device is provided with the feature of making any visual content unreadable by blurring once the user no longer actively looking at the screen or holds the device, and optionally the same feature is activated if an unknown face is present in front of a camera monitoring the spectators on the device screen side. The invention is further described in the independent claims. Further advantageous embodiments are described in the associated dependent claims.

Figure 1 shows a scenario overview of existing cloud storage solutions.

Figure 2 shows a scenario where a user with three devices d1 , d2, and d3 storing two files H and f2 in the cloud storage (CS) service.

Figure 3 shows a scenario where user u1 sharing file f1 with user u2.

Figure 4 shows a scenario where User u1 sharing file f1 with user u2 using share (store) k1 , 2 Figure 5 shows a key concept for PersonalKeyPair.

Figure 6 shows a key concept for StoreKeyPair and StoreSecret protected by users Certificate. Figure 7 shows a key concept for File or Directory protected by FileSecret.

Figure 8 shows a key concept for ShareSecret encrypted for each User. Figure 9A shows a key concept for ShareFile protected by FileSecret. Figure 9B shows a key concept for Share with multiple ShareKeyPairs. Figure 10 shows a key concept for authentication.

Figure 1 1 A - C shows a key concept for password change, key recovery setup and key recovery.

Figure 12 shows a key concept for compromised PersonalKeyPair.

Figure 13 shows a key concept for administration by Admin. Figure 14A is a flow diagram for generation, storage and retrieval of a personal key pair. Figure 14B is a flow diagram for generation, storage and retrieval of a store key pair. Figure 14C is a flow diagram for generation, storage and retrieval of a share key pair.

Figure 14D is a flow diagram for adding user, store and retrieve share keys. Figure 14E is a flow diagram for removing user from storage, updating share keys. Figure 14F is a flow diagram for distribution of share keys with invited user. Figure 14G is a flow diagram for invited user retrieve share keys.

Figure 14H is a flow diagram for retrieving and decrypting data entity. Figure 141 is a flow diagram for inviting user to share. Figure 15 is a flow diagram of the visualcrypt calculation of the text box size. Figure 16 Data model of Store.

Figure 17 is a flow diagram sequence showing setting up a phone for exchange

Figure 18A-18E shows each section of Figure 17 in blown up versions.

Figure 19A-19B shows user scenario for face detection blurring feature

Figure 20 Data model

Figure 21A - 21 G shows a mobile phone login and password lock sequence, and a second/remote face locking operation

Figure 22 outlines how the blurring appears when motion detection is enabled. Figure 23 is an example of a Message Broker architecture

Figure 24 describes authentication in a message broker environment using a truste e-ID provider.

Figure 25 describes teh device keys

Figure 26 describes the client application's keys.

Figure 27 describes the Store keys. Figure 28 describes the content keys.. Figure 29 describes the message broker key hierarchy

Figure 30A -30B Describes a flow diagram for message broker Authentication Figure 31 A -31 B Describes a overview flow diagram for message broker signing

It shall be understood that the present invention and its components are merely illustrated as examples of embodiments in the figures and embodiment descriptions herein, and may be designed in many variations and configurations. The figures and embodiments are not intended to limit the scope of protection of the invention as claimed, but represent merely selected embodiments of the invention.

The invention can be adapted to be used in a number of different configurations, and as the following describe specific embodiments utilizing one of possible applications, or a combination of such applications, it shall be understood that any combination of any number of applications can be adapted to be hosted by the invention. When the phrase "the invention" is used in this document it shall be understood that the phrase points to the invention comprising a variety of the discussed features, also if not all features are implemented in the specific embodiment in question. When the phrase "device" is used in this document it shall cover any device that can be used as a host for a network connection between the user and the cloud infrastructure, e.g. PC, tablet, smartphone, custom devices with network connections and others.

When the phrase "user" is used in this document it shall be understood that this comprise both the user (a person) and a device in form of a computer, phone, pda or other communication equipment suitable for communication with a cloud service, used by the user (person) to access the cloud services discussed, as well as any software necessary to operate the device for communication and computation as described in this document. In some embodiments of the invention the person may even be omitted.

When the phrase certificate is used in this document it shall be understood to be the public part of an asymmetric encryption key pair. It might be defined as either a Certificate (X.509) or a Public Key (PKCS#1). It may be signed by a third party, but can be self-signed as well. When the phrase file is used in this document it shall be understood that this may represent all types of data that is likely to be stored in the cloud storage. This can range from normal file entities as known from computer file system, but can just as well be any kind of data entities, for example mail, short messages in a short message system, large data entities of raw data or any type of digital data.

When the phrase "blurring", "blur" and "blurred" is used in this document it should be understood that this shall mean that text and images are made unrecognizable as if encrypted or scrambled. There is no decryption path for the blurred information, and clear text or picture information cannot be recovered from the blurred information.

When the phrase "Cloud" or "Cloud computing" is used in this document it should be understood that this shall mean internet-based computing in which large groups of remote servers may be networked to allow the centralized data storage, and online access to computer services or resources. Cloud may be classified as public, private or hybrid. Cloud computing, or in simpler shorthand just "the cloud", also focuses on maximizing the effectiveness of the shared resources. Cloud resources are usually not only shared by multiple users but are also dynamically reallocated per demand. A common approach in cloud storage services is to, either as default or as an option, encrypt user data at-rest using 128 or 256-bit AES encryption. Some does not use encryption to protect user data at-rest at all.

The cloud/cloud providers have access to the encryption/decryption keys of the user data and can in principle decrypt and access these data. It is expected that all cloud storage solutions that provide encryption of user data at-rest and have access to the encryption/decryption keys, have invested a lot of resources in protecting the encryption/decryption keys of the user data. This does not mean that it is impossible for the service provider to access the user data, and sometimes they do to access and decrypt user data in order to provide services.

A few services encrypt user data without storing the encryption/decryption keys at the service provider's servers. To be more precise, the keys are not accessible at the service provider servers. They are either not stored at the servers at all, or they are stored encrypted. If they are stored encrypted, their encryption/decryption keys are not stored at the service provider servers. The consequence is that the service providers do not have access to the encryption/decryption keys of the user data at-rest. A common approach is to store the actual symmetrical, for example AES, encryption keys together with the user data at-rest, but the symmetrical encryption keys are encrypted with the public key of the user in a public-key encryption scheme. Such an approach provides end-to-end encryption of user data synced between different user devices.

Most cloud storage providers protect user data in-transit using SSL TLS. This provides a secure channel where unencrypted data are transferred between user devices and the cloud storage servers. Recent discoveries of serious flaws in the most commonly used SSL/TSL

implementation shows that such an approach might be vulnerable. This does not mean that data in-transit should not be protected by SSL/TLS, but it shows that SSL/TLS is not enough to protect user data. Both at the sending and receiving end of a secure channel the data are unprotected and open for attack. Figure 1 illustrates cloud storage services when user data in-transit are protected by a secure channel, user data at-rest are protected by symmetric encryption (e.g. AES), and the

encryption/decryption keys are accessible at the cloud storage service servers. In the example a user have three devices d1 , d2 and d3, and two files f1 and f2. File f1 originates at device d1 and file f2 originates at device d2. From device d1 , file f1 is transferred to the cloud storage (CS) over a secure channel (SSL/TLS). Device d1 receives file f2 from CS over a similar secure channel. From device d2, file f2 is transferred to the cloud storage (CS) over another secure channel, and device d2 receives file f1 from CS over a similar secure channel. The data in- transit can be summarized like this (dx is a device, and fy is a file): dx→CS:[fy]

CS→dx:[fy]

At CS the two files are stored encrypted with the secret keys s1 and s2. These two keys are also stored at the CS. Device d3 receives both file f1 and f2 over a secure channel.

The following notation is used in this document: c n = CloudService

u n = User

dj , n = Device for u n

p n = Certificate for u n

p'n = Key for u n

ρ,ρ'η = PersonalKeyPairfor u n

s pwd = Passphrase

s pwd {p' n } = Key for u n encrypted with Passphrase

p,s pwd {p'n} = PersonalKeyPair for u n encrypted with Passphrase

k n = StorePublic or SharePublic *

k'n = StoreKey or ShareKey *

k, k'n = StoreKeyPair or ShareKeyPair *

Sj = StoreSecret, ShareSecret or FileSecret *

#Sj = StoreSecret, ShareSecret or FileSecret hashed

k, Sj{k' n } = StoreKeyPair or ShareKeyPair encrypted with StoreSecret or ShareSecret

Sj{k' n } = StoreKey or ShareKey encrypted with StoreSecret or ShareSecret {Sj}p n = StoreSecret or ShareSecret encrypted with Certificate for u n

{Sj}k n = StoreSecret or ShareSecret encrypted with StorePublic or SharePublic

{#Sj} kn = StoreSecret or ShareSecret hash signed with StoreKey or ShareKey

K + = Latest StorePublic or SharePublic for Store

f n = F//e

Sj{f n } = File encrypted with FileSecret

f* n = File visually encrypted

A→B:{m} = m in transit from A to B A→B:[m] = m in transit from A to B over a secure channel m, m n = data

* n may be denoted as a single identifier, e.g. 1 or a pair identifier, e.g.: 1 ,2, i.e. Si and Si , 2 respectively.

Table 1: Notations

Most cloud storage services provide a sharing feature. User can share a single file or a directory structure with other users of the service, and sometimes with non-users of the service. The actual implementation details of sharing in the different cloud storage services can be difficult to find. However, for the cloud storage services storing the encryption/decryption keys for user data at rest in their own infrastructure, this is trivial. Since the infrastructure has access to the keys, it can decrypt the user data when accessed by the user the data is shared with. To protect the data from unintended access, the service will perform a proper authentication before this is done.

In another service, the server side cannot decrypt the data-at-rest. The data (or the key) has to be decrypted at a user device, and then be prepared for sharing. This means that shared data are moved from the pool of encrypted user data to a pool of unencrypted user data. Access is typical granted through a secret URL. Then the user shared with does not have to be a registered user of the service. The knowledge of this URL is what is needed to access shared data. The obvious problem with this approach is that user data that is shared is stored unencrypted at-rest at the cloud storage server as long as they are shared. Identity and key management is a major building block to support sharing of files, both between different users and different devices of a user. Typically cloud storage services offer their own identity management features as part of their service. The user usually has to sign up to the service first by registering e.g. with an email address. When adding a new device the user logs into the service and registers the device. Identity information is exchanged and deployed to the devices of the user by this step. When sharing files with other users, one has to search and select other participants of the service. The consumer market motivates this kind of ad-hoc sharing. In an enterprise setting sophisticated identity management solutions like LDAP or Active Directory are already in place. The present invention also provide an interface to these directory services. This allows for an automated provisioning of identities (both for users and devices) to the clients of the present invention. Sharing between users and groups can thus be simplified and tailored within an enterprise context. In the present invention public key encryption is chosen to protect user data and enable secure sharing. Every user has a public/private key pair. The public key is not a secret, and it can be shared with everyone. It may be stored as an X.509 certificate. The private key is secret and only known to the user. The private key is only accessible on the user devices, and the key itself is protected by password-based encryption when not used. It may be stored in a PCKS#12 key container. User data may be encrypted using 256-bit AES encryption. For every file a new fresh and unique encryption/decryption key may be generated. This key is used to encrypt the file. The key itself is then encrypted with the public key of the user and bundled with the encrypted file. All user data are always encrypted on the service provider's servers. User data never exists decrypted outside the client devices. The encryption keys needed to access the data are not even available for the cloud storage service provider. The consequence is that the service provider does not have access to the encryption/decryption keys and cannot decrypt or access any user data at-rest. Figure 2 illustrates the present invention approach to end-to-end public key based encryption of user data. In the example a user file originates at device . Device generates a new fresh secure key that is used to encrypt file - This secure key is then encrypted with the public key p of the user. A bundle is then created. It contains the encrypted secret key and the file encrypted with the secret key. The bundle is then transferred to the cloud storage (CS). The secret keys of the files only exist in the bundles encrypted with the public key of user. They are not stored in an accessible form at the CS, and the CS does not have the means for decrypting it. Since the files are encrypted with the secret keys, the files are only accessible together with the private key of the user.

Figure 3 is a simplified embodiment of the case, only including the details needed for the example. At each node (the devices and the cloud storage) the box illustrates what is at-rest (stored) at this node, and the arrows illustrate what has been in-transit (transferred) between nodes.

The usage of public-key encryption in the present invention makes secure sharing possible without any security compromises. When a file is shared with another user, a copy of the secret key of the file is created and then encrypted with the public key of the other user. Since the other user now can decrypt this copy of the secret key of the file, the user can also decrypt the file itself. This is illustrated in Figure 3. A user u- \ shares a file with user u 2 . User has access to the public key p 2 of user u 2 , and creates a copy of the secret key Si that is encrypted with p 2 . This encrypted copy of is bundled together with the file and transferred from u1 to u 2 through the cloud storage:

Ui→u2:{{Si}pi , {Si}p 2 , Si{fi}} A new copy of the secret key is, for every user a file is shared with, encrypted with that user's public key and bundled with the encrypted file. This per file management of sharing, or in some embodiments per file revision, is extremely flexible and powerful. At the user level sharing can be done with a collection of files (e.g. a directory). At the implementation level this will be realized by performing decryption, copying and re-encryption of the secret key of each file shared in the collection.

The problem with the sharing approach described above is scaling. The cost (processing time) of public-key encryption/decryption is much higher than symmetric encryption/decryption. If a user shares a large number of files in a single operation, the decryption, copying and re- encryption of the secret key of each file is the bottleneck. Public-key, such as for RSA, encryption and decryption operations on for example 256-bit AES keys can be almost ignored for a single key of a single file, but when this has to be done for a large number of files in a single operation, scaling becomes an issue. It is even worse if a large number of files are shared with a large number of users in a single operation. To handle this, the present invention has come up with the concept of a store and a share. Every user has a store that is represented by a public and private key pair k and k'. Instead of encrypting the secret keys of the user's files with the public key of the user, the secret keys of the files are encrypted with the public key k of the user's store. So, for user u1 with a store represented by the key pair k^ and k'^ , the file is stored at the cloud storage in the following bundle:

The private key of a store is encrypted with a random strong symmetric key, and this random symmetric key is encrypted with the users public key. If the symmetric key of the store of user u- \ is s ( i1 , then s^ik'^} and {s^^ will be at-rest at the user devices and the cloud storage. If a user shares one or more files, a new store called a share is created. If user shares file with user u 2 , a share represented by the key pair k 1 2 and k' 1 2 is created. The secret key of the file will now be encrypted with the public key ki , 2 . The private key k'i , 2 will be encrypted with a new random symmetric key s 1 2 , and this key will be encrypted with the public keys of users and u 2 , Pt and p 2 . Figure 4 updates the embodiment from Figure 3 with the store and share approach. If compared with the approach illustrated in Figure 3, it can be seen that the total number of public-key decryption and encryption operations (n) differs a lot for a large number of users (u) and files (f). Without a share, the symmetric key for each file has to be decrypt, and then encrypt the key for each file for each user shared with: n = f + f x u (1 )

With a new share, the secret (random symmetric) key encrypting the secret key of the original store has to be decrypted once, and then re-encrypt (decrypt and encrypt) this secret key for each file in the share: n = 1 + 2f « 2f (2) If u users are added to a share, the secret (random symmetric) key encrypting the secret key of the share has to be decrypted once, and then encrypt this key for each user: n = 1 + u « u (3) If a new share is created with f files and then share these files with u users in a single operation, the number of public-key decryption and encryption operations still increase much slower with increased number of users and files than in the case without using shares: n = 2f + u (4)

If users are removed from a share, a new share is created. The old share is kept but no files in this share are updated. Any updates happen in the new share. The present invention aims at several application scenarios where two are mentioned here, not excluding any other scenarios where information is shared over a cloud or remote services or the like:

Ad-hoc sharing for consumers, between consumers and businesses and between businesses.

Company internal sharing employing the existing company internal infrastructure, especially directory services (LDAP / Active Directory) and smartcards.

The present invention is designed to support all scenarios by a clean modularization into the present invention client which is encrypting the files locally before storing them in the Cloud storage, and the present invention server, which is in charge of the user and key / management. The present invention server can be run publically available to support ad-hoc sharing but it can be also be deployed and run on the premises of a company. When run in-house the present invention server offers the option to integrate into the directory services of the company. The server employs the directory service to determine user and group information and propagates this information to the present invention clients to automate identity management and the access rights to encrypted cloud storage. No further user specific setup of the present invention client is necessary and key management is therefore completely automated. In this scenario advanced authentication schemes like authentication via smartcards can be employed for the present invention. Mixed scenarios between company internal and ad-hoc sharing are possible by utilizing the features of present invention. The same present invention client can be used for internal sharing within the company and for ad-hoc sharing with external partners. In present invention, all user data are protected by end-to-end encryption. The consequence is that user data never exists unencrypted outside the user devices. This ensures the privacy of the users. The usage of public-key encryption as used in present invention both protects user data and makes secure sharing possible. Prior art approach for this as discussed above does not scale well for a large number of files and users. However, this is common in typical usage of such solutions; the cooperation between a lot of people in a large cross-institutional project sharing a lot of data. The introduction of stores and shares as presented in the present invention solves this issue without compromising the security and flexibility of the original approach. Key and user management is in large organizations commonly handled by LDAP / Active Directory (or similar). In present invention, the integration of such enterprise solutions with the cloud storage architecture demonstrates an efficient means of key management.

Now the key concept of present invention will be discussed: The present invention does not require encryption keys to be stored in the cloud, or if they are they will be stored in a manner that ensures that only the originator of the information that is secured by the encryption keys can access and share the keys, thus information is much better protected against intrusion at cloud service providers than prior art encryption at-rest methods. The present invention also solves the issue of minimizing the need for re-encryption of information that is to be shared when more users are given access to a shared file, and when previous users are excluded from a sharing activity. In current systems this type of activity requires rigid and resource demanding operations, involving encryption and re-encryption of large amount of data.

The present invention encrypts files that are stored locally, at a cloud provider such as Dropbox, or directly in the present invention cloud. The architecture applies to all these scenarios.

The present invention can also sign and encrypt email, provide mutual authentication for SSL connections, and manages identities. There are countless applications for the architecture. Without significant negative effects on security or privacy, the present invention can store encryption keys in the cloud, and allow for password recovery. This allows for quick user adaptation and ease-of-use, but is not a requirement, and does not expose sensitive information to the service provider. The present invention allows sharing of information between individuals, employees of an organization, outside an organization, and even with individuals outside the present invention. Sharing is easy and does not have any scalability issues with regards to amount of information or number of participants in the share. While personal information is strictly private as default, the present invention allows organizations to administer their employees and grant

administrative access to information that is owned by the organization.

Every user 50, hereafter called User has a key pair 51 , 52, hereafter called PersonalKeyPair, as shown in figure 5. PersonalKeyPair 51 , 52 consists of a public key 51 that may be in the form of a signed X.509 certificate, hereafter called Certificate, and a private key 52 may be in the form of a PCKS#12 key container, hereafter called Key.

Certificate 51 is always stored unprotected in the cloud at the servers, hereafter called Server, and is accessible by User 50 and all approved and authenticated contacts of User 50. Key 52 is optionally stored at Server, and is only accessible by authenticated User 50. Key 52 is protected with a passphrase only known to User 50, hereafter called Passphrase.

Certificate 51 is used to encrypt information designated for User 50, while Key 52 is used to decrypt information designated for User 50. PersonalKeyPair 51 , 52 identifies User50.

Every User 50 has Store 60 as shown in figure 6, hereafter called Store, with an associated key pair 61 , 62, hereafter called StoreKeyPair 61 , 62. StoreKeyPairQ , 62 consists of a public key 61 which may be in the form of a PCKS#1 key container, hereafter called StorePublic, and a private key 62 which may be in the form of a PCKS#12 key container, hereafter called StoreKey.

StorePublic 61 is always stored unprotected at Server, and is accessible by Users 50 authorized to access Store 60. StoreKey 52 is also stored at Server, and is protected by a random strong symmetric key 63, hereafter called StoreSecret. StoreSecret 63 is generated by Store's owner User 50, and is encrypted with Certificate 51 for Users 50 authorized to access Store 60.

Every File or Directory 70, hereafter called File is protected by a random strong symmetric key 73 as shown in figure 7, hereafter called FlleSecret. FlleSecret 73 is generated by the File's owner User 50 and may be unique for every revision of File 70. FlleSecret 73 is encrypted with StorePublic 61. FlleSecret 73 is used to encrypt and decrypt both metadata and contents of File 70.

When User 50 shares File 70, a new shared Store 80, hereafter called Share as illustrated in figure 8, is created with a new key pair 81 , 82, hereafter called SftareKeyPa/ ' rwhich is comprised by SharePublic 81 and ShareKey 82. Secret 83 for Share 80 protecting ShareKey 82, hereafter called ShareSecret is encrypted with Certificate 51 for each User 50 participating in Share 80. User 50 owning Sftare 80 must re-encrypt FlleSecret 73 using SharePublic 81 for existing each F/ ' /e 70 in Sftare 80. The owning User 50 adds participating Users 50. Metadata and contents of Files 70 does not have to be re-encrypted.

FlleSecret 73 for every File 70 in Share 80 is encrypted with Public of Share 81 , hereafter called SharePublic 81 , just like StorePublic 61 for Store. When User50 is added to existing Share 80, ShareSecret 83 is encrypted with Certificate 51 of added Lteer50. When L/ser50 is removed from existing Share 80, a new ShareKeyPairS , 82 is generated. New ShareKeyPairS , 82 is then used for subsequent operations on File 70 in Share 80. F/ ' /es 70 already shared with removed User O are not required to be re-encrypted, though they can if desired.

Share may have multiple ShareKeyPairs 81 , 82 as shown in figure 9B. A Share/Store key table is maintained for the content of the Share/Store 60, 80.

User 50 is authenticated by a combination of Password 100 and PersonalKeyPair , 52, and is illustrated in figure 10. During registration User 50 stores the strong hash 101 of a secret password, hereafter called Password, at Server 102. When authenticating, User 50 sends Password 101 to Se/ver 102. Se/ver 102 replies with a random session ID, hereafter called SessionID, encrypted with Certificate 51. L/ser 50 includes Session ID decrypted with Key 52 on each subsequent request to Server 102. If User 50 has stored Key 52 encrypted with

Passphrase at Se/ver 102 this is returned after successful authentication. User has to decrypt Key 52 with Passphrase. To change Password authenticated User sends updated Password 1 10 to Server 102 as shown in figure 1 1A. If Key 52 is also stored at Server and protected by Passphrase identical

Password decrypted, Key 52 has to be replaced with one protected by updated Passphrase. This is different from Key Replacement (see below). Server may or may not enforce a password policy. User cart optionally enable recovery of Key 52 even if password is forgotten as shown in figure 1 1 B and 1 1 C. This is achieved by sending a secret question 120, hereafter called Question, and the strong hash of the answer 121 , hereafter called Answerio Question 120 to Se/ver 102 along with Key 52 protected by unencrypted / nswer, hereafter called Recover/Key 122, as

Passphrase.

To access Recover/Key 122, User O sends / nswer 121 to Server 102, which sends a random security code 130, hereafter called Code to User's email 131 . With Code 130 and Answer the user can access Recover/Key 122, and replace existing Password 100 and Key 52 protected with Passphrase.

If PersonalKeyPair 51 , 52 has been compromised, it must be replaced by User 50 in a key replacement process. Like key recovery process discussed for figure 1 1 B and 1 1 C above, key replacement is protected by Code 130 sent from Server 102 to reduce chance of a malicious agent hijacking User 50. User has to generate new PersonalKeyPair 51 , 52, StoreKeyPairQ , 62 and ShareKeyPairs 81 , 82 for every Share 80 administered by L/ser 50. Server 102 will remove L/ser 50 from any participating Shares 80, and notify the Share administrator that ShareKeyPairs 81 , 82 has been compromised. All Files 70 have to be re-encrypted with new F Ί 'leSecret 73.

In one embodiment an Admin 150 can administer User 50 as illustrated in figure 13. Admin 150 generates PersonalKeyPair 51 , 52 for User 50, as well as RecoveryKey 122 only accessible to Admin 150. L/ser 50 with Persona I Key Pairs 51, 52 generated by Admin 150 can not replace PersonalKeyPair 51 , 52 - Admin 150 does this on User's behalf. User 50 can change Password and Passphrase for Key 52 independently of RecoveryKey 122.

Now the key models are further discussed in relation to figure 14A - 141:

The flow charts have been expanded to cover more than one page for clarity, and where figure is annotated with Figure number 14n' it is meant that the top of the figure is directly linked with the line leading down to the bottom of previous figure 14n, where n=B-l.

In figure 14A is shown an embodiment where a user generates a personal key pair, the notation as described above. The first time a user starts to use the services of the invention no keys exist. The user generates own asymmetric PersonalKeyPair (p, ρΊ) on a first device d^ consisting of a certificate p and a Key p'. The Key p' is then encrypted wth a personal

Passphrase s pwd , s pwd {p'}. The unencrypted Certificate and the passphrase protected Key {p,s psw {p'}} is then stored on the cloud service c^ . The user can from a second device d 2 1 retrieve the keys by fetching the stored {p,s pwd {p'}} from the cloud Ci . Then extract Certificate p directly and by decrypting s pwd {p'} using the Passphrase only known to the user extract the Key p'. Now the PersonalKeyPair (p, ρΊ) exist on the second device d 2 1 . Information encrypted with Certificate and stored in the cloud c- \ may be retrieved and decrypted by the Key p' by the user using either devices d^ , d 2 ,i .

In Figure 14B and 14B' it is visualized an embodiment, after having shared the PersonalKeyPair as explained above, of how to generate on a first device d^ , store in the cloud and retrieve to a second device d 2 1 a StoreKeyPair (k, k'^. Prior to establishing a store the store owner must generate an asymmetric StoreKeyPair (k, k'i) on a first device di , i . Then a symmetric

StoreSecret is generated on the first device d^ . StoreSecret is encrypted with Certificate Pt . Key k is then encrypted with s^ and {{s^p^ { ^Ί}}} is then put on cloud c^ . User can now from a second device d 2 1 retrieve {{s^p^ { ^Ί}}} as stored in the cloud and using the Key ρΊ to decrypt in operation {ε^ρΊ, and further use the retrieved to decrypt the StoreKey k in operation s^ k'^. Now the StoreKeyPair (k, k'^ exists on the user's second device. Files can now be exchanged between the devices via store k- \ as will be discussed later.

Figure 14C and 14C visualizes an embodiment of the invention how to generate on a first device di , i of a first user ui , store in the cloud Ci and retrieve to a first device di ,2 of the second user u 2 , a ShareKeyPair (k, k' 2 ) and a ShareSecret s 2 . When the owner/user ui generates the Share k 2 the first time a ShareKeyPair k,k 2 must be generated on the first device di , i of the first user u ! . Next a ShareSecret s 2 is generated on the same device d^ . Sharing with a second user u 2 for the first time, the first user u- \ must retrieve the second users Certificate p 2 . This is retrieved from standard Certificate providers or other.

When Certificate of the second user u 2 is retrieved and now exists on the device of the first user du , the ShareSecret s 2 is enrypted with the Certificate of both the first and second user i s 2}Pi ,{{s 2 }p 2 . Then the ShareKey s 2 is used to encrypt the ShareSecret k' 2 in the operation s 2 { k' 2 }. Now the information {{s 2 }pi , {{s 2 }p 2 , {k,s 2 {k' 2 }}} is put on the cloud Ci which can now be retrieved by the device of the second user di ,2 . Since s 2 is not yet existing on the device di ,2 of the second user u 2 this can be extracted by decrypting using the key p' 2 in the operation {s 2 }p' 2 . The share key k' 2 is retrieved on the device of the second user d 1 2 using the retrieved s 2 to decrypt in the operation s 2 {k' 2 }. Now the ShareKayPair{k,k' 2 } has been successfully been retrieved by and exists on the device d 1 2 of the second user u 2 . The next embodiment of the invention to be discussed is how to add a further user u 3 to the Share k 2 of the first and second user ,u 2 as described above. Figure 14D and 14D' visualizes the process steps to achieve this. The flow diagram is further expanded in that it discusses the case where the third user u 3 is added from a second device of the first user d 2 , The first step is to ensure that ShareSecret s 2 and ShareKeyPair k, k' 2 is present at the second device of the first user d 2 , If not already existing on the second device d 2 , ^ of the first user u ! , {{s 2 }p ! , {k, s 2 {k' 2 }}} is retrieved from the cloud c^ and ShareKey s 2 is decrypted by the first users Key ρΊ , and then the ShareKey k' 2 is decrypted using the retrieved ShareKey s 2 . Now {s 2 ,{k,k' 2 }} exists on d 2 . If not the Certificate of the further user p 3 exists on the second devce of the first user d 2 , this

Certificate is retrieved from appropriate Certificate provider. Now the ShareSecret s 2 is encrypted with the further users Certificate p 3 in the operation {s 2 }p 3 and upload this to the cloud C . Now the further user u 3 can get the encrypted ShareSecret {s 2 }p 3 , the SharePublic k and the ShareKey k' 2 which is encrypted with the ShareSecret s 2 , described combined in the expression {{s 2 }p 3 ,

{k,s 2 {k' 2 }}}, from the cloud , 3 , this is deduced by decrypting using the further user's Key p' 3 in the operation {s 2 }p' 3 . Then the further user u3 will decrypt the ShareKey k' 2 using the retrieved ShareSecret s 2 in the operation s 2 {k' 2 }. Now the ShareKeyPair {k,k' 2 } exists on the device of the further user d 1 3 .

The next embodiment of the invention to be discussed is a scenario described in figure 14E and 14E' where the situation as discussed combined above where three users ui , u 2 , and u 3 shares the keys to a Share k 2 , and where now the second user u 2 shall be removed from the share k 2 by the first user of the first user IH . A new ShareKeyPair {k,k' 3 } is generated for the share, and a new ShareSecret s 3 is also generated on the first device and the further user u 3 , but not the second user u 2 , and the first user retrieves the Certificate p 3 of the further user u 3 from a Certificate provider. When Certificate of the further user u 3 is retrieved and now exists on the device of the first user di , i, the new ShareSecret s 3 is encrypted with the Certificate of both the first and further user {s 3 }pi, {s 3 }p 3 . Then the ShareKey s 3 is used to encrypt the

ShareSecret k' 3 in the operation s 3 {k' 3 }. Now the information {{s^p^ {{s 3 }p 3 , {k, s 3 {k' 3 }}} is put on the cloud which can now be retrieved by the device 3 of the further user u 3 . Since s 3 is not yet existing on the device d 1 3 of the further user u 3 this can be extracted by decrypting using the Key p' 3 of the further user u 3 in the operation {s 3 }p' 3 . The share key k' 3 is retrieved on the device di 3 of the further user u 3 using the retrieved s 3 to decrypt in the operation s 3 {k' 3 }. Now the ShareKeyPair{k,k' 3 } has successfully been retrieved by and exists on the device di ,3 of the further user u 3 . Different policies may be implemented by the Share and cloud operators, whether to let previously valid ShareKeyPairs persist for historical shared data in the cloud storage, or if data should be re-encrypted with new key material after the removal of a user. The present invention only discusses the scenario where historical key material persists for historical stored data, but all new material is used in combination with the new key material. This choice does not exclude any other policies in regard to this matter.

The next embodiment of the invention to be discussed is how to share the share discussed above with the first ui and further user u 3 , the further user in the following called the third user u 3 , with a not yet identified invited user called the fourth user u 4 (in the figure the unidentified user is denoted u n until the fourth user has generated own UserKeyPair, but in this section the user is named from the beginning to heighten the readability of the scenario) from the first first device d^ of the first user IH . The embodiment is visualized in figure 14F and 14F'. The scenario is such that the share now have a historical ShareKeyPair {k,k' 2 }, and a new

ShareKeyPair {k,k' 3 } with associated ShareSecrets s 2 and s 3 . If these do not exist on the first first device then {{{S2}pi,{k,s 2 {k' 2 }}},{{s 3 }p1 ,{k,s 3 {k' 3 }}}} is retrieved from the cloud C . s 2 and s 3 is decrypted using the Key ρΊ of the first user in operation {{5 2 }ρΊ ,{5 3 }ρΊ}, and further decrypt {s 2 {k' 2 },s 3 {k' 3 }} and thus [{{s 2 ,{k,k' 2 }},{s 3 ,{k,k' 3 }}} exists on di , i. Now a new ShareSecret s 4 is generated on the first device of the first user whereupon this new ShareSecret s 4 is used to encrypt the ShareKeys k' 2 and k' 3 . Now {s 4 {k' 2 },s 4 {k' 3 }} exists on di , i . Next operation is to encrypt StoreSecret s 2 and StoreSecret s 3 with SharePublic k 2 and SharePublic k 3 respectively. The key material {{#s 2 , {s 2 }k 2 ,s 4 {k' 2 }}, {#s 3 , {s 3 }k 3 , s 4 {k' 3 }}} where #s 2 and #s 3 is a hashed value of s 2 and s 3 respectively is thereby uploaded to c^ . New ShareSecret s 4 is eitherstored on a separate cloud store c 2 , or equivalent, not accessible by the first cloud c^. One alternative is to store s 4 physically on a separate storage, such as on a USB or the like.

The fourth user u 4 will then be notified of the invitation to share at one point in time.

In figure 14G and 14G' it is now discussed the embodiment of the invention where the invited user joins the share. The fourth user u 4 first device d 1 4 generates the PersonalKeyPair p, p' 4 , and encrypts the Key p' 4 with a Passphrase s p {p, s p {p' 4 }} does not exist on c1 , and is uploaded to c1. Then the following key material is downloaded to the first device d 1 4 of the forth user u 4 : {{{s 2 }k 2 , s 4 {k' 2 }}, {{s 3 }k 3 , s 4 {k' 3 }}}. The same key material may then be deleted on c1 , or may be associated with a counter that decrement each time an invited user fetch the key material, and then deleted after a preset, by administrator or owner or other, number of downloads. The fourth user may then get s 4 from the second cloud c 2 or from the separate storage facilitated by the first user as described above. Having s 4 now the fourth user can decrypt {s 4 {k' 2 },s 4 {k' 3 }}. The fourth user u 4 now use ShareKey k' 3 to hash signed the

ShareSecrets denoted as {{#s 2 } k3 ,{#s 3 } k3 }. Share secrets s 2 , s 3 are then encrypted using

Certificate p 4 of the fourth user .u 4 . Now {{s 2 }p 4 , {#s 2 } k3 , {s 3 }p 4 , {#s 3 } k3 } can be uploaded to the cloud C . The cloud c1 will now try to verify {#s 2 } k3 ,{#s 3 } k3 with the latest stored SharePublic K + . If verified {s 2 }p 4 ,{s 3 }p 4 is stored on the cloud c- \ and U 4 joins the share. If another ShareKeyPair K has been added in-between the cloud c- \ will not be able to verify the signature and U 4 will not join the Share.

Now an embodiment of the invention as discussed in the above where a user will share a file between two devices over the cloud as pictured in the flow diagram in figure 14H and 14H'. First the user will add a file to a store k from a first device d^ . If the StoreKeyPair k, k and StoreSecret s1 don't exists on the device d^ , it has to be retrieved by downloading {{s^p^ {k, Key ρΊ, and then decrypting the StoreKey k using the StoreSecret s^. Now a FileSecret s 5 is generated, and file key s 5 is then encrypted with StorePublic File residing on the first device d^, is then encrypted with file key s 5 . A cloud service c 3 is used for storing the now encrypted file with associated key material as denoted by {{s 5 }ki ,s 5 {fi}}. For the user to get the file to the second device di ,2 , if not key material already existing on the device di ,2 , the device di ,2 must download {{ s i}Pi > {k,Si{k'i}}} and as discussed above retrieve s^ k and kY Now {s^ik,^}} exists on d 1 2 . The second device can now download the encrypted file and key material from the cloud c 3 , such that {{s 5 }k 1 ,s 5 {f 1 }} now exist on d 1 2 . Using StoreKey k to decrypt s 5 in {s 5 }k enables the user to decrypt the file ^ using the retrieved file key s 5 in s 5 { }, and thus file is retrieved on the second device. Although the cloud service or file storage has been named c 3 , it is no limitation in the invention to where the file is stored, It could just as well have been stored in which is also the cloud service where the key material is stored.

Now an embodiment of the invention as discussed in the above where a first user will share the file fi with a second user u 3 over the cloud as pictured in the flow diagram in figure 141 and 14Γ. The task is therefore initiated by to moving {{s 5 }k 1 ,s 5 {f 1 }} to Share k 3 shared between the first user U! and the second user u 3 from d^ . If the StoreKeyPair k, k and StoreSecret s1 don't exists on the device d^, it has to be retrieved by downloading {{s^p^ {k, ε^Ί}}}. As discussed previously s- \ is achieved by decrypting using first user ui Key ρΊ, and then decrypting the StoreKey k using the StoreSecret s^ .

The next step is to ensure that ShareSecret s 3 and ShareKeyPair k, k' 3 is present at the first device of the first user d- \ , - \ . If not already existing on the first device c^, ^ of the first user u,, {{s 3 }pi , {k, s 3 {k' 3 }}} is retrieved from the cloud, and ShareKey s 3 is decrypted by the first users Key ρΊ, and then the ShareKey k' 3 is decrypted using the retrieved ShareKey s 3 . Now {s 3 ,{k,k' 3 }} exists on

exists. Cloud c 3 is used as an example cloud service, but could be any a discussed above. Now the second user can start the process of getting the file and key material. First, if {s 3 ,{k,k' 3 } does not exist on the device d 1 3 of the second user, {{s 3 }p 3 , {k, s 3 {k' 3 }}}is downloaded from the cloud c3, and since s 3 is not existing on the second users device c^, 3 , this is deduced by decrypting using the further user's Key p' 3 in the operation {s 3 }p' 3 . Then the second user u3 will decrypt the ShareKey k' 3 using the retrieved ShareSecret s 3 in the operation s 3 {k' 3 }. Now both Share Secret s 3 an d the ShareKeyPair {k,k' 3 } exists on the device of the second user d 1 3 . Now the key and file material {{s 5 }k 3 ,s 5 {f 1 }} is downloaded from the cloud, and exist on second users device d 1 3 . FileSecret s 5 is decrypted using ShareKey k' 3 in the operation {s 5 }k' 3. The file can now be encrypted using FileSecret s 5 , and thus exists on the second user device d 1 3 .

Sending an encrypted file stored in the cloud thereby is transferred to a second user device without the need for re-encryption of the file itself, but by adding the step of encrypting the store secret with the second user's Certificate, and thereby creating a secure operation for transferring and decryption of ShareSecret s 3 and ShareKeyPair k,k' 3 , new users can be included in the cloud storage and get access to the encrypted files in a much more efficient manner compared to traditional methods where file is encrypted with any users Certificates.

In a scenario where a new file is included in the share it is only necessary for the user transferring the file into the share in the cloud to encrypt the file with the FileSecret, and encrypt the FileSecret with the SharePublic, Distribution of the file is controlled by Controlling the access to the ShareSecret, and for each user intended to get access to the share, the first user/owner must encrypt the ShareKey with the Certificate of each user, and encrypt ShareKeyPair with the ShareSecret. All accepted users can thereby get access to the ShareSecret by decrypting using their own private Key. Once ShareSecret is deduced, it is possible for the user to get the ShareKey that was encrypted with the ShareSecret. ShareKey can be used to decrypt the FileSecret, and the FileSecret used in turn to decrypt the file.

To enable flexible handling of the above discussed information and file store and share each entity in the system is allocated a data model that may be as shown in figure 16. Other models may be used.

In order for user to be able to share message with an unregistered user a new entity storesecret may be added to the data model described in figure 16. The storesecret operation may comprise parameters such as: id - auto-incremented unique private key

store_id - foreign key to store

idx - soft link to storekeypair idx

keycontainer - store's private key encrypted with secret, required at creation, may be nulled after first read

secret - secret hashed first by client then by server

requests - counter, incremented every time the store secret is attempted fetched from the server

joins - counter, incremented every time the store secret is attempted joined by a client

For the owner 50 to be allowed to invite unregistered user to a store 60 in an addSecrets operation a valid session with the server and store ownership may be facilitated. It may also be required that all secrets are available at the same store , and the process may comprise the use of following parameters: sessionld - current session id

storeGuid - identifies the store

secret - store secret hashed

secrets - one or more secrets to add to the store storeGuid - identifies the store, optional, but must match storeGuid above

keylndex - the index of the store's keys this store secret refers to

keyContainer - the PKCS#12 private key for the store encrypted with secret

The server may store the hashed secret hashed using the same algorithm as for normal password, only with a fixed salt. The store secret may be persisted with a request and join count of 0.

Then for the invited user to get stored secrets form the serve in a getSecret operation, it may require a valid session and secret that matches one or more store secrets with a request count of 0. If one of the matched store secrets have a request count larger than 0, a special error code may be returned.

The process may comprise the use of following parameters

sessionld - current session id

secret - store secret hashed

The server may hash the hashed secrets and returns matches from the database. All matches may have their request counter incremented and key container nulled.

An array of store secrets may be returned to the invited user. If one or more of the secrets have already been requested, its key container may be null in the response.

The invited users is allowed to join a store in a joinStore operation.

The operation requires a valid session and storeGuid in addition to a secret that matches one or more store secrets with a join count of 0. If one of the matched store secrets have a join count larger than 0, a special error code may be returned. The operation may also require the signature to be verified with the store's latest public key to verify that the store hasn't changed since the joiner was invited.

The process may comprise the use of following parameters

sessionld - current session id

storeGuid - identifies the store secret - store secret hashed

signature - store secret signed with store's latest private key

user - store user with storeuserkeys The server may hash the hashed secret and joins the store in the database. The joined store secret may always have its join counter incremented, even if the store is already joined.

The outcome of the joinStore process may be a store with the user added, or null if the store has already been joined.

In one embodiment of the invention the store and share discussed above is used for exchanging messages such as in mail or short messages to other users. One example for setting up a phone for such exchange is shown in the overview flow diagram in figure 17 and further outlined in the blown up figures 18 A-E. The flow diagram in 18A

Another aspect of the invention comprise an embodiment used to implement a technique for blurring the visual representation of the message dialogue on a user's display, as outlined in figure 19A and 19B, if the display is either turned away from the user, and/or an unknown viewer comes into the aperture of a display camera monitoring the presence of the user, and/or the display is put at rest, for example by laying the phone down on a table as described in figure 22. The face recognition feature example can be further explained by that when the phone is in a blurred state, it will constantly use the display side camera to identify if there are faces in close vicinity of the phone. The distance parameters for acceptable user distance can be preset, and will differ from device to device. Once a face is detected the application will try to recognize the face from the previously stored approved user(s). If face is recognized as a qualified face, the text on the screen is shown in a clear text manner where text and images is shown unblurred. If recognition fails, it is possible to unlock by using password input. If correct pin is entered the image is shown unblurred. Another feature with the face recognition is that it may be set up to use the blurring function the same instance that the phone is turned away from the user.

Another embodiment of the invention utilizing the face recognition feature is described in figure 21 G, and deals with remote faces, or second faces in view. The feature will constantly monitor the landscape in front of the phone, and if a face is detected close to the user, it will recognize this as an unrecognized user and blur the text and images. The feature may also be trained to recognize more than one face, and only blur if an unknown face comes into view. One scenario may be described if a video presentation or conference is displaying confidential material for a group of preapproved people. If one listener representing an unapproved person sneaks in on the group and tries to watch the camera and face recognition feature monitors and detects the invalid person, and immediately the image is blurred.

In figure 20A shows a flow where a device is synchronized against the cloud service and will identify if any changes have occurred since last synchronization. Figure 20B shows a possible data model supporting some of the requirements of a parsing feature as defined in Fig. 20A. Other models may be implemented as also discussed in relation to data model in Fig. 16. In figure 21 A - F an embodiment of the invention is exemplified by an implementation for a smartphone. The figures show a mobile phone login and password lock sequence, and a second/remote face locking operation. For text the blurring will be of the same size as the clear text starting point. For images the blurred image keeps some feature of the image making it unrecognizable but for a person who have viewed the picture able to identify the original by remembering.

Figure 21 A show one possible implementation of the login sequence of a mobile application for exchange of information formatted to fit into a message exchange service. The user logs in with email address, user name and password. For the cloud service this is sufficient to identify user.

When user is successfully logged into the service, a dialog can be selected. In the example given in 21 B (21 C is the same figure without color code) the present dialogue with Nathan is selected. The service is offered in a color scheme that denotes that all information is encrypted once entered into the cloud. Red color may advantageously be used. The phone application utilizes the movement detector of the phone to identify when the phone is put down on for example a table in an "at rest" mode. Once an "at rest" mode is detected the information in the text holders on the phone is made unreadable in a blurring operation. Blurring is a one way encryption of the information that leaves the text unreadable, and the pictures unrecognizable. The algorithm cannot be reversed to unencrypt the information.

The blurring of text further comprises a feature to compensate for size differences in the used character type set as shown in flow diagram in figure 15. The blurring function is called

"visualcrypt fV in the flow diagram, This means that if the added size of the blur-encrypted clear text is larger than the size of the clear text, the blurred text is sliced to compensate for this, and the result is that the text will fit in the same size text frame. Size compensation may comprise adding characters at the end of the blurred text (not shown in the flow diagram), removing some character at the end of the blurred text, or changing the size of the blurred text (not shown in the flow diagram). The result is that the text boxes/frames can be kept at the same size, and the shifting between the two modes will not be the source of changing the overall size parameters of the screen view. The text holders will not be seen as toggling between two sizes when moving from one mode to the other. The blurring feature further may comprise a pre-calculation feature. This means that every time the device is operated and in clear mode, the device use free processor time to calculate blurred text of the visual clear text. That means that when blurring feature kicks in, for example when the phone is put at rest in a table, the text is already prepared for blurred vision and can be instantly changed. If the user uses the navigation bar to scroll up or down in the message thread, the processor time may be used to calculate the blurred image of the visual text as well as the next view of the clear text in the current moving direction of the scroll operation.

The blurred image of the clear text may be reused for the same text portion, but the algorithm is such that two identical phrased text parts will never appear with the same blurred text. One or more random numbers, seeds, are used in the algorithm used to blurr, to make sure that same text phrase never result in the same blurred text sequence.

It is further a feature of the blurring function that the blurred text will keep the character number of each clear text word intact. Space always keep its appearance, and will not be changed. That means that the graphical outline of the blurred text will have some resemblance of the graphical impression of the clear text, and a person who have read the message will be able to remember more easily what the text was, whilst a person who have not seen the clear text will not be able to understand any meaning of the blurred text. The blurring feature also is implemented on images used in the information exchange. A different mechanism is used for blurring of the images, than when used on the text elements described above. In one embodiment of the image blurring task, the color scheme of the image is reused in a manner that enables recognition of object outline even though no details of the clear image are recognizable. A person familiar with the clear image will be able to identify the picture as such but no details, whilst a person that has not seen the image before will have difficulties in guessing what detailed information the image represents. One example of this can be seen in figure 19B and 21 C. Transition table and initiating activity may comprise:

Clear- Blurred

Lay down

Face gone

Unknown face

Blurred - Clear

• Bio

• Movement + PIN

Face

Now a new method for sharing information is described comprising using the above described mechanism of encryption, storing and sharing information in the cloud related to security challenges in the cloud storage industry, specifically sharing large amount of data between different devices or sharing data with many users or both. The method is accompanied by figure 23 to 31 describing how to use a trusted e-id provider.

The figures describe one alternative implementation with the product application Ensafer™. It shall be understood that the techniques described is independent of which product application implements the method, and may be provided using other application products.

There are 5 stakeholders in Ensafer™ Message Broker (EMB) as described in figure 23:

User - A person that uses one or more Client Applications.

• Client Application - An (web) application that uses EMB to provide strong end-to-end

encryption. Ensafer Keychain - A mobile application that runs on the User's smartphone to store and generate encryption keys.

Ensafer™ Message Broker - A service that coordinates message flow between the Client Applications, Ensafer Keychain and e-ID Providers.

· e-ID Provider - A service that provides strong authentication and digital signatures for the user.

Users authenticate with EMB using a trusted e-ID Provider is shown in figure 24: The e-ID Provider issues Certificates to the User. Typically there's one Certificate for authentication (A) and another for signing (S) for every e-ID Provider. The Certificates typically have an expiry date, so there can be multiple sets of historic Certificates for every User for every e-ID Provider. All these Certificates play a role in EMB.

To authenticate with EMB the User must possess a valid Certificate for authentication. This means the Certificate must:

1 . be issued by a trusted Certificate Authority (CA)

2. not be expired

3. not be revoked

4. be applicable for authentication

Historic (expired or revoked) authentication Certificates cannot be used to authenticate with EMB, but they are stored to provide historic evidence of past authentication and to provision new Certificates. To Sign with EMB the User must possess a valid Certificate for signing. This means the

Certificate must:

1 . be issued by a trusted Certificate Authority (CA)

2. not be expired

3. not be revoked

4. be applicable for signing

Historic (expired or revoked) signing Certificates cannot be used to create new signatures with EMB, but they are used to verify historic signatures and to provision new Certificates.

In figure 25 it is described that every Ensafer Keychain device has at least two key pairs called the Device Keys. There's one key pair for encryption and another for signing. The Device Keys are the User's master keys for encrypting information across Client Applications. The Device's public signing keys are signed with the User's e-ID Certificates, and the Device's public encryption keys are signed with the Device's corresponding signing key. The Device's public signing keys must be signed with every e-ID Certificate the User possesses. Device Keys may expire after 2 years. After expiry the User has to generate and sign new Device Keys. Client Application Keys are re-encrypted when Device Keys are renewed.

A User can only have one active Ensafer™ Keychain device, but it's possible to have multiple active backup devices.

In figure 26 it is described that for every Client Application a User has a key pair called the Client Application's Key or just App Key. This key pair is the User's master key for encrypting information within a Client Application. The Client Application's public key is signed with the User's e-ID Certificate. This allows the establishment of trust between the sender and recipient(s) of encrypted information. Any valid e- ID signing Certificate can be used to sign an App Key, and the App Key does not have to be signed for every e-ID Certificate the User possesses. Access to a Client Application's private key can be granted to a Supervisor by the Owner. This is typically used to allow administrators access to data after an employee has quit the job.

The App Keys expire after N days. After expiry the user have to sign new App Keys. The old are key to allow decryption of historic data, but are not used for encryption after expiry.

In figure 27 it is described that Store Keys are used to efficiently share large quantities of encryption keys with many participants. They are signed by the User who creates them.

Recipients are granted access through their signed App Key. In figure 28 it is described that Content Keys are symmetric encryption keys used to actually encrypt content like messages or files. Access to Content Keys are provided

through the Store Keys, allowing efficient sharing of content. Content Keys are themselves not signed, but the content they refer to is signed. Content Keys are the only keys ever exposed to Client Applications.

In figure 29 it is described that together the keys in EMB form a hierarchical structure.

On top is the User which owns all keys through the Device Keys. Access to the Device Keys are protected by the Ensafer™ Keychain and the e-ID Provider. Users have to sign a challenge from the Ensafer™ Keychain using their e-ID Provider in order to use the Device Keys. Device Private Keys are never stored outside the Ensafer™ Keychain. Device Keys are used to protect App Keys, which again are used to protect Store Keys, which again are used to protect Content Keys.

Only Content Keys are ever exposed to Client Applications. Figure 30 A-B describes the detailed flow of information in one alternative embodiment for Ensafer™ between the user, the client app, the Ensafer™ server and the e-ID provider in an message broker authentication process.

Figure 31A-B describes the detailed flow of information in one alternative embodiment for Ensafer™ between the user, the client app, the Ensafer™ server, the Ensafer™ Keychain and the e-ID provider in an message broker Key signing.