WO2015065203A1 - A method of protecting communications - Google Patents
A method of protecting communications Download PDFInfo
- Publication number
- WO2015065203A1 WO2015065203A1 PCT/NZ2014/000198 NZ2014000198W WO2015065203A1 WO 2015065203 A1 WO2015065203 A1 WO 2015065203A1 NZ 2014000198 W NZ2014000198 W NZ 2014000198W WO 2015065203 A1 WO2015065203 A1 WO 2015065203A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- dictionary
- stream
- message
- receiving means
- address
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/70—Type of the data to be coded, other than image and sound
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3084—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method
- H03M7/3088—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction using adaptive string matching, e.g. the Lempel-Ziv method employing the use of a dictionary, e.g. LZ78
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
Definitions
- This invention relates to a method for protecting communications.
- a preferred form of the invention relates to a method of protecting electronic communications by way of a data compression and decompression technique.
- a method of protecting a communication comprising the steps of: a) associating a dictionary with both a computerised sending means and a computerised receiving means;
- the receiving means using the identifier to check whether it correctly identifies the dictionary and, when it does, using another instance of the dictionary to translate the stream so that the message is revealed (the other instance of the dictionary may or may not be identical but is sufficiently similar to enable the translation).
- the dictionary is unique between the owner of the sending means and the owner of the receiving means.
- the dictionary is unique between the sending means and the receiving means.
- the sending means comprises at least one of a server, a desktop computer, a laptop, a tablet, a wearable device and a smart phone.
- the receiving means comprises at least one of a server, a desktop computer, a laptop, a tablet, a wearable device, a smart phone and a key fob.
- the receiving means is in local communication with a computerised intermediary and receives the stream by way of that intermediary.
- the message is revealed on the receiving means or the intermediary.
- the message is revealed on the intermediary.
- the intermediary comprises a pocket stowable device.
- the intermediary comprises a key fob.
- the intermediary comprises a cloud service.
- the sending means and the receiving means each have a plurality of dictionaries for decompressing address streams and such dictionaries are indexed against different people.
- the sending means and the receiving means each have facility to create dictionaries for translating a message, and such creation involves copying an existing dictionary and modifying the copy.
- at part b) representing the message as a stream of dictionary addresses involves compressing the message and, at part d), translating the stream involves decompressing the message.
- the identifier is or is contained in a header for the address stream distinct from the stream itself.
- the identifier is part of the address stream.
- the receiving means assumes a predetermined one or number of the addresses represent the dictionary identifier and uses each dictionary in turn to translate such addresses until the translation for a particular dictionary matches a predetermined value and, when such match is determined, that dictionary is used to translate all or more of the stream.
- the address stream is made available on a web site for downloading and translation by a holder of the receiving means.
- the receiving means comprises a server and the message is revealed by way of a computerised device connected to the server.
- a computerised device adapted for use in a method as above, the device holding the dictionary and a plurality of other dictionaries, each dictionary indexed in the device and unique to a different contact of a holder of the device, the device having means to generate the message such that it is represented by the stream of dictionary addresses and has the identifier, the device having means to send the stream, the device also having means to receive a stream of dictionary addresses and to translate this to a message if the device detects that the stream is associated with a dictionary held in the device.
- Figure 1 is a flowchart illustrating a method of obtaining a Universal Unique
- UUDID Dictionary Identifier
- UUDID Dictionary Identifier
- Figure 3 is a flowchart illustrating a method of verifying that the dictionary used for decompression is relevantly the same as the dictionary used for compression, by decompressing the first two addresses of an incoming compressed stream to yield a first standard verification string and a second standard verification string;
- Figure 4 is a flowchart illustrating a method of checking the integrity and relative match of the dictionary used to decompress a compressed stream compared to the dictionary used in compressing the stream, by comparing a hash value in the incoming stream header with a hash value newly calculated on the dictionary to be tentatively used to decompress the stream;
- Figure 5 illustrates a structure of connections and nodes, including leaf
- Figure 6 illustrates a dictionary structure and a modification of that structure with randomised or pseudo-randomised addresses.
- Figure 7 illustrates a connection record held in RAM and as stored in
- permanent storage such as flash or disk
- client-server configuration of computers where invention compatible algorithms and data structures are resident
- keyfob and smart device configuration where the dictionaries and compression and decompression algorithms are resident on the keyfob, which has air-gap radio connectivity to the smart device
- smart device which comprises two easily separable sides or parts, each including a user interface and one having compression-decompression (codec structures) and algorithms
- codec structures compression-decompression
- Figure 12 illustrates a system for receiving a dictionary, sending a dictionary, and backing up one or more dictionaries
- Figure 13 illustrates three smart devices sending and receiving address
- Figure 14 illustrates a smart device such as a smart heart-rate monitor, a
- mobile device such as a phone
- computer system such as a desktop computer
- a network cloud such as the Internet
- wireless network such as a WiFi network
- a sending device has a dictionary.
- the sending device may be a mainframe computer, a server, a personal computer (eg a desktop or laptop), a tablet or a smart phone, etc.
- the dictionary contains elements at a number of locations and each location has a unique address.
- the addresses may be unique identifiers of node locations, connection record locations, or locations of other types of data elements.
- An address may be an absolute byte address from the start of memory, a relative byte address from the start of the dictionary, a connection record number, or a unique identifier of the location of some other type of data element.
- the sending device also has a software compressor which takes a message, for example an email typed into a software application running on the device, and translates this into a stream of the dictionary addresses.
- the stream may be stored, but is completely separate from the dictionary.
- the stream can be decompressed by a software decompressor on the same or a different device. More particularly, the decompressor receives the address stream, accesses the dictionary, goes to the locations in the dictionary that correspond to the addresses in the stream, and decompresses the nodes or other data elements at those addresses (which may or may not be leaf nodes). This process produces a new instance of the original message information.
- the stream is transmitted to a remote receiving device then such device has a copy of the dictionary, as well its own compressor and decompressor.
- the receiving device uses these to translate the stream back to the message for viewing on a screen associated with the device.
- the dictionary is not transmitted with the stream but has rather been installed in the sending and receiving devices previously. This means that if the stream is intercepted or otherwise received by an unauthorised device, it cannot be deciphered because that device does not possess or have access to the dictionary. Without the dictionary it has no means of translating the stream.
- the dictionaries on the sending and receiving devices may not be identical in all respects, but nonetheless have sufficient similarity to enable them to correctly decompress a stream of dictionary addresses sent from one device to the other.
- Dictionary address streams transmitted between users can only be translated if there are matching dictionaries on their devices. Each dictionary pair is associated with a unique dictionary identifier. When a stream of dictionary addresses is transmitted it transmits with the identifier. On receipt of the stream the receiving device reads the identifier and runs a search to see whether it contains a dictionary with a matching identifier. If it does then software on the receiving device accesses the relevant dictionary to decompress the stream and, if not, it generates an error message and the stream is not decompressed.
- the identifier is in each case a value of a field in a header forming part of the address stream.
- the identifier may take the form of a hash value calculated from the dictionary used in compressing the message.
- the header may comprise two standard verification string addresses which, if decompressed with a correct dictionary, will decompress to a relatively long standard string value such as 'supercalifragilisticexpedotious'.
- the header may contain a Universal Unique Dictionary Identifier of the dictionary (and the value is stored in the dictionary header) used to compress the message.
- multiple dictionaries are created from an initial dictionary. This is done by copying the initial dictionary and changing the address of some or all nodes or other data elements of the copy. It is achieved by way of a random, pseudo-random or other software algorithm.
- the address stream which is transmitted may not identify every dictionary address that corresponds to the original message.
- the transmitted stream may be lossy in, for example, the transmission of photographic, audio and video messages.
- a particular advantage of a preferred embodiment of the invention is that messages can be sent and received without the recipient having to use a password login procedure to gain access to a message. This is because if the recipient does not have a matching dictionary then the message cannot be accessed.
- the source of the email is automatically authenticated when it is determined there is a match between the sender and recipient dictionaries.
- a human sender may have a computerised device (eg a PC, tablet or smartphone) which contains an email address book and a collection of dictionaries. At least some of the contacts in the address book are recorded against a unique one of the dictionaries. This is indicated by a unique identifier for the dictionary concerned being indexed against the contact. If a contact is recorded against a dictionary then it means that he or she will have a copy of the relevant dictionary on his or her own computerised device.
- a software application goes to the address book and obtains the dictionary identifier indexed against that person 101. As indicated at 102 and 103, the software application then searches the collection of dictionaries for a dictionary indexed against the same identifier.
- an error message is returned 104. But if a match is found then the application proceeds to create an address stream header 105 identifying the dictionary. From there the software application receives 106 a communication to be sent, which is, at that point, uncompressed data. The application compresses the data by translating it into a stream of addresses relevant to the dictionary 107. The sender then sends the header and address stream to the intended contact, for example by email.
- the contact receives the address stream and header at his or her own computerised device 201.
- a software application running on that device reads the header 202 and searches a local collection of dictionaries for a dictionary identified by the header 203, 204, 205. If no matching dictionary is found then an error code is returned 206. However if a matching dictionary is found then the software application begins processing the address stream 207. This involves using the matching dictionary to decompress the address stream, therefore translating it into the communication that the sender intended the recipient to have 208.
- an address stream may be sent and received without a dictionary identifier header of the type described above.
- the address stream may contain, at a predetermined position or positions, a series of dictionary addresses which serve as a dictionary identifier.
- the pre-decompression process performs a pre-decompression string verification test on a stream that lacks a header but whose first two addresses are string verification addresses.
- the process reads the first 'X' bits of the address stream 301 where 'X' is the number of bits in an address of the stream, assuming a single fixed size address format.
- the application treats these as a valid address 302 then begins a loop 303 - 308 to access the available local dictionaries.
- a local dictionary decompresses the first and second assumed verification string addresses to the correct hard-coded verification strings 304-Y and 308-Y then the address stream is decompressed using that dictionary 309.
- the software application receives an address stream and reads the first standard verification string address value.
- the application decompresses that address and compares the decompressed output to the first standard verification string address value hard-coded in the application. In the event of a match, the application applies the same process to the second standard verification string address value and, in the event of a match, decompresses the balance of the address stream.
- a standard verification string can be a made-up string that contains a number of commonly-found sub-strings, and such a verification string in the case of English text could, for example, be something similar to "supercalifragilisticexpialidotious".
- the pre-decompression string verification check may in some cases be used in combination with the sort of header identifier described for figures 1 and 2.
- an address stream is received by the recipient software application.
- the application reads a hash value in a predetermined field of the stream 401 then begins a loop 402- 405, accessing local address dictionaries.
- the application performs a hash function calculation on the current dictionary 403, and in the event this value matches the address stream header hash value 404-Y the process decompresses the address stream using that dictionary, or calls a decompress service to decompress the stream using that dictionary. If the dictionary search loop completes without the process calculating a matching hash value 405-Y then the application returns an error code and terminates the process 406.
- a software application receives an identifier for the symbol group "common”, accesses a selected dictionary and finds a respective tree 501.
- the compressor then emits the address of the root node of the tree 502.
- the compressor may emit addresses of sub-tree nodes and/or leaf nodes 503.
- the ellipsis points indicate one or more groups of addresses which will correctly decompress to the symbol group "common”. Therefore the compressor routine may properly emit a different address or address group when encountering in an input stream different instances of the same symbol group.
- the software application may generate a new dictionary by copying an existing one, and then changing the addresses by way of a
- a data tree 601 exists in the first dictionary at root node address "327660” which decompresses to the string "com”.
- Linear memory connection records 602 and 603 form part of the respective tree structure, where the root node record 603 exists at memory address "327660", and the sub-tree node connection record 602 exists at address "307642".
- the tree 601 forms part of the newly copied dictionary which is modified so that the structure 601 exists at different addresses 604, the root node 604 exists at address "530670" and the sub-tree node exists at address "62248".
- the two node records are illustrated at 606 and 605.
- the new dictionary retains the structural relationships of the original, so, for example, all pointers in the original dictionary 601 that point to location "307642" will in the new dictionary 604 point to "62248".
- the process of creating a new dictionary can take place using an original dictionary located in RAM, or can take place using a dictionary located in permanent storage with a record structure as illustrated in figure 7. Connection Record in RAM and Permanent Storage
- connection record 701 may, for example, be located at a RAM address, eg
- This RAM resident record is kept in permanent storage 703 and its first field 703-F1 contains the value of the address 702, and its remaining fields 703-F2 to 703-F6 contain the values of the RAM resident record 701 -F1 to 701-F5.
- a server 802 accesses a network cloud 801 via connectivity means such as a broadband phone line.
- the server's remote network communication unit 810 receives an address stream 830 from the cloud and passes this to a software program 812, for example an email client.
- the program 812 calls codec decompressor service 826 which decompresses the address stream 830, producing decompressed stream 832.
- the program then passes the decompressed stream 832 to the server's local network communication unit 814. From there it proceeds to a local network such as by Ethernet cable to personal computer 803 with its user interface 806.
- the user's response 840 is transmitted back from the computer 803 to the server's local network communication unit 814, then to the program 812 which calls a codec compressor service 824 which, in turn, accesses dictionaries 818 in memory 816 and compresses the user response 840. This yields an address stream 842, which is transmitted back to the cloud 801.
- a device 902 for example a smart phone, receives, via its WIFI unit 914, a dictionary address stream 930 from a network cloud 901 .
- the stream represents an email message and some of its addresses may represent metadata.
- a software application 950 running on the phone, redirects the stream 930 to the phone's local communications unit 912, for example one which operates with Bluetooth. This then transmits the stream to a nearby separate device, for example a key fob 903.
- the key fob's communication unit 906 receives the stream.
- a software application 920 running on the key fob decompresses the stream, ie by translating dictionary addresses in the manner described above. This is achieved by way of a decompressor routine 922 and a local dictionary 906 selected from one or more dictionaries stored in memory 908 on the key fob.
- the decompressed stream 940 is then transmitted back to the phone via the key fob's communication unit 906.
- the phone receives the decompressed stream 912, and displays it via a user interface 960.
- the key fob unit contains a microphone and or video camera, and can compress sounds or video data into a stream of dictionary addresses and transmit this to the phone.
- a smart phone is able to connect, via a phone network or similar, to another phone and receive a compressed audio stream (being a stream of dictionary addresses).
- the phones each have a collection of dictionaries and a compression and decompression software routine to enable them to compress and decompress such streams.
- a smart device comprises two physically separable parts 1010 and 1040. These are separate sides of the device, able to physically connect to and release from one another.
- One side 1010 can connect to a network cloud 1001 and includes communication means 1012 such as WiFi 1014 and Bluetooth 1016. It receives dictionary address streams 1002 from the cloud, and sends dictionary address streams 1068 to the cloud via a remote network communication unit 1014.
- a software application such as an email client, calls a receive-emit service 1022 of an application 1020.
- the service 1022 redirects an incoming address stream 1002 to the local communication unit 1016, and, through this to a corresponding local communication unit 1052 of the second side 1040.
- An application 1060 running in the second side receives the address stream 1002 and decompresses it 1064 using a local dictionary 1090, assuming an appropriate local dictionary is found, for example using the methods described above.
- the decompressed stream 1066 is then displayed by an application 1070 on a user interface 1080.
- the application 1070 may include elements of an email client such that the user can respond to the decompressed stream in a way similar to responding to an email received by an email client installed on side 1010 and displayed in user interface 1030.
- the application 1070 receives user input and calls a compressor service 1062 which compresses an uncompressed stream 1082. This may involve generation of an address stream header using a method as described previously.
- a codec service 1060 transmits the address stream 1068 via the local communication unit 1052 to the first side 1010, which address stream 1068 is then transmitted back to the cloud, for example as a reply (ie a stream of dictionary addresses). In this embodiment only dictionary address streams are radiated locally and transmitted to and received from the cloud.
- a cloud service 1 104 exists in the Internet.
- a smart device 1 1 10 operating according to the invention connects to the cloud. This may involve initial uncompressed
- the smart device transmits dictionary address streams 1 1 14 to the storage facility of the cloud service, and retrieves previously stored dictionary address streams 1 118. This may involve an interactive process of transmission and retrieval of addresses in a chat-like manner. In the case 1 120 where dictionaries and compression and decompression elements are separate from the smart device, these may be in communication 1 1 13 with the device.
- the cloud services may involve the storage of emails, passwords, backups, posts, comments on posts, various forms of social media content, other forms of private data, and so on. This private content may be stored as dictionary address streams on the storage facility provided by the cloud service. Dictionaries
- a device 1210 comprises a codec service app 1230 running according to the present invention. It has memory 1212 storing one or more dictionaries D1 , D2, ... D999, ... , a battery power supply 1214, and a power interface 1218 such as a USB port for charging the battery and/or run the device. It also has an application 1220 used to receive a dictionary from outside of the device, transmit a dictionary from the device, and back-up to an external unit the one or more dictionaries inside the device either selectively or collectively. A 'receive dictionary' function 1222 of the application 1220 prevents the storage of duplicate dictionaries as determined by dictionary identifiers.
- a send dictionary function 1224 operates to send the user's primary dictionary, or to create and send a unique dictionary from a user's primary dictionary.
- a backup dictionary function 1226 allows a user to backup a selection from, or all of, the dictionaries. Backup to external storage may be effected via a USB port or other communication means.
- a network cloud 1301 such as the Internet, includes a social web site 1302.
- a user smart device 1310 incorporates elements 1312 complimentary with the inventive concept. For example, it has one or more dictionaries 1314 and a user interface 1316.
- the user's primary dictionary has identifier "123" (see item 1314) and he or she has given a copy of that dictionary to the smart devices 1320 and 1330 of two friends.
- Each of the three smart devices has a copy or the original of the user's primary dictionary 1314.
- the user sends dictionary address streams 1351 to the social web site and these are stored 1340 there, for example as posts.
- the user's friends may download those address streams, and decompress them using dictionary instances 1324 and 1334.
- the user's friends may also upload dictionary address streams produced by compressors using the dictionary instances 324 and 1334 respectively, for instance as comments on the user's posts.
- the user can download these streams 1354 and 1356 and decompress them with his or her primary dictionary 1314.
- a network cloud 1401 such as the Internet includes cloud services 1402 such as email and social Web site services.
- a computer system 1422 such as a desktop computer, laptop or server communicates with a smart device 1424 such as a Bluetooth connected heart-rate monitor, GSM connected smart watch, or Bluetooth connected altimeter; and the computer system 1422 can communicate with a mobile device 1426 such as a smart phone, tablet or netbook.
- a smart device 1424 such as a Bluetooth connected heart-rate monitor, GSM connected smart watch, or Bluetooth connected altimeter
- a mobile device 1426 such as a smart phone, tablet or netbook.
- Each type of device 1422, 1424 and 1426 can communicate with each other and the network cloud 1401.
- the same types of devices 1432, 1434 and 1436 can communicate over a wireless network 1403, such as WiFi, with other devices or elements of the network cloud 1401.
- the same types of devices 1442, 1444 and 1446 can also communicate with each other over local direct connections 1450, 1452 and 1454 and such communication might be via wired or wireless means such as Bluetooth. It will be appreciated that the invention can be employed to facilitate secure communications between banks and their customers, between medical professionals and their patients, between friends, between business partners, between Governmental organisations, and between military units, etc. There are however many more applications and these are offered as but a few examples.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
A method of protecting a communication, comprising the steps of: a) associating a dictionary with both a computerised sending means (eg a server, personal computer, laptop, tablet or smartphone) and a computerised receiving means (eg a server, personal computer, laptop, tablet or smartphone); b) using the sending means to cause a message to be represented by a stream of dictionary addresses such that it has, separate to or within the stream, a dictionary identifier; c) using the sending means to transmit the stream to the receiving means; and d) the receiving device using the identifier to check whether it correctly identifies the dictionary and, when it does, using another instance of the dictionary to translate the stream so that the message is revealed (the other instance of the dictionary mayor may not be identical but is sufficiently similar to enable the stream to be translated).
Description
TITLE
A method of protecting communications.
FIELD OF INVENTION
This invention relates to a method for protecting communications. A preferred form of the invention relates to a method of protecting electronic communications by way of a data compression and decompression technique.
BACKGROUND
Breaches of security are not uncommon in the field of electronic communications, whether they be transmitted wirelessly or by hardwire. Even if encrypted,
Governmental, business or private communications are often intercepted and decrypted by a determined hostile party armed with sufficient computing resources. Because all the information of the message is contained within the transmission, it is often just a matter of time before a hostile party is able to decrypt it. Phishing attacks are also prevalent, where a malicious party sends an email or the like purporting to be from a bank or other organisation, in an attempt to dupe the recipient into disclosing online banking or other details. It is an object of some embodiments of the invention to go at least some way towards addressing one or more of the above issues. While this object applies to preferred embodiments, it should not be taken as a limitation on the scope of the claims. The object of the invention per se is simply to provide the public with a useful choice.
The applicant has previously been granted US patent No. 6,414,610 titled "data compression". The teachings of that document are incorporated by reference.
The term "comprising" if and when used in relation to a combination of features should not be taken as excluding the possibility of an additional unspecified feature or features.
SUMMARY OF THE INVENTION
According to one aspect of the invention there is provided a method of protecting a communication, comprising the steps of:
a) associating a dictionary with both a computerised sending means and a computerised receiving means;
b) using the sending means to cause a message to be represented by a stream of dictionary addresses such that it has, separate to or within the stream, a dictionary identifier;
c) using the sending means to transmit the stream to the receiving means; and
d) the receiving means using the identifier to check whether it correctly identifies the dictionary and, when it does, using another instance of the dictionary to translate the stream so that the message is revealed (the other instance of the dictionary may or may not be identical but is sufficiently similar to enable the translation).
Optionally the dictionary is unique between the owner of the sending means and the owner of the receiving means.
Optionally the dictionary is unique between the sending means and the receiving means. Optionally the sending means comprises at least one of a server, a desktop computer, a laptop, a tablet, a wearable device and a smart phone.
Optionally the receiving means comprises at least one of a server, a desktop computer, a laptop, a tablet, a wearable device, a smart phone and a key fob.
Optionally the receiving means is in local communication with a computerised intermediary and receives the stream by way of that intermediary.
Optionally the message is revealed on the receiving means or the intermediary.
Optionally the message is revealed on the intermediary. Optionally the intermediary comprises a pocket stowable device. Optionally the intermediary comprises a key fob.
Optionally the intermediary comprises a cloud service.
Optionally the sending means and the receiving means each have a plurality of dictionaries for decompressing address streams and such dictionaries are indexed against different people.
Optionally the sending means and the receiving means each have facility to create dictionaries for translating a message, and such creation involves copying an existing dictionary and modifying the copy. Optionally at part b) representing the message as a stream of dictionary addresses involves compressing the message and, at part d), translating the stream involves decompressing the message.
Optionally the identifier is or is contained in a header for the address stream distinct from the stream itself.
Optionally the identifier is part of the address stream.
Optionally on receipt of the stream the receiving means assumes a predetermined one or number of the addresses represent the dictionary identifier and uses each dictionary in turn to translate such addresses until the translation for a particular dictionary matches a predetermined value and, when such match is determined, that dictionary is used to translate all or more of the stream. Optionally the address stream is made available on a web site for downloading and translation by a holder of the receiving means.
Optionally the receiving means comprises a server and the message is revealed by way of a computerised device connected to the server.
According to a further aspect of the invention there is provided a computerised device adapted for use in a method as above, the device holding the dictionary and a plurality of other dictionaries, each dictionary indexed in the device and unique to a different contact of a holder of the device, the device having means to generate the message such that it is represented by the stream of dictionary addresses and has the identifier, the device having means to send the stream, the device also having means to receive a stream of dictionary addresses and to translate this to a
message if the device detects that the stream is associated with a dictionary held in the device.
DRAWINGS
Some preferred embodiments of the invention will hereafter be described by way of example and with reference to the accompanying drawings, of which:
Figure 1 is a flowchart illustrating a method of obtaining a Universal Unique
Dictionary Identifier (UUDID) which is used to select a dictionary with which to compress an input stream; Figure 2 is a flowchart illustrating a method of obtaining a Universal Unique
Dictionary Identifier (UUDID) from an incoming address stream header which is then used to select a dictionary with which to decompress the stream;
Figure 3 is a flowchart illustrating a method of verifying that the dictionary used for decompression is relevantly the same as the dictionary used for compression, by decompressing the first two addresses of an incoming compressed stream to yield a first standard verification string and a second standard verification string;
Figure 4 is a flowchart illustrating a method of checking the integrity and relative match of the dictionary used to decompress a compressed stream compared to the dictionary used in compressing the stream, by comparing a hash value in the incoming stream header with a hash value newly calculated on the dictionary to be tentatively used to decompress the stream; Figure 5 illustrates a structure of connections and nodes, including leaf
nodes, which decompress to the text string "common", together with outputs of the compressor which will correctly decompress to "common";
Figure 6 illustrates a dictionary structure and a modification of that structure with randomised or pseudo-randomised addresses.
Figure 7 illustrates a connection record held in RAM and as stored in
permanent storage such as flash or disk;
illustrates a client-server configuration of computers where invention compatible algorithms and data structures are resident; illustrates a keyfob and smart device configuration where the dictionaries and compression and decompression algorithms are resident on the keyfob, which has air-gap radio connectivity to the smart device; illustrates a smart device which comprises two easily separable sides or parts, each including a user interface and one having compression-decompression (codec structures) and algorithms; illustrates a device having elements of the present invention physically separate, the device being able to transmit address streams to a network cloud such as the Internet, and retrieve address streams from the cloud;
Figure 12 illustrates a system for receiving a dictionary, sending a dictionary, and backing up one or more dictionaries;
Figure 13 illustrates three smart devices sending and receiving address
streams from a social web site; and
Figure 14 illustrates a smart device such as a smart heart-rate monitor, a
mobile device such as a phone, and computer system such as a desktop computer, communicating with a network cloud such as the Internet, by way of a wireless network such as a WiFi network, and communicating with another device.
DETAILED DESCRIPTION
In a preferred embodiment of the invention a sending device has a dictionary. The sending device may be a mainframe computer, a server, a personal computer (eg a desktop or laptop), a tablet or a smart phone, etc. The dictionary contains elements at a number of locations and each location has a unique address. The addresses may be unique identifiers of node locations, connection record locations, or locations of other types of data elements. An address may be an absolute byte address from the start of memory, a relative byte address from the start of the
dictionary, a connection record number, or a unique identifier of the location of some other type of data element.
The sending device also has a software compressor which takes a message, for example an email typed into a software application running on the device, and translates this into a stream of the dictionary addresses. The stream may be stored, but is completely separate from the dictionary. The stream can be decompressed by a software decompressor on the same or a different device. More particularly, the decompressor receives the address stream, accesses the dictionary, goes to the locations in the dictionary that correspond to the addresses in the stream, and decompresses the nodes or other data elements at those addresses (which may or may not be leaf nodes). This process produces a new instance of the original message information. In the event that the stream is transmitted to a remote receiving device then such device has a copy of the dictionary, as well its own compressor and decompressor. The receiving device uses these to translate the stream back to the message for viewing on a screen associated with the device. The dictionary is not transmitted with the stream but has rather been installed in the sending and receiving devices previously. This means that if the stream is intercepted or otherwise received by an unauthorised device, it cannot be deciphered because that device does not possess or have access to the dictionary. Without the dictionary it has no means of translating the stream. In some embodiments of the invention the dictionaries on the sending and receiving devices may not be identical in all respects, but nonetheless have sufficient similarity to enable them to correctly decompress a stream of dictionary addresses sent from one device to the other. In the case of a network of users there is ideally a unique dictionary for each pair of them. For example if a user has 50 email contacts then that person may have 50 unique dictionaries on his or her computerised device. Each of that person's contacts will have a copy of a respective one of the dictionaries. Those contacts will also have a unique dictionary for each of their other contacts, and so on.
Dictionary address streams transmitted between users can only be translated if there are matching dictionaries on their devices. Each dictionary pair is
associated with a unique dictionary identifier. When a stream of dictionary addresses is transmitted it transmits with the identifier. On receipt of the stream the receiving device reads the identifier and runs a search to see whether it contains a dictionary with a matching identifier. If it does then software on the receiving device accesses the relevant dictionary to decompress the stream and, if not, it generates an error message and the stream is not decompressed.
Preferably the identifier is in each case a value of a field in a header forming part of the address stream. The identifier may take the form of a hash value calculated from the dictionary used in compressing the message. In some embodiments of the invention the header may comprise two standard verification string addresses which, if decompressed with a correct dictionary, will decompress to a relatively long standard string value such as 'supercalifragilisticexpedotious'. The header may contain a Universal Unique Dictionary Identifier of the dictionary (and the value is stored in the dictionary header) used to compress the message.
According to a preferred embodiment of the invention multiple dictionaries are created from an initial dictionary. This is done by copying the initial dictionary and changing the address of some or all nodes or other data elements of the copy. It is achieved by way of a random, pseudo-random or other software algorithm.
In some aspects of the invention the address stream which is transmitted may not identify every dictionary address that corresponds to the original message. For example the transmitted stream may be lossy in, for example, the transmission of photographic, audio and video messages.
A particular advantage of a preferred embodiment of the invention is that messages can be sent and received without the recipient having to use a password login procedure to gain access to a message. This is because if the recipient does not have a matching dictionary then the message cannot be accessed. The source of the email is automatically authenticated when it is determined there is a match between the sender and recipient dictionaries.
It will be appreciated that the invention can be used to protect all manner of communications, including for example local radio transmissions by WIFI or Bluetooth.
Address Stream Header
Referring to figure 1 , a human sender may have a computerised device (eg a PC, tablet or smartphone) which contains an email address book and a collection of dictionaries. At least some of the contacts in the address book are recorded against a unique one of the dictionaries. This is indicated by a unique identifier for the dictionary concerned being indexed against the contact. If a contact is recorded against a dictionary then it means that he or she will have a copy of the relevant dictionary on his or her own computerised device. When the sender has selected a contact, a software application goes to the address book and obtains the dictionary identifier indexed against that person 101. As indicated at 102 and 103, the software application then searches the collection of dictionaries for a dictionary indexed against the same identifier. If no match is found then an error message is returned 104. But if a match is found then the application proceeds to create an address stream header 105 identifying the dictionary. From there the software application receives 106 a communication to be sent, which is, at that point, uncompressed data. The application compresses the data by translating it into a stream of addresses relevant to the dictionary 107. The sender then sends the header and address stream to the intended contact, for example by email.
Pre-Decompression Search
Referring to figure 2, the contact receives the address stream and header at his or her own computerised device 201. A software application running on that device reads the header 202 and searches a local collection of dictionaries for a dictionary identified by the header 203, 204, 205. If no matching dictionary is found then an error code is returned 206. However if a matching dictionary is found then the software application begins processing the address stream 207. This involves using the matching dictionary to decompress the address stream, therefore translating it into the communication that the sender intended the recipient to have 208.
Pre-Decompression Standard String Verification
In some cases an address stream may be sent and received without a dictionary identifier header of the type described above. However in that event the address stream may contain, at a predetermined position or positions, a series of dictionary
addresses which serve as a dictionary identifier. For example, referring to figure 3, the pre-decompression process performs a pre-decompression string verification test on a stream that lacks a header but whose first two addresses are string verification addresses. The process reads the first 'X' bits of the address stream 301 where 'X' is the number of bits in an address of the stream, assuming a single fixed size address format. The application treats these as a valid address 302 then begins a loop 303 - 308 to access the available local dictionaries. In the event that a local dictionary decompresses the first and second assumed verification string addresses to the correct hard-coded verification strings 304-Y and 308-Y then the address stream is decompressed using that dictionary 309.
Preferably, the software application receives an address stream and reads the first standard verification string address value. The application decompresses that address and compares the decompressed output to the first standard verification string address value hard-coded in the application. In the event of a match, the application applies the same process to the second standard verification string address value and, in the event of a match, decompresses the balance of the address stream. A standard verification string can be a made-up string that contains a number of commonly-found sub-strings, and such a verification string in the case of English text could, for example, be something similar to "supercalifragilisticexpialidotious". The pre-decompression string verification check may in some cases be used in combination with the sort of header identifier described for figures 1 and 2.
Pre-Decompression Hash Value Check
Referring to figure 4, according to an embodiment of the invention an address stream is received by the recipient software application. The application reads a hash value in a predetermined field of the stream 401 then begins a loop 402- 405, accessing local address dictionaries. The application performs a hash function calculation on the current dictionary 403, and in the event this value matches the address stream header hash value 404-Y the process decompresses the address stream using that dictionary, or calls a decompress service to decompress the stream using that dictionary. If the dictionary search loop completes without the process calculating a matching hash value 405-Y then the application returns an error code and terminates the process 406.
Address Stream Obfuscation
Referring to figure 5, according to some embodiments of the invention, a software application receives an identifier for the symbol group "common", accesses a selected dictionary and finds a respective tree 501. The compressor then emits the address of the root node of the tree 502. Alternatively, the compressor may emit addresses of sub-tree nodes and/or leaf nodes 503. At item 503 the ellipsis points indicate one or more groups of addresses which will correctly decompress to the symbol group "common". Therefore the compressor routine may properly emit a different address or address group when encountering in an input stream different instances of the same symbol group.
Unique Dictionary Generation
Referring to figure 6, the software application may generate a new dictionary by copying an existing one, and then changing the addresses by way of a
randomising, pseudo-randomising or other process. For example, a data tree 601 exists in the first dictionary at root node address "327660" which decompresses to the string "com". Linear memory connection records 602 and 603 form part of the respective tree structure, where the root node record 603 exists at memory address "327660", and the sub-tree node connection record 602 exists at address "307642".
The tree 601 forms part of the newly copied dictionary which is modified so that the structure 601 exists at different addresses 604, the root node 604 exists at address "530670" and the sub-tree node exists at address "62248". The two node records (expressed in the form of connection records) are illustrated at 606 and 605.
The new dictionary retains the structural relationships of the original, so, for example, all pointers in the original dictionary 601 that point to location "307642" will in the new dictionary 604 point to "62248". The process of creating a new dictionary can take place using an original dictionary located in RAM, or can take place using a dictionary located in permanent storage with a record structure as illustrated in figure 7.
Connection Record in RAM and Permanent Storage
Referring to figure 7, according to some embodiments of the invention a connection record 701 may, for example, be located at a RAM address, eg
"634190" 702. This RAM resident record is kept in permanent storage 703 and its first field 703-F1 contains the value of the address 702, and its remaining fields 703-F2 to 703-F6 contain the values of the RAM resident record 701 -F1 to 701-F5.
Server Implementation
Referring to figure 8, according to some embodiments of the invention a server 802 accesses a network cloud 801 via connectivity means such as a broadband phone line. The server's remote network communication unit 810 receives an address stream 830 from the cloud and passes this to a software program 812, for example an email client. The program 812 calls codec decompressor service 826 which decompresses the address stream 830, producing decompressed stream 832. The program then passes the decompressed stream 832 to the server's local network communication unit 814. From there it proceeds to a local network such as by Ethernet cable to personal computer 803 with its user interface 806. The user's response 840 is transmitted back from the computer 803 to the server's local network communication unit 814, then to the program 812 which calls a codec compressor service 824 which, in turn, accesses dictionaries 818 in memory 816 and compresses the user response 840. This yields an address stream 842, which is transmitted back to the cloud 801.
Keyfob Implementation
Referring to figure 9, in a further embodiment of the invention a device 902, for example a smart phone, receives, via its WIFI unit 914, a dictionary address stream 930 from a network cloud 901 . In this case the stream represents an email message and some of its addresses may represent metadata. A software application 950, running on the phone, redirects the stream 930 to the phone's local communications unit 912, for example one which operates with Bluetooth. This then transmits the stream to a nearby separate device, for example a key fob 903.
The key fob's communication unit 906 receives the stream. A software application 920 running on the key fob decompresses the stream, ie by translating dictionary addresses in the manner described above. This is achieved by way of a
decompressor routine 922 and a local dictionary 906 selected from one or more dictionaries stored in memory 908 on the key fob. The decompressed stream 940 is then transmitted back to the phone via the key fob's communication unit 906. The phone receives the decompressed stream 912, and displays it via a user interface 960.
In a further embodiment, the key fob unit contains a microphone and or video camera, and can compress sounds or video data into a stream of dictionary addresses and transmit this to the phone.
In a further embodiment of the invention a smart phone is able to connect, via a phone network or similar, to another phone and receive a compressed audio stream (being a stream of dictionary addresses). The phones each have a collection of dictionaries and a compression and decompression software routine to enable them to compress and decompress such streams.
Dual-sided Smart Phone Implementation
Referring to figure 10, according to a further embodiment a smart device comprises two physically separable parts 1010 and 1040. These are separate sides of the device, able to physically connect to and release from one another. One side 1010 can connect to a network cloud 1001 and includes communication means 1012 such as WiFi 1014 and Bluetooth 1016. It receives dictionary address streams 1002 from the cloud, and sends dictionary address streams 1068 to the cloud via a remote network communication unit 1014.
A software application, such as an email client, calls a receive-emit service 1022 of an application 1020. The service 1022 redirects an incoming address stream 1002 to the local communication unit 1016, and, through this to a corresponding local communication unit 1052 of the second side 1040.
An application 1060 running in the second side receives the address stream 1002 and decompresses it 1064 using a local dictionary 1090, assuming an appropriate local dictionary is found, for example using the methods described above. The decompressed stream 1066 is then displayed by an application 1070 on a user interface 1080. By way of example, the application 1070 may include elements of an email client such that the user can respond to the decompressed stream in a
way similar to responding to an email received by an email client installed on side 1010 and displayed in user interface 1030.
The application 1070 receives user input and calls a compressor service 1062 which compresses an uncompressed stream 1082. This may involve generation of an address stream header using a method as described previously. A codec service 1060 transmits the address stream 1068 via the local communication unit 1052 to the first side 1010, which address stream 1068 is then transmitted back to the cloud, for example as a reply (ie a stream of dictionary addresses). In this embodiment only dictionary address streams are radiated locally and transmitted to and received from the cloud.
Cloud Service
Referring to figure 11 , in a further embodiment of the invention a cloud service 1 104 exists in the Internet. A smart device 1 1 10 operating according to the invention connects to the cloud. This may involve initial uncompressed
communication of a password and user ID. Once connected, the smart device transmits dictionary address streams 1 1 14 to the storage facility of the cloud service, and retrieves previously stored dictionary address streams 1 118. This may involve an interactive process of transmission and retrieval of addresses in a chat-like manner. In the case 1 120 where dictionaries and compression and decompression elements are separate from the smart device, these may be in communication 1 1 13 with the device. The cloud services may involve the storage of emails, passwords, backups, posts, comments on posts, various forms of social media content, other forms of private data, and so on. This private content may be stored as dictionary address streams on the storage facility provided by the cloud service. Dictionaries
Referring to figure 12, a device 1210 comprises a codec service app 1230 running according to the present invention. It has memory 1212 storing one or more dictionaries D1 , D2, ... D999, ... , a battery power supply 1214, and a power interface 1218 such as a USB port for charging the battery and/or run the device. It also has an application 1220 used to receive a dictionary from outside of the device, transmit a dictionary from the device, and back-up to an external unit the one or more dictionaries inside the device either selectively or collectively.
A 'receive dictionary' function 1222 of the application 1220 prevents the storage of duplicate dictionaries as determined by dictionary identifiers. It will not store a dictionary in memory 1212 if it has a size greater than a predetermined amount, and it only allows receipt of one dictionary in a single receiving session. A send dictionary function 1224 operates to send the user's primary dictionary, or to create and send a unique dictionary from a user's primary dictionary.
A backup dictionary function 1226 allows a user to backup a selection from, or all of, the dictionaries. Backup to external storage may be effected via a USB port or other communication means.
Social Web Site
Referring to figure 13, in a further embodiment of the invention a network cloud 1301 , such as the Internet, includes a social web site 1302. A user smart device 1310 incorporates elements 1312 complimentary with the inventive concept. For example, it has one or more dictionaries 1314 and a user interface 1316. The user's primary dictionary has identifier "123" (see item 1314) and he or she has given a copy of that dictionary to the smart devices 1320 and 1330 of two friends. Each of the three smart devices has a copy or the original of the user's primary dictionary 1314.
The user sends dictionary address streams 1351 to the social web site and these are stored 1340 there, for example as posts. The user's friends may download those address streams, and decompress them using dictionary instances 1324 and 1334. The user's friends may also upload dictionary address streams produced by compressors using the dictionary instances 324 and 1334 respectively, for instance as comments on the user's posts. The user can download these streams 1354 and 1356 and decompress them with his or her primary dictionary 1314.
Referring to figure 14, a network cloud 1401 such as the Internet includes cloud services 1402 such as email and social Web site services. A computer system 1422 such as a desktop computer, laptop or server communicates with a smart device 1424 such as a Bluetooth connected heart-rate monitor, GSM connected smart watch, or Bluetooth connected altimeter; and the computer system 1422 can
communicate with a mobile device 1426 such as a smart phone, tablet or netbook. Each type of device 1422, 1424 and 1426 can communicate with each other and the network cloud 1401. The same types of devices 1432, 1434 and 1436 can communicate over a wireless network 1403, such as WiFi, with other devices or elements of the network cloud 1401. The same types of devices 1442, 1444 and 1446 can also communicate with each other over local direct connections 1450, 1452 and 1454 and such communication might be via wired or wireless means such as Bluetooth. It will be appreciated that the invention can be employed to facilitate secure communications between banks and their customers, between medical professionals and their patients, between friends, between business partners, between Governmental organisations, and between military units, etc. There are however many more applications and these are offered as but a few examples.
While some preferred embodiments of the invention have been described by way of example, it should be appreciated that modifications and improvements can occur without departing from the scope of the following claims.
Claims
1. A method of protecting a communication, comprising the steps of:
a) associating a dictionary with both a computerised sending means and a computerised receiving means;
b) using the sending means to cause a message to be represented by a stream of dictionary addresses such that it has, separate to or within the stream, a dictionary identifier;
c) using the sending means to transmit the stream to the receiving means; and
d) the receiving means using the identifier to check whether it correctly identifies the dictionary and, when it does, using another instance of the dictionary to translate the stream so that the message is revealed (the other instance of the dictionary may or may not be identical but is sufficiently similar to enable the stream to be translated).
2. A method according to claim 1 , wherein the dictionary is unique between the owner of the sending means and the owner of the receiving means.
3. A method according to claim 1 or 2, wherein the dictionary is unique between the sending means and the receiving means.
4. A method according to claim 1 , 2 or 3, wherein the sending means comprises at least one of a server, a desktop computer, a laptop, a tablet, a wearable device and a smart phone.
5. A method according to any one of the preceding claims, wherein the receiving means comprises at least one of a server, a desktop computer, a laptop, a tablet, a wearable device, a smart phone and a key fob.
6. A method according to any one of the preceding claims, wherein the receiving means is in local communication with a computerised intermediary and receives the stream by way of that intermediary.
7. A method according to claim 6, wherein the message is revealed on the receiving means or the intermediary.
8. A method according to claim 7, wherein the message is revealed on the intermediary.
9. A method according to claim 6, 7 or 8, wherein the intermediary comprises a pocket stowable device.
10. A method according to claim 9, wherein the intermediary comprises a key fob.
11. A method according to claim 6, wherein the intermediary comprises a cloud service.
12. A method according to any one of the preceding claims, wherein the sending means and the receiving means each have a plurality of dictionaries for decompressing address streams and such dictionaries are indexed against different people.
13. A method according to any one of the preceding claims, wherein the sending means and the receiving means each have facility to create dictionaries for translating a message, and such creation involves copying an existing dictionary and modifying the copy.
14. A method according to any one of the preceding claims, wherein for claim 1 part b) representing the message as a stream of dictionary addresses involves compressing the message and, at part d), translating the stream involves decompressing the message.
15. A method according to any one of the preceding claims, wherein the identifier is or is contained in a header for the address stream distinct from the stream itself.
16. A method according to any one of claims 1 to 14, wherein the identifier is part of the address stream.
17. A method according to claim 16, wherein on receipt of the stream the receiving means assumes a predetermined one or number of the addresses represent the dictionary identifier and uses each dictionary in turn to translate such addresses until the translation for a particular dictionary matches a
predetermined value and, when such match is determined, that dictionary is used to translate all or more of the stream.
18. A method according to any one of the preceding claims, wherein the address stream is made available on a web site for downloading and translation by a holder of the receiving means.
19. A method according to claim 1 , wherein the receiving means comprises a server and the message is revealed by way of a computerised device connected to the server.
20. A computerised device adapted for use in a method according to claim 1 , the device holding the dictionary and a plurality of other dictionaries, each dictionary indexed in the device and unique to a different contact of a holder of the device, the device having means to generate the message such that it is represented by the stream of dictionary addresses and has the identifier, the device having means to send the stream, the device also having means to receive a stream of dictionary addresses and to translate this to a message if the device detects that the stream is associated with a dictionary held in the device.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
NZ617187 | 2013-10-30 | ||
NZ61718713 | 2013-10-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2015065203A1 true WO2015065203A1 (en) | 2015-05-07 |
Family
ID=53004668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/NZ2014/000198 WO2015065203A1 (en) | 2013-10-30 | 2014-09-11 | A method of protecting communications |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2015065203A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016162792A1 (en) * | 2015-04-07 | 2016-10-13 | Rodney Smith | Method for randomising data compression dictionaries |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0666651B1 (en) * | 1994-02-07 | 2000-07-19 | Hewlett-Packard Company | Apparatus and method for lempel ziv data compression with management of multiple dictionaries in content addressable memory |
US6112244A (en) * | 1998-02-27 | 2000-08-29 | Motorola, Inc. | Method and apparatus in a wireless communication system for compressing and decompressing messages generated by a plurality of applications |
US6414610B1 (en) * | 1997-02-24 | 2002-07-02 | Rodney J Smith | Data compression |
WO2012175132A1 (en) * | 2011-06-22 | 2012-12-27 | Telefonaktiebolaget L M Ericsson (Publ) | Header compression with a code book |
-
2014
- 2014-09-11 WO PCT/NZ2014/000198 patent/WO2015065203A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0666651B1 (en) * | 1994-02-07 | 2000-07-19 | Hewlett-Packard Company | Apparatus and method for lempel ziv data compression with management of multiple dictionaries in content addressable memory |
US6414610B1 (en) * | 1997-02-24 | 2002-07-02 | Rodney J Smith | Data compression |
US6112244A (en) * | 1998-02-27 | 2000-08-29 | Motorola, Inc. | Method and apparatus in a wireless communication system for compressing and decompressing messages generated by a plurality of applications |
WO2012175132A1 (en) * | 2011-06-22 | 2012-12-27 | Telefonaktiebolaget L M Ericsson (Publ) | Header compression with a code book |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016162792A1 (en) * | 2015-04-07 | 2016-10-13 | Rodney Smith | Method for randomising data compression dictionaries |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6190041B2 (en) | Safety confirmation system and concealed data similarity search method | |
US9767299B2 (en) | Secure cloud data sharing | |
US20150302218A1 (en) | Method and system for file hiding | |
US20200145389A1 (en) | Controlling Access to Data | |
US10721058B2 (en) | Ultra-secure blockchain enabled analytics | |
CN104283668B (en) | The method and device of applied cryptography is obtained based on mobile terminal | |
US20190342753A1 (en) | Device configuration method, apparatus and system | |
US12041166B2 (en) | Protecting data using controlled corruption in computer networks | |
US10742618B2 (en) | Message encryption | |
CN113206737A (en) | Voice communication encryption method, decryption method and device | |
WO2014051558A1 (en) | Shared secret identification for secure communication | |
US20160292446A1 (en) | Data encryption and compression | |
US20160292447A1 (en) | Multi-layered encryption | |
KR20200127643A (en) | Method and Apparatus for Distributed Processing of Data for Document Management | |
US20160294876A1 (en) | Unique graphic identifier | |
Tahiri | Mastering mobile forensics | |
US20200380143A1 (en) | Providing user information in association with messaging | |
CN105515959A (en) | Implementation method of CMS technology-based instant messenger security system | |
US10387663B2 (en) | System, a method and a computer readable medium for transmitting an electronic file | |
CN113010904A (en) | Data processing method and device and electronic equipment | |
WO2015065203A1 (en) | A method of protecting communications | |
US20190109710A1 (en) | System and method for randomizing hidden messages in digital files | |
Mandal et al. | A dynamic programming approach to secure user image data in cloud based ERP systems | |
TWI743457B (en) | Method and computer program product for generating secure alternative representation for numerical datum | |
Alshameri et al. | A comparison study to analyse the data acquisitions of iOS and android smartphones using multiple forensic tools |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 14857590 Country of ref document: EP Kind code of ref document: A1 |
|
DPE1 | Request for preliminary examination filed after expiration of 19th month from priority date (pct application filed from 20040101) | ||
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 14857590 Country of ref document: EP Kind code of ref document: A1 |