HK1202720B - Electronic communication - Google Patents
Electronic communication Download PDFInfo
- Publication number
- HK1202720B HK1202720B HK15102874.0A HK15102874A HK1202720B HK 1202720 B HK1202720 B HK 1202720B HK 15102874 A HK15102874 A HK 15102874A HK 1202720 B HK1202720 B HK 1202720B
- Authority
- HK
- Hong Kong
- Prior art keywords
- message
- components
- parity data
- component
- Prior art date
Links
Description
The present invention relates to a system and method for sending and receiving electronic communications and in particular, electronic mail.
Electronic mail or email is a well known method of exchanging digital messages across the Internet or other computer networks. A user may compose an email using a personal computer or terminal, such as a smart phone, specifying a recipient or recipient address and message. The user then sends the email from his or her own terminal or personal computer across the network or the Internet, to an email server. The user may have an account or mailbox on the email server for either or both sending and receiving email messages.
Once the email server receives the email from the user it is sent using a standardised transfer protocol such as the simple mail transfer protocol (SMTP) across the network or the Internet to the recipient's own email server for which they hold an account or mailbox.
When the recipient connects to their own email server, any waiting emails may be viewed or downloaded onto their terminal or personal computer. There are several alternative methods for sending and receiving email including the use of email clients such as Microsoft (RTM) Outlook and Apple OSX (RTM) Mail. These clients are email applications resident on a user's personal computer (or other device) and connect with the email server as and when required.
For receiving emails, the email server may operate alternative protocols such as the Post Office Protocol (POP) or Internet message access protocol (IMAP). These are the two most common Internet standard protocols for email retrieval but others may be used.
The email message itself may comprise header information including information regarding the sender and receiver, a message body, which is the message itself and optionally attachments in the form of computer readable files sent along with the email. However, email is generally a text-based facility with any formatting sent in the form of a text-based mark-up language such as HTML.
As the recipient does not need to be directly connected to the sender of an email message, it is not possible to determine whether or not a receiver received the email unless a read receipt is provided from the receiver and successfully returned. Furthermore, it is possible and likely that a certain proportion of email messages are lost in transit for various reasons. As email messages are sent as plain text across the public Internet it is relatively easy for these email messages to be intercepted and read or altered en route. Therefore, certain schemes for encrypting email messages are used and these require additional processing at the sending a receiving ends. Nevertheless, it is still possible for these encrypted email messages to be lost before being received by the recipient.
Therefore, there is required a system of sending and receiving electronic mail that overcomes these problems.
An original message that would otherwise form the body of an electronic communication such as an email, for example (or the entire electronic communication itself) is divided into several message components. Each of these message components are attached to a single email, which is sent from the sender or a client residing on the sender's terminal or computer to a message server. Once received, this single email has its attached components extracted by the message server, which are then re-attached to separate emails to be sent to a further message server (or the same one) preferably via separate mail servers. On receipt, the message server extracts each component and then attaches each one to a further single email for forwarding to the recipient (or a client residing on the recipient terminal).
There are several alternative ways of dividing the content including bitwise, byte wise and character-by-character. Without all of the components, it is difficult or impossible to reconstruct the original message. Therefore, the chance of successful interception by a third party or unauthorised access is reduced.
There is described a method of sending electronic communications or mail according to claim 1. There is also described a message server according to claim 6, an e-mail client according to claim 8, a system according to claim 11 and a computer readable medium according to claim 12.
According to a first illustrative example there is provided a method of sending electronic communications or mail comprising the steps of:
- dividing the message into a plurality of components;
- attaching each one of the plurality of components to a single email; and
- sending the email containing the attachments to a message server configured to perform the step of transmitting the message to a recipient. Therefore, the message and any attachments may be sent more securely and reliably. The dividing step or algorithm may be achieved using a separate module (core), which may resided within a client program such as an email client.
Performing the step of transmitting the message comprises the steps of: extracting the attached components from the single email; attaching each extracted component to a separate email; and sending each separate email to the recipient. This further increases security. Each separate email may be received by a further or the same message server, each component may be extracted from each separate email, the components combined within a further single email to be sent to the recipient email client. Once received, the each component may be extracted and combined to recreate the original message, communication, and any attachments.
Preferably, each separate email may be sent through a different email server. This makes it more difficult to successfully intercept all components.
Preferably, the method may further comprise the step of combining the plurality of components to form the message. This allows the message to be received.
Advantageously, dividing the message into the plurality of components from the message may comprise the steps of:
- dividing the message into a plurality of message components; and
- generating parity data for groups of two or more of the plurality of message components such that any one or more of the plurality of message components may be recreated from the remaining message components and the parity data. This improves resilience to loss of individual message components. Parity data may also be considered as being redundant data.
Dividing the message into the plurality of components from the message further comprise:
- dividing the message into a plurality of message components; and
- generating parity data for each message component and another message component of the plurality of message components.
The message components and the parity data form the components. Therefore, both the message components and parity data may be processed and sent in the same way.
Optionally, the dividing step may further comprise:
- dividing the message components into further message components; and
- generating further parity data for groups of two or more of the further message components such that any one or more of the further message components may be recreated from the remaining further message components and the further parity data. This further improves resilience to loss of message components, as more may be lost without losing the ability to recreate the original data or message.
Optionally, the dividing step may further comprise: generating parity data for each message component and a second other message component of the plurality of data subsets
Preferably, at least two sets of parity data may be generated for every data subset. Therefore, multiple different combinations of message components may be used to generate redundant or parity data. Preferably, at least each message component will be used twice.
Optionally, the method may further comprise the step of adding a mail header to the single email. This may be used to identify the message or indicate to a recipient how to recover the original message and/or attachments. It may also include information found in a conventional email header.
According to a second illustrative example, there is provided a method of receiving a message or electronic communications comprising the steps of:
- receiving from a message server a single email message containing a plurality of attached components;
- extracting the attached components from the single email; and
- combining the components from the received single email to form a message. This may be used to receive the messages sent according to the method of the first aspect. The combining step may be carried out by an algorithm located within an email client, for example.
Preferably, the components may comprise message components and parity data generated from groups of two or more of the message components and combining the components comprises:
generating any missing message components from the received parity data and message components, and combining the received message components and generated message components to form the message.
Advantageously, the method may further comprise the steps of:
- at the message server receiving a plurality of separate emails each containing one of plurality of components;
- extracting each of the plurality of components from the separate emails; and
- attaching the plurality of components to the single email.
Optionally, the message may comprise plain text and/or an attached file.
According to a third illustrative example, there is provided a message or communications server comprising a processor configured to:
- receive an email containing a plurality of attached components;
- extract the attached components from the email;
- attach each extracted component to a separate email; and
- send each separate email to a recipient. The message server may form part of a distributed mail system. The processor may be a virtual processor residing on a virtual server for example.
Preferably, the processor may be further configured to:
- receive from a sender a plurality of emails each containing an attached component;
- extract the attached components from the plurality of emails;
- attach the extracted components to a single email; and
- send the email with attached components to a recipient.
According to a fourth illustrative example, there is provided an email client comprising program instructions to:
- divide a message into a plurality of components;
- attach each one of the plurality of components to a single email; and
- send the email containing the attachments to a message server configured to perform the step of transmitting the message to a recipient.
The program instructions to divide the message into a plurality of components further includes instructions to:
- divide the message into a plurality of message components; and
- generate parity data for each message component and another message component of the plurality of message components.
Optionally, the email client may further comprise program instructions to:
- receive from the message server a single email message containing a plurality of attached components;
- extract the attached components from the single email; and
- combine the components from the received single email to form a message.
Preferably, the components comprise message components and parity data generated from groups of two or more of the message components and wherein the program instructions to combine the components may comprise program instructions to:
generate any missing message components from the received parity data and message components, and combining the received message components and generated message components to form the message.
According to a fifth illustrative example, there is provided a system comprising one or more message servers as previously described and a plurality of email clients as previously described. The mail server and client may be located together or separate. The system may form a distributed mail, email or communications system.
The methods described above may be implemented as a computer program comprising program instructions to operate a computer. The computer program may be stored on a computer-readable medium or transmitted as a signal.
The present invention may be put into practice in a number of ways and examples will now be described with reference to the accompanying drawings, in which:
- FIG. 1 shows a schematic diagram of a system for sending electronic communications including a message server and mail servers, given by way of example only;
- FIG. 2 shows a schematic diagram of the system of figure 1 showing further details of the message server;
- FIG. 3 shows a schematic diagram of the system for sending electronic communications of figure 1 showing further details of the message server;
- FIG. 4 shows a flow diagram of a method for sending electronic communications including a dividing step;
- FIG. 5 shows a flow diagram of a method for receiving electronic communications including a combining step;
- FIG. 6 shows a schematic diagram indicating a method for generating parity data as part of the dividing step of figure 4, given by way of example only;
- FIG. 7 shows a schematic diagram of an illustrative method for reconstructing missing data as part of the combining step of figure 5 and using parity data generated in accordance with the method shown in figure 6; and
- FIG. 8 shows a schematic diagram of a further illustrative method for reconstructing missing data as part of the combining step of figure 5 and using the parity data generated using the method of figure 6.
It should be noted that the figures are illustrated for simplicity and are not necessarily drawn to scale.
The emails may be formed from a text message 30 and one or more attachments 40. The attachments may be electronic files or documents such as those usually attached to email messages. In this particular implementation, the text message and the attachment or attachments 40 form a single message that may be processed, as described below. However, messages may be sent with or without either the attachment or text 30 components.
A client 50 may reside within the personal computer or other sending and receiving terminal 20. The client 50 may comprise core processing logic 55 configured to divide the message according to an algorithm. In this example, the client acts to process both outgoing and incoming messages, although it may be configured to do one of the two processes only. The function of the core logic 55 is described in further detail with respect to figure 2 .
A gate, gateway or message server 60 is functionally (and/or physically) located between the client 50 and an array of email servers 80. The client provides a single email 58 to the message server 60. This single email 58 is generated by the client. Starting with message text 30 and any attachments 40 as a message to be sent (or electronic communication), this is then divided into a plurality of components. Each of these components are then attached to an email message forming the single email 58. The message may be divided in such a way as to allow reproduction or regeneration of the original message or payload (message text 30 and any attachments 40) even where one or more of the components is lost or corrupted in transit. A suitable division algorithm is described briefly with reference to figures 6, 7 and 8 .
Again, the message server 60 functionality may include both sending and receiving logic. The sending logic is described in further detail with regards to figure 3 .
As a functional overview, message server 60 extracts each message component from the single email 58 and attaches each component to a separate email 70. The message server 60 also sends each of these separate emails 70 to separate mail servers 80 for onward delivery. For example, each separate email 70 may be sent by a different mail server 80 or groups of emails 70 may be sent through one email server 80. However, it is preferable that not all separate emails 70 are sent through the same mail server 80 in order to maintain security and reliability. Particular mail servers within such an array of mail servers 80 may be determined by the message server 60.
The dashed arrows indicate the direction through a system 10 for incoming messages towards the personal computer or receiving terminal 20. This corresponds with incoming separate emails 70 coming from the separate email servers 80 and received by the message server 60. Again, each of the separate emails contains a component as an attachment and the message server 60 extracts these components and adds them to a single email 58.
The single email 58 is received by the client 50 and its core processing logic 55 extracts each component from the email message 58 recreating the original message and any attachments. Any missing or corrupted components may be recreated by the core processing logic 55 using parity data and the remaining components. The client 50 then provides the original message text 30 and any attachments 40 (the message or payload) to the user of the personal computer 20.
Many such clients 50, residing on personal computers and other email receiving terminals, may be operated by separate users in order to send and receive messages between each other. There may also be several message servers 60 to provide the intermediary processing and balance any load or provide fail over resistance.
As described with reference to figure 1 , figure 2 shows the processing that takes place within the client 50 in further detail in respect to the sending logical steps. Similar features are provided with the same reference numerals. Figure 2 is again a functional diagram and so not all implementation details are shown in this figure.
The functional components of the client 50 are shown in this figure. As described with reference to figure, the client performs two main functions in the sending mode. First function 110 is carried out by the core processing logic 55, which divides the message (formed from message text 30 and any attachments 40) into components. These resulting components may include both data and accompanying parity data, although both types of components are treated the same in the following procedure. Once the first stage 110 is complete, then a formatting component 115 receives the components and carries out the second function 120 of adding the components to a single email 58. This single email may receive header information 130 associated or generated with the original message text and/or attachments 40. The single email 58 may then be sent to the message server 60.
In receipt mode, the message server 60 issues or sends the single email 58 to the client 50, which extracts each component to be processed by the core processing logic 55 to generate the original message from those components.
The message server extracts message components and parity data (the components) from the email at step 360. Each message component and parity data may be added or attached to separate emails 70 at step 370. Each separate email 70 may be sent via separate mail servers at step 380.
The single email is sent to the client 50 located on a personal computer 20 or other terminal at step 440. This may be achieved through a single mail server or other mechanism. The components (message components and parity data) are extracted from the single email 58 at step 450 and any missing message components are recreated from the remaining message components and parity data at step 460. Combining the message components creates the original message to be presented to the user or otherwise used by the personal computer or terminal 20.
Simple division of the message may be used to generate message components of equal or substantially equal size or length. However, in order to improve security and/or data recovery then more complex error correcting or secure algorithms may be used in this procedure. Corresponding regeneration or combining algorithms or collating steps may be used when receiving messages. To aid reliability, the components may include parity data generated as described with reference to figures 6, 7 and 8 . As an example, this processing may occur within or as part of the core processing logic 55.
For example, parity data may be generated using the exclusive OR function (XOR). e.g.: where ^ is the XOR function.
Should either data set A or B (i.e. message component) be lost, then the missing data may be reconstructed from the remaining data and the parity data (P) using the same XOR function, for example:
In order to generate redundant data to protect a particular message or data set, then this original data (F) may be divided into equal blocks or subsets. This may be represented as:
Parity data may be generated as:
Therefore, the first data subset is paired with the last data subset so that more than one set of parity data may be associated with the end data sets. However, any other combination and permutation may be used so that each data subset has at least two parity data sets associated with it. In notation form, this may be described as:
In an example where the original data are divided into five data subsets, the loss of four data subsets may still enable reconstruction of all of the original data provided that all of the parity data sets are retrievable. Such a situation is shown in figure 7 , which schematically shows an example method 100 for reconstructing or regenerating missing data subsets.
In this example, the third data subset is available as well as the five parity data sets (1^2, 2^3, 3^4, 4^5 and 5^1). The box in figure 7 shows two alternative ways in which each of the missing data subsets 1, 2, 4 and 5 may be reconstructed using the XOR function.
In general terms, the loss of data subsets in any combination up to (n-1) may still result in all of the data being recoverable.
It is noted that the particular examples shown in figures 7 and 8 are two of many alternative combinations and schemes for recovering data. Furthermore, it is noted that the cyclic approach shown in figure 6 for generating two parity data sets for each data subset is one of many alternatives. For example, each data subset may be paired with non-neighbouring subsets to form parity data.
When dividing the data into data subsets, a predetermined number of data subsets may be chosen. This may relate to the number of available or required storage locations (for each data subset and each parity data set) that are to be used, or separate data channels or other means of transmitting the data subsets from one location to another.
As will be appreciated by the skilled person, details of the above embodiment may be varied without departing from the scope of the present invention, as defined by the appended claims.
For example, the message may be formatted or unformatted or may contain attachments that are also divided into message components or attachment components. Electronic communication includes many types including but not limited to email, SMS, instant messaging, text, image, video and audio based communication media. Furthermore, electronic communication or mail servers are those devices that either send or receiver (or both) those electronic communications.
There are many different ways of dividing and combining components to form the message other than those described, which are provided as examples only. This include simply dividing the data equally with padding provided optionally as necessary. There are also many different ways to generated parity data (if at all). These methods include applying the XOR logical function in different ways as well as using the Solomon-Reed function. Parity data may also be considered to be redundant data. In this context redundant data is data that is not necessary if all message components are available or safely received but they may be used to assist in regenerating or replicating any missing components or those that for some reason (e.g. corruption) are unavailable. Therefore, the terms parity data and redundant data may be used interchangeably.
Claims (12)
- A method of sending electronic communications comprising the steps of:at an email client (50):dividing a message (30, 40) into a plurality of message components;generating parity data for each message component and another message component of the plurality of message components, wherein the message components and the parity data form a plurality of components;attaching each one of the plurality of components to a single email (58); andsending the single email (58) containing the attached components to a message server (60) configured to perform the step of transmitting the message to a recipient; andat the message server (60):receiving the single e-mail (58) containing the attached components from the email client (50);extracting the attached components from the single email (58);attaching each extracted component to a separate email (70); andsending each separate email (70) to the recipient.
- The method of claim 1, wherein each separate email (70) is sent through a different email server (80).
- The method according to any previous claim further comprising the step of combining the plurality of components to form the message (30, 40).
- The method according to any previous claim, wherein the dividing step further comprises: generating further parity data for each message component and a second other message component of the plurality of message components.
- The method of claim 4, wherein at least two sets of parity data are generated for every message component.
- A message server (60) comprising a processor configured to:receive a single email (58) from an e-mail client (50), the e-mail containing a plurality of attached components, wherein the plurality of attached components includes message components and parity data, wherein the message components have been formed by the e-mail client (50) by dividing a message into a plurality of message components and the parity data have been generated by the e-mail client (50) for each message component and another message component of the plurality of message components;extract the attached components from the single email (58);attach each extracted component to a separate email (70); andsend each separate email to a recipient.
- The message server (60) of claim 6, wherein the processor is further configured to:receive from a sender a plurality of separate emails (70) each containing an attached component;extract the attached components from the plurality of separate emails (70);attach the extracted components to a single email (58); andsend the single email (58) with attached components to a recipient.
- An email client (50) comprising program instructions todivide a message (30, 40) into a plurality of message components; andgenerate parity data for each message component and another message component of the plurality of message components, wherein the message components and the parity data form a plurality of components;attach the plurality of components to a single email (58); andsend the single email (58) containing the attached components to a message server (60) configured to perform the step of transmitting the message to a recipient.
- The email client (50) of claim 8, further comprising program instructions to:receive from the message server (60) a single email message (58) containing a plurality of attached components;extract the attached components from the single email (58); andcombine the components from the received single email (58) to form a message (30, 40).
- The email client (50) according to claim 8 or claim 9, wherein the components comprise message components and parity data generated from groups of two or more of the message components and wherein the program instructions to combine the components comprises program instructions to: generate any missing message components from the received parity data and message components, and combining the received message components and generated message components to form the message (30, 40).
- A system comprising one or more message servers according to claim 6 or claim 7 and a plurality of email clients according to any of claims 8 to 10.
- A computer-readable medium carrying a computer program comprising program instructions that, when executed on a computer cause the computer to perform the method of any of claims 1 to 5.
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GBGB1203557.2A GB201203557D0 (en) | 2012-02-29 | 2012-02-29 | Electronic communication |
| GB1203557.2 | 2012-02-29 | ||
| PCT/EP2013/053971 WO2013127883A1 (en) | 2012-02-29 | 2013-02-27 | Electronic communication |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1202720A1 HK1202720A1 (en) | 2015-10-02 |
| HK1202720B true HK1202720B (en) | 2022-12-16 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN101964080B (en) | Method and system for storing a file as slices on storage elements | |
| US20150032827A1 (en) | Encoding Data in Email Headers | |
| US11153365B2 (en) | Transfer of files with arrays of strings in soap messages | |
| CN112272155B (en) | E-mail receiving and sending method based on block chain | |
| US10834041B2 (en) | Blockmail transfer protocol | |
| CN111654511A (en) | Chained data encryption method, chained data decryption method and corresponding systems | |
| US10762235B2 (en) | Methods, systems, and media for storing and retrieving data from distributed vaults | |
| CN113014580A (en) | File transmission method and device, electronic equipment and storage medium | |
| CN111885209A (en) | Message queue synchronization method, device and system based on one-way optical gate | |
| CN112468599B (en) | Anonymous communication method, system and device based on Internet file storage service | |
| CN112637230B (en) | Instant messaging method and system | |
| CN106973008A (en) | A kind of selectivity recalls the implementation method of mail | |
| CN112258192B (en) | Mail confirmation method and device based on blockchain wallet address | |
| EP2820802B1 (en) | Electronic communication | |
| CN112069472A (en) | User login authentication method and system | |
| CN114710558B (en) | Asynchronous secure transmission channel construction method based on cloud storage | |
| CN112272156B (en) | E-mail receiving and sending system based on block chain | |
| HK1202720B (en) | Electronic communication | |
| CN107222453A (en) | A file transfer method and device | |
| GB2484116A (en) | Distributed electronic communication involving dividing a message into components and sending them to separate delivery servers | |
| CN106850451A (en) | A kind of data transmission method, apparatus and system | |
| US20150365365A1 (en) | Method and apparatus for modifying message | |
| Chiapputo et al. | Using Untrusted and Unreliable Cloud Providers to Obtain Private Email. | |
| WO2016145071A1 (en) | Secure message transmission using dynamic segmentation and encryption | |
| Andersson et al. | Very Low Bandwidth (Marine) Web Surfing A Fault-Tolerant Content Streaming Web Browsing Solution |