Abstract: The embodiments herein relate to communication and more particularly to secured data transmission in near field communication. The system dynamically interleaves the data to be transmitted using randomization and transmits the dynamically interleaved data and the interleaved settings/parameters to the destination. Further the receiver device performs dynamic de-interleaving of the received data using the received interleaved settings/parameters. Further in order to ensure security to the data transmission the system uses Random Skip Count (RSC) values. If necessary new dynamic interleaving settings/parameters are calculated based on RSC value and the new settings/parameters are used to dynamically interleave the data. The process of interleaving can be performed in 2-dimensional or 3-dimensional formats. Further in the 2-dimensional and 3-dimensional interleaving schemes data can be first dynamically interleaved in the form of sub matrices and the sub matrices can be further dynamically interleaved to form the final dynamically interleaved data matrix. FIG. 3
FIELD OF INVENTION
[001] The present invention relates to the field of storage systems and more particularly to transaction recovery in storage systems.
BACKGROUND OF INVENTION
[002] Near Field Communication (NFC) is a technique that helps devices such as mobile phones to establish radio communication by bringing the devices into a close proximity. NFC facilitates various applications such as contactless transactions data exchange Radio Frequency Identification (RFID) tag scanning mobile payments and so on. Further NFC enabled handsets can be used to view real time travel information and to purchase transport tickets. Further the NFC communication is based on Radio Frequency Identification (RFID) standards. The mobile devices are equipped with NFC chips which are capable of sending an encrypted data to a small distance. A NFC system normally has an initiator and a target. The initiator generates a Radio Frequency (RF) field that triggers the passive target. The NFC targets normally take form of tags stickers cards etc that can store information and do not require battery to operate.
[003] NFC also has certain disadvantages. For example the RF signal used in the NFC communication can be picked up using an antenna. This can be further decoded which will result in loss of sensitive information. Further the data transmitted using NFC communication may be destroyed using a suitable device such as RFID jammer. Further the NFC communication is prone to data modification attacks if not transmitted without proper modulation. Further when NFC is used for making contactless payments it may happen that the money could be duplicated. In another case money may be transferred to another person in turn causing loss of money.
[004] Another disadvantage of the NFC based communication is that it is prone to man-in-the-middle attack. In this case an attacker can make independent connections with the NFC users and can control transaction of messages and/or data between the NFC enabled user devices. This kind of attack can critically affect the NFC transactions and security as the data such as transaction id password and so on get compromised to an unauthorized third party user.
[005] Existing systems use method of data interleaving for ensuring security in the NFC based transaction systems. Interleaving permits arrangement of data in specific formats. Further the receiver may de-interleave the information using information on how the data is arranged in the interleaved format. One disadvantage associated with these systems is that a third party may still decode the information on identifying the format in which the data is interleaved.
[006] One of the existing methods for secured data transmission discloses a process of interleaving rows and columns of the interleaved matrix separately. The method ensures secured data transmission by using distinct interleaving sequences. Disadvantage of this method is that it does not provide any mechanism for dynamically changing the interleaving sequence in case of an attack. This may affect security of the system and may result in data lose.
[007] Due to the aforementioned reasons there is a need to have a method for ensuring data security in NFC communications. The method must be reliable and highly precise to prevent data loss and data leakage.
OBJECT OF INVENTION
[008] The principal object of the embodiments herein is to enable a secured NFC communication between user devices.
[009] Another object of the invention is to improve security in NFC communication by implementing dynamic interleaving using randomization.
[0010] Another object of the invention is to improve security in data transmission using Random Sequence Count (RSC) based mechanism.
SUMMARY
[0011] Accordingly the invention provides a method for facilitating a secure near field communication between a first device and a second device. In this method the first device from which information is to be transmitted to second device dynamically interleave the information to be transmitted using randomization technique. Further the first device transmits the dynamically interleaved data to the second device. The first device also transmits dynamically interleaved settings to the second device. Further upon receiving the dynamically interleaved data and settings from first device the second device de-interleaves received data.
[0012] Accordingly the invention provides a system for facilitating a secure near field communication between a first device and a second device. In this system the first device from which information is to be transmitted to second device dynamically interleave the information to be transmitted using randomization technique. Further the first device transmits the dynamically interleaved data to the second device. The first device also transmits dynamically interleaved settings to the second device. Further upon receiving the dynamically interleaved data and settings from first device the second device de-interleaves received data.
[0013] Accordingly the invention provides a device for facilitating a secure near field communication with a second device in a communication network. Here the device dynamically interleaves the information to be transmitted using a randomization technique. Further the device transmits the dynamically interleaved data to the second device. The device also transmits dynamically interleaved settings to the second device. Further upon receiving the dynamically interleaved data and settings from the device the second device de-interleaves received data.
[0014] These and other aspects of the embodiments herein will be better appreciated and understood when considered in conjunction with the following description and the accompanying drawings. It should be understood however that the following descriptions while indicating preferred embodiments and numerous specific details thereof are given by way of illustration and not of limitation. Many changes and modifications may be made within the scope of the embodiments herein without departing from the spirit thereof and the embodiments herein include all such modifications.
BRIEF DESCRIPTION OF FIGURES
[0015] This invention is illustrated in the accompanying drawings throughout which like reference letters indicate corresponding parts in the various figures. The embodiments herein will be better understood from the following description with reference to the drawings in which:
[0016] FIG. 1 illustrates a general block diagram of NFC communication system as disclosed in the embodiments herein;
[0017] FIG. 2 illustrates a block diagram which shows various components of a user device as disclosed in the embodiments herein;
[0018] FIG. 3 illustrates a block diagram which shows various components of NFC module as disclosed in the embodiments herein;
[0019] FIG. 4 illustrates a block diagram which shows various components of a proposed dynamically interleaved payload generation module as disclosed in the embodiments herein;
[0020] FIG. 5 illustrates a block diagram which shows various components of a processing module as disclosed in the embodiments herein;
[0021] FIG. 6 illustrates a block diagram which shows various components of an interleaving module as disclosed in the embodiments herein;
[0022] FIG. 7a and FIG. 7b illustrates flow diagrams which shows various steps involved in the process of dynamic interleaving and dynamic de-interleaving of data as disclosed in the embodiments herein;
[0023] FIG. 8 illustrates a flow diagram which shows various steps involved in the process of dynamically interleaving data 2-dimensionally as disclosed in the embodiments herein;
[0024] FIG. 9 illustrates a flow diagram which shows various steps involved in the process of dynamically interleaving data 3-dimensionally as disclosed in the embodiments herein;
[0025] FIG. 10 illustrates a flow diagram which shows various steps involved in the process of calculating number of columns for a 2-dimensional matrix using randomizer as disclosed in the embodiments herein;
[0026] FIG. 11 illustrates a flow diagram which shows various steps involved in the process of calculating number of rows for a 3-dimensional matrix using randomizer as disclosed in the embodiments herein;
[0027] FIG. 12 illustrates a flow diagram which shows various steps involved in the process of selecting data filling/releasing format for a matrix using randomizer as disclosed in the embodiments herein;
[0028] FIG. 13 illustrates a flow diagram which shows various steps involved in the process of selecting data filling order for a matrix using randomizer as disclosed in the embodiments herein;
[0029] FIG. 14 illustrates a flow diagram which shows various steps involved in the process of selecting data releasing order for a matrix using randomizer as disclosed in the embodiments herein;
[0030] FIG. 15 illustrates a flow diagram which shows various steps involved in the process of implementing Random Skip Count (RSC) for improved security as disclosed in the embodiments herein;
[0031] FIG. 16 illustrates system architecture of proposed dynamic interleaving system as disclosed in the embodiments herein;
[0032] FIGS. 17 18 and 19 illustrates system architecture for measuring number of rows and number of columns using randomizers as disclosed in the embodiments herein;
[0033] FIG. 20 illustrates system architecture for calculating data filling/releasing format for a 2-dimensional matrix as disclosed in the embodiments herein;
[0034] FIGS. 21 and 22 illustrates system architecture for calculating data filling/releasing order for a 2-dimensional matrix as disclosed in the embodiments herein;
[0035] FIG. 23 illustrates system architecture for 3-dimensional matrix dynamic random interleaving as disclosed in the embodiments herein;
[0036] FIG. 24 illustrates system architecture for calculating number of rows for a 3-dimensional matrix as disclosed in the embodiments herein;
[0037] FIG. 25 illustrates system architecture for calculating number of rows (m) or number of columns (n) or number of layers (l) for a 3-dimensional matrix as disclosed in the embodiments herein;
[0038] FIG. 26 illustrates system architecture for calculating data filling format for a 3-dimensional matrix as disclosed in the embodiments herein;
[0039] FIG. 27 illustrates system architecture for calculating data releasing format for a 3-dimensional matrix as disclosed in the embodiments herein;
[0040] FIGS. 28 and 29 illustrate system architecture for dynamically interleaving sub-matrices for a 2-dimensional matrix and 3-dimensional matrix respectively as disclosed in the embodiments herein;
[0041] FIG. 30 illustrates system architecture for sharing dynamically interleaved data and settings between sender and receiver as disclosed in the embodiments herein; and
[0042] FIGS.31.a 31.b and 31.c illustrates settings/ parameters 1 settings/ parameters 2 and single bit representation of dynamic interleaving in NDEF format respectively as disclosed in the embodiments herein.
DETAILED DESCRIPTION OF INVENTION
[0043] The embodiments herein and the various features and advantageous details thereof are explained more fully with reference to the non-limiting embodiments that are illustrated in the accompanying drawings and detailed in the following description. Descriptions of well-known components and processing techniques are omitted so as to not unnecessarily obscure the embodiments herein. The examples used herein are intended merely to facilitate an understanding of ways in which the embodiments herein can be practiced and to further enable those of skill in the art to practice the embodiments herein. Accordingly the examples should not be construed as limiting the scope of the embodiments herein.
[0044] The embodiments herein achieve secured NFC communication system by dynamically interleaving data using a randomizer. Referring now to the drawings and more particularly to FIGS. 1 through 31 where similar reference characters denote corresponding features consistently throughout the figures there are shown preferred embodiments.
[0045] FIG. 1 illustrates a general block diagram of proposed NFC communication system as disclosed in the embodiments herein. The system comprises user device 101.a user device 101.b and a NFC communication channel 102. The user devices 101.a and 101.b are to be NFC enabled devices in order to communicate using NFC medium. NFC mechanism helps to establish radio communication between the NFC enabled user devices 101.a and 101.b. Further the NFC enabled user devices 101.a and 101.b can perform functions like contact less payments access systems and contactless communication with virtual data storage systems and so on.
[0046] The proposed system enables secured data communication by implementing randomizer based dynamic interleaving mechanism. In this system data to be transmitted using NFC is interleaved in a specific format. Further the interleaved data is sent to the destination device. The transmitter device also sends dynamic interleaving settings which are used for interleaving the data to the destination device through secured channel or by having a certificate authority (CA). In one embodiment the dynamically interleaved data and dynamic interleaving settings can be sent to the destination user device 101.b using same NFC communication channel 102. In another embodiment the dynamically interleaved data and dynamic interleaving settings can be sent to the destination user device 101.b through different channels. Use of separate communication channels for data transmission can increase security in the data transmission.
[0047] Further the dynamic interleaving can be performed in 2-dimensional and/or 3-dimensional models. In a 2-dimensional model the data/message to be transmitted using NFC can be arranged in a 2 dimensional fashion for example in the form of Rows and Columns in a matrix. In this case the system has to calculate parameters such as number of rows (m) number of columns (n) data filling / releasing format Random Row (Dm) / column Selection for filling the matrix and Random Column (Dn) / Row Selection for releasing the data from matrix and so on for arranging the data in matrix form accordingly. In the 3-dimensional model one additional parameter called level (l) is introduced for third dimension layer. In this case the data is arranged in rows and columns in each layer of the matrix. For this the system calculates number of layers (l) along with n and m. Further data filling and releasing orders also can change with introduction of the additional parameter l along with the random row/ column/ layer selection for filling the data and random column/ layer/ row selection for releasing the data. For example in 3-dimensional matrix data filling and/or data releasing can begin from layers. Further using the measured/calculated interleaving parameters/interleaving settings data is dynamically interleaved in the matrix format. Further the dynamically interleaved data can be sent to the destination user device 101.b. The sending user device 101.a can also send the interleaving parameters/settings to the destination user device 101.b. The interleaved parameters/settings sent to the destination can comprise number of columns (m) number of rows (m) initial clock RSC value data filling/releasing format data filling/releasing order and so on.
[0048] In an embodiment total number of bits can also be kept in the interleaved parameters/settings. In this case only RSC value is communicated frequently with the destination user device and not the interleaved settings/parameters. This improves data security. In another embodiment the sender user device 101.a and the destination user device 101.b can be paired. By pairing the user devices settings can be set to both devices and frequent sharing of interleaved parameters/settings can be avoided which in turn ensures better data security. In another embodiment the sender user device 101.a can use a single bit indication to notify the destination user device 101.b that dynamic interleaving of the data is performed. Upon receiving this indication the destination user device 101.b can use dynamic de-interleaving to recover NFC message/data in a secured manner. Further the indication bit can be given a value 1 or 0 each indicating corresponding state of interleaving. Upon receiving the interleaved data and interleaved parameters/settings the destination user device 101.b can perform de-interleaving of the received data in order to obtain the original NFC message/data. In another embodiment the dynamic interleaving system can use Random Skip Count (RSC) mechanism for improving security in data transfer. For example in circumstances like data transfer failure or third party attack the system calculates a RSC value using a randomizer. Further interleaving parameters are changed as per newly calculated RSC value. For example the RSC value can be used as a clock cycle value while calculating various interleaving parameters/settings. Values of the interleaved parameters change with change in RSC value. Further the new RSC value can be transmitted to the destination user device 101.b for de-interleaving of the data. As the RSC value and hence the interleaving parameter value can be dynamically changed the system is able to ensure security to the transmitted data. In a preferred embodiment the proposed randomization based dynamic interleaving scheme can also be used for ensuring data security in other data based communication techniques in wired and/or wireless and/or optical networks.
[0049] FIG. 2 illustrates a block diagram which shows various components of a user device as disclosed in the embodiments herein. The user device 101.a further comprises antenna 201 message module 202 call module 203 Bluetooth module 204 audio/video module 206 NFC module 205 and user interface (UI) module 207. The antenna module 201 of the user device 101 functions as transmitter and receiver to send and receive signals from and to the user device 101.a. The antenna 201 can be used to send and receive call as well as message signals. Further the message module 202 facilitates transfer of messages from the user device 101.a. A user can type a new message and/or view a received message using the message module 202 and the user interface module 207. Further the user can be able to create and receive various types of messages such as short message service (SMS) multimedia message (MMS) and flash message and so on depending on the user device compatibility.
[0050] Further the call module 203 helps to make and receive calls from the user device 101.a. The user can make use of the user interface module 207 to communicate with the call module 203 to make or receive calls using the user device 101.a. The user can make/receive calls such as audio call video call and so on depending on user device 101.a and network compatibility.
[0051] Further the Bluetooth module 204 enables connection and communication between user devices which support similar technology. Bluetooth technology can be used for applications such as data transfer remote data access and so on between user devices.
[0052] The audio/video module 205 acts as audio/video interface that deliver audio as well as video contents to the user. The audio/video module 205 can comprise devices such as speakers microphones screen and so on which help to deliver audio/video contents to the user.
[0053] The NFC module 206 facilitates NFC based communication between user device 101.a and other NFC enabled devices. NFC operates based on Radio Frequency Identification (RFID) mechanism and can support applications such as contact less payments tag reading and so on. The proposed system enables secured data communication by incorporating a randomization based dynamic interleaving scheme with the NFC module 206. Using the dynamic interleaving scheme the NFC module 206 interleaves the NFC message to be transmitted in a specific format and transmit to the destination user device 101.a. The NFC module 206 can also use certain mechanisms such as Random Skip Count (RSC) to improve data security in transmission of the NFC message.
[0054] FIG. 3 illustrates a block diagram which shows various components of NFC module as disclosed in the embodiments herein. The NFC module 205 further comprises preamble generation module 301 dynamic interleaved payload generation module 302 NFC message generation unit 303 transmitter 304 receiver 305 NFC message detection unit 306 preamble detection module 307 and dynamic de-interleaved payload generation module 308.
[0055] The preamble generation module 301 generates preamble of the NFC message to be transmitted. The preamble part of the message can be used to obtain synchronization between the transmitted and received messages. An example of the preamble of a message can be header of the message. Further length of the preamble affects packet overhead of the message and can accordingly affect transmission time of the message.
[0056] Further the dynamic interleaved payload generation module 302 is responsible for generating dynamically interleaved payload data. The dynamic interleaved payload generation module 302 implements a dynamic interleaving mechanism in order to ensure security in the NFC data transfer. Using the dynamic interleaving mechanism the dynamic interleaved payload generation module 302 interleaves the data to be transmitted into a specific format using randomization technique. In a preferred embodiment the dynamic interleaved payload generation module 302 can use a Random Skip Count (RSC) mechanism to ensure additional data security. Further the dynamic interleaved payload generation module 302 is capable of dynamically changing interleaving parameters/settings values based on a calculated RSC value. By virtue of dynamic interleaving mechanism dynamic interleaved payload generation module 302 can safeguard the data at the time of any attack or communication failure or hacking.
[0057] Further the NFC message generation unit 303 generates the NFC message to be transmitted to a destination user device 101.b. The NFC message can be generated by arranging in order the preamble and the dynamically interleaved payload in a particular sequence as specified by the communication protocol used for data transmission between the user devices 101.a and 101.b.
[0058] Further the transmitter 304 transmits the NFC message generated by the NFC message generation unit 303. Further the transmitter 304 also transmits interleaved settings/parameters to the destination user device 101.b. In an embodiment the transmitter 304 can transmit the NFC message and the interleaved parameters /settings using same communication channel 102 at different time. In another embodiment the transmitter 304 can transmit the interleaved parameters/settings through different secured channels 102. Further the transmitter 304 can transmit the NFC message and interleaved parameters/settings using a wireless and/or wired NFC communication channel 102. The data transmission can also take place through an authorized certification authority (CA).
[0059] The receiver module 305 which is located in the destination user device 101.b receives the dynamically interleaved data and/or the interleaved parameters/settings transmitted by the transmitter 304 located in the sending device 101.a. Further the preamble detection module 307 processes the received interleaved information and detect the preamble in the received NFC message.
[0060] Further the NFC message is passed onto the dynamic de-interleaved payload generation module 308. The dynamic de-interleaved payload generation module 308 performs de-interleaving of the received NFC message to identify the payload data. The dynamic de-interleaved payload generation module 308 can use the interleaved parameters/settings received from the transmitter 304 of the sending device 101.a. Using the interleaved parameters/settings the dynamic de-interleaved payload generation module 308 the dynamic de-interleaved payload generation module 308 perform de-interleaving of the received NFC message. In an embodiment if the dynamic interleaved payload generation module 302 makes any dynamic change to the interleaved parameters/ settings the dynamic de-interleaved payload generation module 308 is notified of the changes and is being provide with the new interleaved parameters/settings. Further the dynamic de-interleaved payload generation module 308 can perform de-interleaving of the received NFC message using the new interleaved parameters/settings.
[0061] Further the NFC message detection unit 306 constructs the original NFC message. The NFC message detection unit 306 receives preamble from the preamble detection module 307 and the dynamically de-interleaved payload information from the dynamic de-interleaved payload generation module 308. Further the NFC message detection unit 306 processes the received information and constructs the original NFC message.
[0062] FIG. 4 illustrates a block diagram which shows various components of a proposed dynamically interleaved payload generation module as disclosed in the embodiments herein. The dynamically interleaved payload generation module 302 further comprises a processing module 401 and an interleaving module 402. The interleaving module 402 requires two inputs such as data input and control signal to perform interleaving of the data to be transmitted.
[0063] The control signal is generated by the processing module 401. The control signal can comprise data such as number of columns number of rows number of levels data filling format data filling/releasing order and so on which are required for interleaving the data to be transmitted. Further in order to generate the control signal the processing modules receives data to be transmitted as input. The processing module 401 calculates value of various control signal parameters using randomizers. The randomizers also help the processing module to dynamically change values of various control signal parameters incase of any attack and/or data delivery failure. In an embodiment the processing module can make use of Random Skip Count (RSC) mechanism in order to change the interleaved parameters/settings dynamically. The system calculates the RSC value and use the calculated value as clock value for calculating the control signal parameters.
[0064] Further the control signal is fed as input to the interleaving module 402. The interleaving module 402 also fetches the data to be interleaved as an input parameter. Further the interleaving module interleaves the data based on the values of different control signal parameters. For example if the number of rows and number of columns are calculated as 2 and 3 respectively the interleaving module 402 can interleave the data in the form of a 2*3 matrix. Further the interleaving module 402 can also consider parameters such as data filling format data filling/releasing order RSC value and so on while interleaving the data. Once the data is interleaved based on the control signal parameter values the interleaved data can be placed in the payload section of the NFC message and can be transmitted to the destination user device 101.b.
[0065] FIG. 5 illustrates a block diagram which shows various components of a processing module as disclosed in the embodiments herein. The processing module 401 further comprises input module 501 row calculator 502 column calculator 503 Random Skip Count (RSC) calculator 504 and memory module 505 multiplexer 506 clock generator 507 randomizer 508 and output module 509. The input module 501 receives input for calculating the control signal. The input for calculating control signals is the data input that is to be interleaved. The input data can be fed to the input module 501 through wired and/or wireless means.
[0066] The row calculator 502 calculates the number of rows in the matrix in which the data is to be interleaved. In an embodiment the row calculator can use a randomizer 508 or an equation to calculate the number of rows (m). In another embodiment if for a 2 dimensional matrix the number of columns (n) is calculated using randomizer then the row calculator 502 calculate the number of rows (m) using the equation. In another embodiment if for the 2-dimensional matrix the number of columns (n) is to be calculated using an equation then the row calculator calculates the number of rows (m) using randomizer. For example the row calculator 502 can calculate the number of rows (m) for a 2-dimensional matrix using the formula
m = (N/n) ------------ (1)
where
m = number of rows
N = total number of bits in the message
n = number of columns
[0067] In another embodiment the row calculator 502 can calculate the number of rows using a randomizer 508. For example the row calculator 502 can use a first randomizer to calculate the number of rows to be present in the matrix. In this case a random bit sequence is fed as input to the first randomizer 508. Further the row calculator 502 produces a clock pulse using a clock generator 507. Further using the generated clock pulse the row calculator performs a clock shift of the random bit sequence present in the first randomizer. Further certain number of bits present in pre-decided location in the randomizer bit sequence is fetched and is compared with a pre-stored database. In a preferred embodiment the database with which the bits fetched from the randomizer are compared can be a Look Up Table (LUT). Further the LUT can be comprised of number of rows (m) corresponding to combination of fetched bits. For example if the fetched bits are 00 then corresponding number of rows can be 1 and so on.
[0068] The column calculator 503 calculates the number of columns in the matrix in which the data is to be interleaved. In an embodiment the column calculator 503 can calculate the number of columns (n) using a randomizer 508. In another embodiment the column calculator 503 can calculate the number of columns (n) using a suitable equation. For example if for a 2-dimensional matrix the number of rows (m) is to be calculated using equation then the column calculator 503 calculates the number of columns (n) using a randomizer 508. For example the column calculator 503 can use a first randomizer to calculate the number of columns to be present in the matrix. In this case a random bit sequence is fed as input to the first randomizer 508. Further the column calculator 503 produces a clock pulse using a clock generator 507. Further using the generated clock pulse the column calculator 503 performs a clock shift of the random bit sequence present in the first randomizer. Further certain number of bits present in pre-decided location in the randomizer bit sequence are fetched and are compared with a pre-stored database which can be a Look Up Table (LUT). Further the LUT can be comprised of number of columns (n) corresponding to combination of fetched bits. For example if the fetched bits are 00 then corresponding number of columns can be 1 and so on. In another embodiment for the 2-dimensional matrix if the number of rows (m) is calculated using randomizer 508 then the column calculator 508 calculates the number of columns (n) using a suitable equation.
[0069] The dynamic interleaving mechanism as in the proposed system uses a Random Skip Count (RSC) sequence to ensure security in data transmission. The RSC value is calculated by the random skip count calculator 504. The random skip count calculator 504 can calculate a RSC value using a randomizer 508. In order to calculate a random skip count value using a randomizer 508 a random bit sequence of 8 bits is fed as input to the randomizer 508. Further using a clock pulse generated by a clock generator 507 the random skip count calculator 504 performs a clock shift of the random bit sequence present in the randomizer 508. In one embodiment a decimal equivalent of the 8 bit sequence can be used as count (count_D). In another embodiment certain numbers of bits present in pre-decided location in the randomizer bit sequence can be fetched and are compared with a pre-stored database which can be a Look Up Table (LUT). For example if the fetched bits are 00 then corresponding number of columns can be 1 and so on. The calculated RSC value is then used as a clock shift value in the clock generator 507 for calculating parameters such as number of rows (m) number of columns (n) data filling format data filling/releasing order and so on. That means the clocks of the randomizers used for calculating values of parameters such as number of rows (m) number of columns (n) data filling format data filling/releasing order and so on are shifted according to the calculated Count_D value. In various embodiments the shifted value / RSC can be communicated with the other receiving device either through secured channel or through same channel with a different time slot. If certification authority (CA) is used as an intermediate authority in this case through CA the RSC value shall be shared.
[0070] Random Skip Count = Decimal Equivalent Count = Shifting Existing clocks of the randomizers (shift registers).
[0071] The memory module 505 can comprise databases or LUTs so as to calculate parameters such as number of columns (n) number of rows (m) data filling format data filling/releasing order and so on.
[0072] The multiplexer 506 can be used to multiplex various parameters such as number of columns (n) number of rows (m) data filling format data filling/releasing order and so on to a single signal for the ease of transmission. For example the parameters such as number of columns (n) number of rows (m) data filling format data filling/releasing order and so on are multiplexed to form a control signal. Further the multiplexed signal can be transmitted to a destination using a single channel.
[0073] The control signal formed by multiplexing various parameters is then delivered to a communication channel using the output module 509. The output module 509 can transmit the control signal data to the interleaving module 402. The interleaving parameters can be shared with the interleaving module 402 using serial or parallel communication and the communication can happen through a secured channel 102 or through an authorized authority such as certification authority (CA). Further the interleaving parameters can be shared with the dynamic de-interleaved payload generation module 308 of the receiver device using a wired/wireless channel via serial or parallel communication.
[0074] FIG. 6 illustrates a block diagram which shows various components of an interleaving module as disclosed in the embodiments herein. The interleaving module 402 further comprises receiver block 601 de-multiplexer 602 data filling block 603 and transmitter block 604. The receiver block 601 receives the control signal transmitted from the processing module 401. The receiver block 601 also receives data signal to be interleaved as input parameter. The control signal is then fed to the de-multiplexer 602. The de-multiplexer 602 de-multiplexes the control signal and retrieves the control signal parameters such as number of columns (n) number of rows (m) data filling format data filling/releasing order and so on based on which the data is to be interleaved.
[0075] The data filling block 603 analyzes the control signal parameters and identifies values of each parameter. Further based on the identified value of the control signal parameters the data filling block 603 performs data interleaving. For example consider the value of various control signal parameters as given below:
Number of columns (n) = 3
Number of rows (m) = 2
Data filling format = Row wise filling column wise outing
Data filling order = fill row 1 first
Data releasing order = release from column 2 first
[0076] In this case the data filling module 603 interleave the data to be transmitted into a 2*3 matrix format. In this case the system adopt row wise filling format perform row wise filling from 1st row. Further while de-interleaving the data data releasing start from 2nd column. In an embodiment in case of any attack and/or data failure the RSC calculator 504 in processing module 401 generates a RSC value and the control signal parameters are changed according to the RSC value. In this case the changes in control signal parameters are updated at the interleaving module 402 and accordingly the data filling block 603 performs interleaving of the data. Further the transmitter block 604 transmits the interleaved data to a destination user device 101.b.
[0077] FIG. 7a and FIG. 7b illustrates flow diagrams which show various steps involved in the process of dynamic interleaving and dynamic de-interleaving of data as disclosed in the embodiments herein. In order to permit secured transmission of the data the data to be transmitted is fetched (701) by the dynamically interleaved payload generation module 302. Further the dynamically interleaved payload generation module 302 performs (702) dynamic interleaving of the data. In an embodiment the dynamically interleaved payload generation module 302 can calculate and use Random Skip Count (RSC) value in order to perform dynamic interleaving at times of attack and/or data delivery failure or hacking to ensure data security. Further dynamic interleaving of data is performed by using randomization of data. Further the dynamic interleaved data is transmitted (703) to the destination user device 101.b using a transmitter module 304 in the sender user device 101.a. In one embodiment the data can be dynamically interleaved either in the form of a 2-dimensional matrix or in the form of a 3-dimensional matrix. In another embodiment the system can use dedicated randomizers for the purpose of 2D and 3D interleaving or can share same randomizers. In one embodiment dynamic interleaving can also be done after generating the message or packet. In another embodiment the proposed dynamic interleaving mechanism does not require addition of any extra additional bits for security of the data to be transmitted. This helps to maintain same data size even if the data is dynamically interleaved. In an embodiment the settings are not always shared with other devices. If both devices are paired or agreed to share the data based on certain settings the certain settings can be used for the data sharing and no need to send the settings every time with the data. In case of any attack or loss of data the settings are shared with the user device 2 101.b.
[0078] Further at the receiver end the interleaved data is received (704) by the receiver module 305 in the receiver user device 101.b. The receiver shall be aware that the dynamic interleaving is done after packet generation or before the packet generation. Further the receiver checks (705) if the received data is new or if the data transmission is affected by hacking or data loss or any such issues. If the received data is new or if the data transmission is affected by hacking or data loss or any such issues the receiver receives (707) new dynamic interleaved settings from the data transmitter. If not the receiver use (706) already received dynamic interleaved settings to dynamically de-interleave the received de-interleaved data. In an embodiment the proposed mechanism does not require the NFC receiver to receive dynamic interleaved settings each time the data is transmitted. In another embodiment the interleaving settings can be received through different channel 102 such as a secured transmission channel or through an authorized certification authority (CA). Further the channel 102 can be wired or wireless and the data transmission can be serial or parallel transmission. The dynamic interleaved data and the dynamic interleaved settings can be transmitted to the receiver user device 101.b through separate secured channels or through same channels 102. If the settings are transmitted through the same channel to the receiver then the settings are shared at different time level to avoid the attacks. Further a dynamic de-interleaved payload generation module 308 present in the receiver user device 101.b performs (708) dynamic de-interleaving of the received data using the dynamic interleaving settings received from the transmitter user device 101.a. The various actions in method 700 may be performed in the order presented in a different order or simultaneously. Further in some embodiments some actions listed in FIG. 7 may be omitted.
[0079] FIG. 8 illustrates a flow diagram which shows various steps involved in the process of dynamically interleaving data 2-dimensionally as disclosed in the embodiments herein. In order to dynamically interleave a data stream the Dynamic Interleaved Payload Generation Module 302 fetches (801) the data to be interleaved. The Dynamic Interleaved Payload Generation Module 302 comprises a processing module 401 and an interleaving module 402. The interleaving module 402 performs interleaving of the data. In order to interleave the data stream the interleaving module 402 requires a data signal input and a control signal input. The control signal is generated by the processing module 401. In order to generate the control signal the processing module 401 receives the data to be interleaved as its input. Further the processing module 401 processes the received data signal and measures various control signal parameters such as number of columns (802) number of rows (803) data filling/outing format (804) data filling/outing order (805) and so on. In an embodiment the processing module 401 measures the control signal parameters using randomization technique using plurality of randomizers 508. In another embodiment the processing module 401 can use proper equations for measuring certain control signal parameters as given in equation (1). In another embodiment if number of rows (m) is calculated using randomizer then the number of columns (n) is calculated using a suitable equation for the 2-dimensional matrix. In another embodiment if the number of columns (n) is calculated using randomizer then the number of rows (m) is calculated using a suitable equation for the 2-dimensional randomizer. For example if the number of columns (n) is calculated using a randomizer for a 2-dimensional matrix then the number of rows (m) can be calculated using the equation as shown in equation (1).
[0080] Further in order to ensure more security to the data transfer the system also employs Random Skip Count (RSC) parameter. In order to use this the system checks (806) if RSC is required or not for performing data interleaving. The RSC can be used for data security at the time of attack and/or data transfer failure. The initial value of RSC is zero. If RSC is required the system measures/generates (807) an RSC value using a system and method to generate RSC values. If the RSC value is generated the system calculates the settings accordingly using the clock shift based on the generated RSC value. In an embodiment the RSC check (806) can be done before calculating other interleaving parameters. Further using the various control signal parameters the interleaving module 402 performs (808) dynamic interleaving of the data. In the 2-dimensional method the data is interleaved in the form of rows and columns of a matrix. Further the format and order in which the data is filled into the matrix form is fetched by the interleaving module 402 from the control signal.
[0081] In a 2-dimensional matrix the data can be filled row wise or column wise format. Similarly the data can be released in column wise or row wise format. Further the data filling order refers to the order in which the data is to be filled in the matrix. For example if the data filling format selected is row wise filling then the data filling order refers to which row is to be filled first. Similarly if data releasing format is selected as column wise outing then data releasing order refers to from which column in the matrix data releasing should begin. Further after dynamically interleaving the data the data is transmitted (808) to the destination user device 101.b using the transmitter block 604 present in the interleaving module 402. In a preferred embodiment incase of a 2-dimensional matrix the data can be interleaved in the form of 2D sub matrices which are then used to randomize the data dynamically. The various actions in method 800 may be performed in the order presented in a different order or simultaneously. Further in some embodiments some actions listed in FIG. 8 may be omitted.
[0082] FIG. 9 illustrates a flow diagram which shows various steps involved in the process of dynamically interleaving data 3-dimensionally as disclosed in the embodiments herein. In order to dynamically interleave a data stream the Dynamic Interleaved Payload Generation Module 302 fetches (901) the data to be interleaved. The Dynamic Interleaved Payload Generation Module 302 comprises a processing module 401 and an interleaving module 402. The interleaving module 402 performs interleaving of the data. In order to interleave the data stream the interleaving module 402 requires a data signal input and a control signal input. The control signal is generated by the processing module 401. In order to generate the control signal the processing module 401 receives the data to be interleaved as its input. Further the processing module 401 processes the received data signal and measures various control signal parameters such as number of rows (902) number of columns (903) number of layers (904) data filling/outing format (905) data filling/outing order (906) and so on. In an embodiment the processing module 401 measures the control signal parameters using randomization technique using plurality of randomizers 508. In another embodiment if any two of the number of columns (n) number of rows (m) and number of layers (l) are calculated using randomizers then the third parameter is calculated using a suitable equation. In another embodiment value of the randomizer 508 used for calculating the second parameter can be dependent on value of the randomizer 508 used for calculating the first parameter or can be independent and the dependency can be decided considering total balance of the equation. For example in the 3-dimensional mode of dynamic interleaving if the number of rows (m) and number of columns (n) then the number of layers (l) can be measured by using the formula
l = N / (m*n) ------- (2)
where
l = number of layers in the matrix
N = total number of bits
m = number of rows in the matrix
n = number of columns in the matrix
[0083] The total number of bits (N) can be manually provided to the processing module 401 or can be calculated using values of the number of rows (m) and number of columns (n). Further in order to ensure more security to the data transfer the system also employs Random Skip Count (RSC) parameter. In order to use this the system checks (907) if RSC is required or not for performing data interleaving. The RSC can be used for data security at the time of attack and/or data transfer failure. If RSC is required the system measures (908) an RSC value. Further the system calculates new control signal parameters/settings based on the generated RSC value. Further using the various control signal parameters the interleaving module 402 performs (909) dynamic interleaving of the data.
[0084] In the 3-dimensional method the data is interleaved in the form of rows and columns arranged in different layers of a matrix. Further the format and order in which the data is filled/released into the matrix form is fetched by the interleaving module 402 from the control signal. In a 3-dimensional data interleaving format the data filling format refers to the format in which the data is to be filled into the matrix form. For example the data can be filled either row wise or column wise or layer wise format in a 3 dimensional matrix. Further the data releasing format refers to the format in which the data is to be released from the matrix. For example the data can be released column wise first followed by row by releasing and layer by releasing respectively. Further the dynamically interleaved data is transmitted to the destination user device 101.b using the transmitter block 604 present in the interleaving module 402. After interleaving the data in the 3-dimensional format the interleaved data is sent to the destination using the transmitter module 304. In an embodiment the transmitter module 304 transmits the interleaved parameters/settings to the destination/receiver in advance before transmitting the data. The interleaved data and the interleaved parameters/settings can be transmitted through single channel at different times or through different secured channels. Further the receiving device can perform de-interleaving of the received data using the interleaved parameters/settings received from the sender user device 101.a. In a preferred embodiment in the 3-dimensional interleaving format the data to be interleaved is interleaved in the form of sub matrices. Further the sub matrices are dynamically interleaved and are sent to the destination. The various actions in method 900 may be performed in the order presented in a different order or simultaneously. Further in some embodiments some actions listed in FIG. 9 may be omitted.
[0085] FIG. 10 illustrates a flow diagram which shows various steps involved in the process of calculating number of columns for a 2-dimensional matrix using randomizer as disclosed in the embodiments herein. In one embodiment if the number of columns is calculated using randomizer for a 2 dimensional matrix then the number of rows is calculated using equation as given in equation (1). In another embodiment if the number rows are calculated using the randomizer then the number of columns can be calculated using a suitable equation.
[0086] In another embodiment the process of calculating number of columns using randomizer as described below can be used for calculating the number of rows if the number of columns is to be calculated using equation for that 2-dimensional matrix with a different look up table (LUT).
[0087] In order to calculate number of columns for a matrix the column calculator 503 in the processing module 401 initializes (1001) a first randomizer. The first randomizer 508 can be initialized using a random bit sequence. Further the column calculator 503 performs (1002) a clock shift of the random bit sequence using a clock signal generated using a clock generator 507. After performing the clock shift of the bit sequence the column calculator 503 fetches (1003) certain number of bits from pre-defined fields of the randomizer 508. For example in case of 2-dimensional mode the column calculator 503 fetches 2 bits (B1 B0) of data from pre-defined field in the randomizer 508. In another example in case of a 3-dimensional mode the column calculator 503 can fetch 3 bits (B2 B1 B0) from pre-defined fields in the randomizer 508. Further the column calculator 503 compares (1004) fetched bits with data stored in certain databases present in the memory module 505. In an embodiment the database can comprise a Look Up Table (LUT) with number of columns to be selected corresponding to the fetched bit sequence. For example the number of columns to be selected corresponding to fetched bit sequence can be selected as depicted in the following table
Bit Sequence (n)
Number of columns (n)
00
2
01
4
10
8
11
16
[0088] Here if the selected bits B1 B0 = 00 the column calculator 503 selects (1005) 2 columns. If B1 B0 = 01 the column calculator 503 selects (1006) 4 columns. Further for B1 B0 = 10 and 11 the row calculator selects (1007 and 1008) 8 and 16 columns respectively. Further in case of any attack and/or data delivery failure the column selector 503 is dynamically able to change values of the column value parameter. In order to do this the column selector 503 can use a Random Skip Count (RSC) generated using a random skip count calculator 504. Further the RSC count value can be used as clock value to shift the bit sequence in the randomizer 508. By picking random values of RSC and by using them as clock value for selecting number of columns (n) the system is able to ensure more security to the data being transmitted.
[0089] In one embodiment the number of bits selection from the randomizer 508 can be increased to provide the more number of columns in the mapping table for lengthy data packets where the number of columns = 8 or 16 or 32 or more. The various actions in method 1000 may be performed in the order presented in a different order or simultaneously. Further in some embodiments some actions listed in FIG. 10 may be omitted.
[0090] FIG. 11 illustrates a flow diagram which shows various steps involved in the process of calculating number of rows for a 3-dimensional matrix using randomizer as disclosed in the embodiments herein. In one embodiment if any two of the parameters number of rows (m) number of columns (n) number of layers (l) are calculated using randomizer for a 3-dimensional matrix then the third parameter is calculated using a suitable equation. For example if for a 3-dimensional matrix number of rows (m) and number of columns (n) are calculated using randomizers then the number of layers (l) is calculated using a suitable equation as shown in equation (2). Further in case of 3 – dimensional matrix parameter calculation the second randomizer value can be dependent on the first randomizer value or can be independent based on overall balance of the equation.
[0091] In another embodiment once the number of rows (m) for a 3 – dimensional matrix is calculated using the process given below then any one of the two parameters number of columns (n) and number of layers (l) can be calculated using the same method as given below.
[0092] In order to calculate number of rows for a matrix the row calculator 502 in the processing module 401 initializes (1101) a first randomizer 508. The first randomizer 508 can be initialized using a random bit sequence. Further the row calculator 502 performs (1102) a clock shift of the random bit sequence using a clock signal generated using a clock generator 507. After performing the clock shift of the bit sequence the row calculator 502 fetches (1103) certain number of bits from pre-defined fields of the randomizer 508. For example in case of 2-dimensional mode the row calculator 502 fetches 2 bits (B1 B0) of data from pre-defined field in the randomizer 508. In another example in case of a 3-dimensional mode the row calculator 502 can fetch 3 bits (B2 B1 B0) from pre-defined fields in the randomizer 508. Further the row calculator 502 compares (1104) fetched bits with data stored in certain databases present in the memory module 505. In an embodiment the database can comprise a Look Up Table (LUT) with number of rows to be selected corresponding to the fetched bit sequence. For example the number of rows to be selected corresponding to fetched bit sequence can be selected as depicted in the following table.
Bit Sequence (n)
Number of rows (m)
00
2
01
4
10
8
11
16
[0093] Here if the fetched bits B1 B0 = 00 the row calculator 502 selects (1105) 1 row. If the fetched bits are B1 B0 = 01 the row calculator 502 selects (1106) 2 rows. Similarly if the fetched bits are B1 B0 = 10 the row calculator 502 selects (1107) 3 rows and for value of B1 B0 = 11 the row calculator 502 selects (1108) 4 rows and so on. Further in case of any attack and/or data delivery failure the row selector 502 is dynamically able to change values of the row value parameter. In order to do this the row selector 502 can use a Random Skip Count (RSC) generated using a random skip count calculator 504. Further the RSC count value can be used as clock value to shift the bit sequence in the randomizer 508. By picking random values of RSC and by using them as clock value for selecting number of rows (n) the system is able to ensure more security to the data being transmitted. The various actions in method 1100 may be performed in the order presented in a different order or simultaneously. Further in some embodiments some actions listed in FIG. 11 may be omitted.
[0094] FIG. 12 illustrates a flow diagram which shows various steps involved in the process of selecting data filling/releasing format for a matrix using randomizer as disclosed in the embodiments herein. The data filling/releasing format refers to the format in which the data is filled/released in the matrix form. For example in a 2 – dimensional mode of interleaving the data filling format refers to whether the data is to be filled row wise or column wise.
[0095] In order to calculate the data filling/releasing format the processing module 401 initializes (1201) a second randomizer 508. The second randomizer 508 is initialized by inputting a random bit sequence to the randomizer 508. Further using a clock pulse generated by the clock generator 507 the processing module 401 performs (1202) a clock shift of the bit sequence present in the second randomizer 508. After performing the clock shift of the bit sequence the processing module 401 fetches (1203) a predefined number of bits from a pre-defined location in the randomizer 508. For example the processing module 401 can fetch a single bit (C0) from a pre-defined position in the randomizer 508.
[0096] Further the fetched bit (C0) is compared (1204) with values stored in a corresponding database. The database can be a Look Up Table (LUT) that comprise information on data filling/releasing format to be selected corresponding to the fetched bit. For example consider following table which shows a database that comprises data filling/releasing format corresponding to value of the fetched bit (C0).
C0
Data filling order
Data releasing order
0
Row by filling
Column by outing
1
Column by filling
Row by outing
[0097] If the fetched bit C0 = 0 the processing module 401 selects (1205) row by filling and column by outing mode for data filling/releasing. If the fetched bit C0 = 1 the processing module 401 selects (1206) column by filling and row by outing mode for data filling/releasing. Further data filling/releasing is performed by the dynamic interleaving module 402 according to the selected data filling/releasing format.
[0098] In one embodiment the data filling/releasing format can be dynamically calculated/changed in order to ensure better security to the data transfer. Further Random Skip Count (RSC) value also can be employed to dynamically calculate/change the data filling/releasing format value. The various actions in method 1200 may be performed in the order presented in a different order or simultaneously. Further in some embodiments some actions listed in FIG. 12 may be omitted.
[0099] FIG. 13 illustrates a flow diagram which shows various steps involved in the process of selecting data filling order for a matrix using randomizer as disclosed in the embodiments herein. Once the data filling format is selected the processing module calculates the data filling/releasing order. The data filling/releasing order refers to the order in which the data is to be filled/released in the matrix. For example consider a 2-dimensional matrix form in which the data filling/releasing format is selected as row by filling and column by releasing. In this case the data filling order refers to which row is to be filled first. For example if the data filling order is selected as row 1 first data filling start from 1st row followed by successive rows. Similarly if the data releasing order is selected to begin from column 2 data releasing start from column 2 followed by successive columns. Similarly the data filling and releasing order can be calculated for a 3-dimensional matrix also. In case of a 3-dimensional matrix data filling can occur row wise column wise or in layer wise manner.
[00100] In order to calculate the data filling order for a matrix the processing module 401 initializes (1301) a first randomizer 508 by inputting a random bit sequence to the randomizer 508. Further the processing module 401 performs (1302) a clock shift of the bit sequence being fed as input to the second randomizer 508. The processing module 401 can generate the clock signal for performing the clock shift using the clock generator 507.
[00101] Further the processing module 401 fetches (1303) certain number of bits from pre-defined fields in the randomizer 508. For example consider that the randomizer 508 fetches 2 bits (A25 and A24) from the randomizer bit sequence. Further the fetched bits are compared (1304) with pre-stored database in the memory module 505. In an embodiment the database present in the memory module 505 can contain at least one Look Up Table (LUT) which comprise information on data filling order to be selected corresponding to the fetched bit sequence.
[00102] If the fetched bit sequence is A25 A24 = 00 the processing module 401 selects (1305) 1st row or column for data filling. If the fetched bit sequence is A25 A24 = 01 the processing module 401 selects (1306) 2nd row/column for data filling and so on. Further the data filling occurs based on the data filling format selected. For example if the data filling format is selected as row by filling and column by outing and if the data filling order is selected as 1st row/ column data filling begins from 1st row. For example consider the table below which shows data filling order corresponding to the fetched bit sequence for a 2-dimensional matrix.
Bit sequence
Filling number
00
1
01
2
10
3
11
4
[00103] Further the system checks (1309) whether the selected row/column exists or not. In an embodiment the system can check if the selected row/column exist or not by comparing the selected row/column number with the number of rows (m) or columns (n) present in the matrix. For example it can happen that the matrix is a 2*3 matrix and the row selected for beginning data filling is 4. In this case the selected row does not exist as the matrix has only 2 rows. In such cases the processing module perform (1302) clock shift of the randomizer bit sequence and selects a new row/column for data filling based on the newly fetched bits. If the selected row/column exists the data filling block 603 starts data filling from the selected row/column. In an embodiment size of the LUT can be extended or varied according to the data size with more selection options and the randomizers can also be modified accordingly.
[00104] For a 3-dimensional interleaving format the data filling can take place in 3 different planes which are row by filling column by filling and layer by filling. In this case the processing module 401 can fetch at least 3 bits from the randomizer bit sequence which is then compared with a LUT present in the database. Further based on the values of fetched bit sequence the processing module 401 can select a data filling format. Given below an example of the LUT that comprises bit sequence value and corresponding data filling order for a 3-dimensional interleaving format.
Bit sequence value
000
Row by filling
Column by filling
Layer by filling
001
Row by filling
Layer by filling
Column by filling
010
Column by filling
Row by filling
Layer by filling
011
Column by filling
Layer by filling
Row by filling
100
Layer by filling
Row by filling
Column by filling
101
Layer by filling
Column by filling
Row by filling
[00105] In one embodiment the data filling order can be dynamically calculated/changed in order to ensure better security to the data transfer. Further Random Skip Count (RSC) value also can be employed to dynamically calculate/change the data filling order value. The various actions in method 1300 may be performed in the order presented in a different order or simultaneously. Further in some embodiments some actions listed in FIG. 13 may be omitted.
[00106] FIG. 14 illustrates a flow diagram which shows various steps involved in the process of selecting data releasing order for a 2-dimensional matrix using randomizer as disclosed in the embodiments herein. Once the data releasing format is selected the processing module calculates the data filling/releasing order. The data filling/releasing order refers to the order in which the data is to be filled/released in the matrix. For example consider a 2-dimensional matrix form in which the data filling/releasing format is selected as row by filling and column by releasing. In this case the data releasing order refers to from which column data is to be released first. For example if the data releasing order is selected as column 2 first data releasing start from 2nd column followed by successive columns. Similarly the data releasing order can be calculated for a 3-dimensional matrix also. In various embodiments after selecting the filling / releasing order the filling / releasing can be done sequentially or in a hopped manner or in a random fashion based on the calculated random sequences by the system.
[00107] In order to calculate the data releasing order for a matrix the processing module 401 initializes (1401) a first randomizer 508 by inputting a random bit sequence to the randomizer 508. Further the processing module 401 performs (1402) a clock shift of the bit sequence being fed as input to the second randomizer 508. The processing module 401 can generate the clock signal for performing the clock shift using the clock generator 507.
[00108] Further the processing module 401 fetches (1403) certain number of bits from pre-defined fields in the randomizer 508. For example consider for a 2-dimensional matrix the randomizer 508 fetches 2 bits (A19 and A18) from the randomizer bit sequence. Further the fetched bits are compared (1404) with pre-stored database in the memory module 505. In an embodiment the database present in the memory module 505 can contain at least one Look Up Table (LUT) which comprise information on data releasing order to be selected corresponding to the fetched bit sequence. For example consider the table below which depicts data releasing format for a 2-dimensional matrix corresponding to specific values of fetched bits.
Bit sequence
Releasing number/order
00
1
01
2
10
3
11
4
[00109] If the fetched bit sequence is A19 A18 = 00 the processing module 401 selects (1405) 1st row or column for data releasing. If the fetched bit sequence is A25 A24 = 01 the processing module 401 selects (1406) 2nd row/column for data releasing and so on. Further the data releasing occurs based on the data releasing format selected. For example if the data releasing format is selected as column by outing and if the data releasing order is selected as from 2nd column data releasing begins from 2nd column.
[00110] Further the system checks (1409) whether the selected row/column exists or not. In an embodiment the system can check if the selected row/column exist or not by comparing the selected row/column number with the number of rows (m) or columns (n) present in the matrix. For example it can happen that the matrix is a 2*3 matrix and the column selected for beginning data release is 4. In this case the selected column does not exist as the matrix has only 3 columns. In such cases the processing module perform (1402) clock shift of the randomizer bit sequence and selects a new row/column for data filling based on the newly fetched bits. If the selected row/column exists a data releasing block present in the destination user device 101.b starts (1410) data releasing from the selected row/column.
[00111] In one embodiment the data releasing order can be dynamically calculated/changed in order to ensure better security to the data transfer. Further Random Skip Count (RSC) value also can be employed to dynamically calculate/change the data releasing value. For example consider an 8*8 matrix for which the format for data filing / releasing format is selected as row wise filling and column wise releasing and the order for filling and releasing selected as 3 and 4 respectively. Then the filling will start from the 3rd row followed by the 4th row up to 8th row and then automatically filling will start from the first row because the matrix limit (8 rows) ends here and then sequentially 2nd row will be selected to fill data. In an embodiment the row wise filling order can be sequential or else can be random.
[00112] Further at the receiver the data releasing starts from the 4th column followed by 5th column up to 8th and the automatically releasing will start from the 1st column because the matrix limit (8 columns) ends here and then sequentially 2nd column will be selected to release data and then the 3rd. In an embodiment the column wise releasing order can be sequential or can be random.
[00113] In an embodiment the data releasing order can be calculated for a 3-dimensional matrix also. For a 3-dimensional interleaving format the data releasing can take place in 3 different planes which are row by releasing column by releasing and layer by releasing. Further incase of a 3-dimensional matrix at least 5 different data releasing formats can be present corresponding to each of the data filling format. For example if data filling format selected for the 3-dimensional matrix is 000 then correspondingly at least 5 different data releasing formats can be present. Similarly if the data filling order is 001 corresponding to that another 5 different data releasing formats can be available.
[00114] Consider the table (Table X1) below which shows data releasing formats corresponding to the data filling order 000.
Table X1
Data filling order Data releasing indicator
000 Column by releasing Row by releasing Layer by releasing 1
000 Column by releasing Layer by releasing Row by releasing 2
000 Layer by releasing Row by releasing Column by releasing 3
000 Layer by releasing Column by releasing Row by releasing 4
000 Row by releasing Layer by releasing Column by releasing 5
[00115] Similarly the following table (Table X2) shows various data releasing formats corresponding to the data filling order 001.
TABLE X2
Data filling order
Data releasing format
Data release indicator
001 Layer by releasing Row by releasing Column by releasing 1
001 Layer by releasing Column by releasing Row by releasing 2
001 Column by releasing Row by releasing Layer by releasing 3
001 Column by releasing Layer by releasing Row by releasing 4
001 Row by releasing Column by releasing Layer by releasing 5
[00116] In one embodiment a data releasing indicator value decides the data releasing order to be selected corresponding to a particular data filling format. Further the data releasing indicator value can be calculated using a randomizer or a counter or a combination of both based on the system architecture and requirements. Further separate look up tables (LUT) can be maintained corresponding to each of the data filling format. Similarly multiple data releasing formats can be available corresponding to other data filling patterns such as 010 011 and so on.
[00117] In case of the 3D matrix data processing system checks that if the data filling in the matrix is done based on any of the sequences such as 000 001 and so on. Then data releasing shall be according to the TABLE X1 or TABLE X2 and so on to maintain the interleaving and the proper recovery of the data at the receiving side. The various actions in method 1400 may be performed in the order presented in a different order or simultaneously. Further in some embodiments some actions listed in FIG. 14 may be omitted.
[00118] FIG. 15 illustrates a flow diagram which shows various steps involved in the process of implementing Random Skip Count (RSC) for improved security as disclosed in the embodiments herein. Initial value of RSC = 0. The Random Skip Count (RSC) sequence is employed for obtaining improved data security in case of attack and/or data delivery failure. The system constantly checks for any attack for data delivery failure in the message transmission. If any attack or failure is detected (1501) the system calculates (1502) RSC value. In a preferred embodiment the RSC value is calculated using a third randomizer 508. The third randomizer 508 can provide a binary sequence of 8 bits. Decimal equivalent of this binary sequence can be used as the RSC value.
[00119] Further the system adjusts (1503) clock count value of the first and second randomizers based on the calculated RSC value. In a preferred embodiment the RSC value is used as clock count value for the first and second randomizers 508. Further using the RSC value as clock count the system dynamically calculates (1504) new values to the control signal parameters. Further using the new control signal parameter values the data is interleaved (1505) and is transmitted to the destination. The calculated RSC value also is then transmitted to the destination using a secured channel and the destination user device 101.b can use the RSC count to pick the interleaved parameters/settings from the received information. The various actions in method 1500 may be performed in the order presented in a different order or simultaneously. Further in some embodiments some actions listed in FIG. 15 may be omitted.
[00120] FIG. 16 illustrates system architecture of proposed dynamic interleaving system as disclosed in the embodiments herein. The data to be transmitted to a receiver device using NFC mechanism is fed as input to the interleaving module 402 in the dynamically interleaved payload generation module 302. Further the interleaving module 402 receives a control signal from a processing module 401 which is a part of the dynamic interleaved payload generation module 302. The processing module 401 can generate the control signal by receiving the data signal as input for processing. Further the control signal can comprise various dynamic interleaving parameters such as number of rows number of columns data filling/releasing format data filling order data releasing order random skip count (RSC) and so on. The interleaving parameters can be calculated using randomizers and/or by using suitable equations. Further using the control signal parameters the interleaving module 402 in the dynamic interleaved payload generation module 302 perform dynamic interleaving of the data to be transmitted/shared.
[00121] FIGS. 17 18 and 19 illustrates system architecture for measuring number of rows and number of columns using randomizers as disclosed in the embodiments herein. In one embodiment for a 2-dimensional matrix if number of rows (m) is calculated using randomizer 508 then the number of columns (n) is calculated using a suitable equation or else if the number of columns (n) is calculated using randomizers 508 then the number of rows (m) is calculated using a suitable equation. In the proposed architecture for calculating number of rows or columns the randomizer 508 is initiated by inputting a bit sequence. Further a clock shift is performed to the inputted bit sequence and two bits from pre-defined location in the bit sequence are fetched. Further the fetched bits are compared with a look up table (LUT). The LUT can comprise number of rows (m) to be selected corresponding to the fetched bit sequences. Based on the value in LUT the system selects/decides the number of rows (m) for the 2-dimensional matrix.
[00122] FIG. 20 illustrates system architecture for calculating data filling/releasing format for a 2-dimensional matrix as disclosed in the embodiments herein. In this system the randomizer 508 is initialized by inputting a bit sequence of suitable length (for example; 8 bits depending on the size of randomizer) to the randomizer 508. Further the system performs a clock shift of the bit sequence fed to the randomizer 508. Further the system fetches a bit from a pre-defined location in the bit sequence and compares the fetched bit with a look up table (LUT). The LUT can comprise information on which data filling/releasing format is to be used corresponding to the fetched bit. Further the selected data filling/releasing format is used for data filling/releasing to and from the 2-dimensional matrix. For example for the 2-dimensional matrix the data filling/releasing format can be either row by filling-column by outing or column by filling-row by outing. Further in this method the bits can be picked from any place in the sequence as set by the system. Further the bits can be tapped from any set location the location being configurable by the system.
[00123] FIGS. 21 and 22 illustrate system architecture for calculating data filling/releasing order for a 2-dimensional matrix as disclosed in the embodiments herein. Once the data filling/releasing format is selected for the 2-dimensional matrix then the system calculates data filling/releasing order for filling and releasing data from and to the 2-dimensional matrix. The data filling/releasing order refers to the order in which data is to be filled/released to and from the 2-dimensional matrix. For example if the data filling format is row by filling and if the data filling order is selected as to begin from row 2 then the data is filled starting from the 2nd row in the matrix.
[00124] Initially a bit sequence is fed as input to the randomizer 508 and the inputted bit sequence is clock shifted using a clock shift pulse generated using the clock generator 507. Further bits are fetched from predefined places in the bit sequence and are compared with values present in corresponding look up tables (LUT). The LUTs can comprise information on the data filling/releasing order to be used. Further the selected data filling/releasing order is used for filling and releasing data to and from the matrix.
[00125] FIG. 23 illustrates system architecture for 3-dimensional matrix dynamic random interleaving as disclosed in the embodiments herein. The data to be transmitted to a receiver device using NFC mechanism is fed as input to the interleaving module 402 in the dynamically interleaved payload generation module 302. Further the interleaving module 402 receives a control signal from a processing module 401 which is a part of the dynamic interleaved payload generation module 302. The processing module 401 can generate the control signal by receiving the data signal as input for processing. Further the control signal can comprise various dynamic interleaving parameters such as number of rows number of columns number of layers data filling/releasing format data filling order data releasing order random skip count (RSC) and so on. The interleaving parameters can be calculated using randomizers and/or by using suitable equations. Further using the control signal parameters the interleaving module 402 in the dynamic interleaved payload generation module 302 perform 3-dimensional dynamic interleaving of the data to be transmitted/shared.
[00126] FIG. 24 illustrates system architecture for calculating number of rows for a 3-dimensional matrix as disclosed in the embodiments herein. In one embodiment for the 3-dimensional matrix if any two of the parameters number of rows (m) number of columns (n) and number of layers (l) are calculated using randomizers 508 then the third parameter is calculated using a suitable equation. For example if the number of rows and number of columns for a 3-dimensional matrix are calculated using randomizers then the number of layers is calculated using a suitable equation. In the proposed architecture for calculating number of rows the randomizer 508 is initiated by inputting a bit sequence. Further a clock shift is performed to the inputted bit sequence and two bits from pre-defined location in the bit sequence are fetched. Further the fetched bits are compared with a look up table (LUT). The LUT can comprise number of rows (m) to be selected corresponding to the fetched bit sequences. Based on the value in LUT the system selects/decides the number of rows (m) for the 2-dimensional matrix.
[00127] FIG. 25 illustrates system architecture for calculating number of rows (m) or number of columns (n) or number of layers (l) for a 3-dimensional matrix as disclosed in the embodiments herein. In one embodiment for the 3-dimensional matrix if any two of the parameters number of rows (m) number of columns (n) and number of layers (l) are calculated using randomizers 508 then the third parameter is calculated using a suitable equation. For example if the number of rows and number of columns for a 3-dimensional matrix are calculated using randomizers then the number of layers is calculated using a suitable equation. In the proposed architecture for calculating number of rows the randomizer 508 is initiated by inputting a bit sequence. Further a clock shift is performed to the inputted bit sequence and two bits from pre-defined location in the bit sequence are fetched. Further the fetched bits are compared with a look up table (LUT). The LUT can comprise number of rows (m) to be selected corresponding to the fetched bit sequences. Based on the value in LUT the system selects/decides the number of rows (m) for the 3-dimensional matrix.
[00128] FIG. 26 illustrates system architecture for calculating data filling format for a 3-dimensional matrix as disclosed in the embodiments herein. The data filling format for the 3-dimensional matrix refers to the format in which data is to be filled in the 3D matrix. In the proposed architecture for deciding data filling format the randomizer 508 is initiated by inputting a bit sequence. Further a clock shift is performed to the inputted bit sequence and three bits from pre-defined location in the bit sequence are fetched. Further the fetched bits are compared with a look up table (LUT). The LUT can comprise information on data filling format corresponding to the fetched bit sequences. Based on the value in LUT the system selects/decides the data filling format for the 3-dimensional matrix. For a 3-dimensional matrix data filling can take place starting from any of the row wise column wise or layer wise modes with various combinations.
[00129] FIG. 27 illustrates system architecture for calculating data releasing format for a 3-dimensional matrix as disclosed in the embodiments herein. The data releasing format for the 3-dimensional matrix refers to the format in which data is to be released from the 3D matrix. In the proposed architecture for deciding data releasing format for a 3-dimensional matrix the randomizer 508 is initiated by inputting a bit sequence. Further a clock shift is performed to the inputted bit sequence and three bits from pre-defined location in the bit sequence are fetched. Further the fetched bits are compared with a look up table (LUT). The LUT can comprise information on the data releasing order to be selected corresponding to the fetched bit sequences. Based on the data in LUT the system selects/decides the data releasing format for the 3-dimensional matrix. For a 3-dimensional matrix data releasing can take place starting from any of the row wise column wise or layer wise modes with various combinations.
[00130] FIGS. 28 and 29 illustrate system architecture for dynamically interleaving sub-matrices for a 2-dimensional matrix and 3-dimensional matrix respectively as disclosed in the embodiments herein. The proposed system permits to perform dynamic interleaving at the sub-matrices level individually. In the sub matrix concept the main matrix is divided in the smaller matrices and sub matrices are used to fill the data of random size. For example in case of 2D matrix sub matrices with the sizes of m1:n1….. mx:my are used to randomize the data dynamically. Then the total number of bits (N) can be calculated as
N = mXn = (m1Xn1) + (m2Xn2) + (m3Xn3) + (m4Xn4) ----- (3)
[00131] In order to dynamically interleave data in the form of sub matrices the system maintains information on the overall data size. Further for the measured over all data size the system maintains sub-matrices. In one embodiment one dynamic interleaving system can be used to randomize the individual sub-matrices or dedicated sub- dynamic interleaving systems can be used to speed-up the interleaving. In a 2-dimensional sub matrices interleaving system 2 dimensional matrices are interleaved whereas incase of 3-dimensional sub matrices interleaving system 3-dimensional sub matrices are interleaved and transmitted. For a 2-dimensional matrix the system arranges data in the form of rows and columns of a matrix. For a 3-dimensional matrix the system arranges data in a 3-dimensional format with data being arranged in 3 planes namely rows columns and layers.
[00132] FIG. 30 illustrates system architecture for sharing dynamically interleaved data and settings between sender and receiver as disclosed in the embodiments herein. The data to be transmitted from the user device 101.a to the destination is dynamically interleaved in the user device 101.a. The destination can be a second user device 101.b placed in a shop or with a POS vendor or with a merchant. Further the dynamically interleaved data and the dynamic interleaving settings are shared with the destination device. In one embodiment the dynamic interleaved data and the dynamic interleaved settings can be shared through different channels 102 for better security. In another embodiment the dynamic interleaved data and the dynamic interleaved settings can be shared through same channels 102 in different time intervals for better security. In another embodiment the dynamic interleaved settings corresponding to a dynamically interleaved data stream is shared only once between the transmitter device and the receiver device. The settings can be retransmitted for a DataStream only if any issue such as data loss or hacking has occurred. The settings can be transmitted before the dynamically interleaved data so that the receiver can perform real time de-interleaving of the received data. The channel used for sharing dynamically interleaved settings and parameters is to be a secured channel or an authorized certificate authority (CA). Further the secured channel 102 can be wired or wireless.
[00133] FIGS. 31a and 31b illustrates settings/parameters 1 settings/parameters 2 and single bit representation of dynamic interleaving in NDEF format respectively as disclosed in the embodiments herein. In the proposed dynamic interleaving scheme the settings/parameters shared between the transmitter user device 101.a and the receiver user device 101.b are divided into two parts namely settings/parameters 1 and settings/parameters 2. The settings/ parameters are shared with the transmitter and receiver by both parties using secured channel or through CA. the settings/ parameters 1 (Fig. 31.a) are less frequently changed and in case of any attack these parameters can be changed by the permission of both parties or from the recommendation of CA. The settings/parameters 1 comprise the following parameters.
[00134] The settings/parameters that are changed frequently are represented using settings/parameters 2 (Fig. 31b). The settings/parameters 2 comprises the following parameters.
[00135] In one embodiment the total number of bits can also be kept in the settings/ parameter 1 section and only skip count will be communicated with other party in case of attack or data tracing. By doing this the frequent share of the settings/ parameters over the channel can be avoided. In another embodiment devices paring can be done to set the settings/ parameters for both the devices (transmitter and receiver) to avoid frequent use of sharing the settings/ parameters. In another embodiment a single bit indication is used in NDEF (NFC data exchange format) to represent that the data is randomly dynamic interleaved so the receiver would come to know and will use the dynamic interleaving to recover the data in secured manner. An indication bit is used to indicate dynamic random interleaving yes or no (1 or 0).
[00136] In another embodiment a single bit indication can be used in the NFC Data Exchange Format (NDEF) as in Fig. 31.c. Using this indication the receiver can identify if dynamic interleaving is done or not in the transmitted data and can decide if dynamic interleaving settings are to be used to recover data in secured manner. For example value 1 of indication bit can indicate that dynamic interleaving is done and value 0 can indicate that dynamic interleaving is not done.
[00137] The embodiments disclosed herein can be implemented through at least one software program running on at least one hardware device and performing network management functions to control the elements. The elements shown in Fig. 3 include blocks which can be at least one of a hardware device or a combination of hardware device and software module.
[00138] The foregoing description of the specific embodiments will so fully reveal the general nature of the embodiments herein that others can by applying current knowledge readily modify and/or adapt for various applications such specific embodiments without departing from the generic concept and therefore such adaptations and modifications should and are intended to be comprehended within the meaning and range of equivalents of the disclosed embodiments. It is to be understood that the phraseology or terminology employed herein is for the purpose of description and not of limitation. Therefore while the embodiments herein have been described in terms of preferred embodiments those skilled in the art will recognize that the embodiments herein can be practiced with modification within the spirit and scope of the embodiments as described herein.
We claim:
1. A method for facilitating a secure near field communication between a first device and a second device said method comprising:
Dynamically interleaving information to be transmitted using randomization by said first device;
transmitting dynamically interleaved data by said first device to said second device;
transmitting dynamically interleaved settings by said first device to said second device; and
de-interleaving received data by said second device on receiving said dynamically interleaved data and said dynamically interleaved settings from said first device.
2. The method as claimed in claim 1 wherein interleaving information to be transmitted using randomization by said first device further comprises:
receiving said information to be transmitted by said first device;
receiving control data by said first device; and
processing said information and said control data by said first device.
3. The method as claimed in claim 1 wherein said information is interleaved and processed to a matrix form.
4. The method as claimed in claim 3 wherein said processing of information to form said matrix further comprises:
calculating number of columns for said matrix by said first device;
calculating number of rows for said matrix by said first device;
deciding data filling format by said first device;
deciding data releasing format by said first device;
calculating data filling order by said first device;
calculating data releasing order by said first device; and
filling said information into said matrix form by said first device.
5. The method as claimed in claim 4 wherein said calculating number of columns further comprises:
inputting a bit sequence to a first randomizer in said first device;
processing said bit sequence in set clock cycles by said first randomizer;
fetching bits in predefined location from said processed bit sequence by said first device; and
identifying number of columns corresponding to said fetched bits by said first device.
6. The method as claimed in claim 4 wherein said identifying number of columns further comprises comparing said fetched bits with a first database by said first device.
7. The method as claimed in claim 4 wherein said method employs an equation for calculating said number of rows.
8. The method as claimed in claim 4 wherein said calculating number of rows further comprises:
inputting a bit sequence to a first randomizer in said first device;
processing said bit sequence in set clock cycles by said first randomizer;
fetching bits in predefined location from said processed bit sequence by said first device; and
identifying number of rows corresponding to said fetched bits by said first device.
9. The method as claimed in claim 8 wherein said identifying number of rows further comprises comparing said fetched bits with a first database by said first device.
10. The method as claimed in claim 4 wherein said method employs an equation for calculating said number of columns.
11. The method as claimed in claim 4 wherein deciding data filling format further comprises:
inputting a bit sequence to a second randomizer in said first device;
processing said bit sequence in set clock cycles by said second randomizer;
fetching bits in predefined location from said processed bit sequence by said first device; and
identifying data filling format corresponding to said fetched bits by said first device.
12. The method as claimed in claim 11 wherein said identifying data filling format further comprises comparing said fetched bits with a second database by said first device.
13. The method as claimed in claim 4 wherein said deciding data releasing format further comprises:
inputting a bit sequence to a second randomizer by said first device;
processing said bit sequence in set clock cycles by said second randomizer;
fetching bits in predefined location from said processed bit sequence by said first device; and
identifying data releasing format corresponding to said fetched bits by said first device.
14. The method as claimed in claim 13 wherein said identifying data releasing format further comprises comparing said fetched bits with a second database by said first device.
15. The method as claimed in claim 1 wherein Random Skip Count is used for improving security.
16. The method as claimed in claim 1 wherein said interleaved information and said interleaving settings are transmitted through a single channel.
17. The method as claimed in claim 16 wherein said interleaved information and said interleaving settings are transmitted at different time intervals.
18. The method as claimed in claim 1 wherein said interleaved information and said interleaving settings are transmitted through different channels.
19. The method as claimed in claim 1 wherein said de-interleaving further comprises:
receiving interleaved information by a second device;
receiving interleaving settings by said second device;
identifying data releasing format by said second device; and
calculating data releasing order by said second device.
20. The method as claimed in claim 19 wherein data releasing format is identified from said received interleaved data by said second device.
21. The method as claimed in claim 19 wherein said data releasing order is calculated from said received interleaved data by said second device.
22. The method as claimed in claim 3 wherein said processing of information to form said matrix further comprises:
calculating number of rows for said matrix by said first device;
calculating number of columns for said matrix by said first device;
calculating number of layers for said matrix by said first device;
deciding data filling format by said first device;
deciding data releasing format by said first device;
deciding data filling/outing order by said first device; and
filling said information into said matrix form by said first device.
23. The method as claimed in claim 22 wherein said calculating number of rows further comprises:
inputting a bit sequence to a first randomizer in said first device;
processing said bit sequence in set clock cycles by said first randomizer;
fetching bits in predefined location from said processed bit sequence by said first device; and
identifying number of columns corresponding to said fetched bits by said first device.
24. The method as claimed in claim 23 wherein said identifying number columns further comprises comparing said fetched bits with a first database by said first device.
25. The method as claimed in claim 22 wherein said calculating number of columns further comprises:
inputting a bit sequence to a second randomizer in said first device;
processing said bit sequence in set clock cycles by said second randomizer;
fetching bits in predefined location from said processed bit sequence by said first device; and
identifying number of columns corresponding to said fetched bits by said first device.
26. The method as claimed in claim 25 wherein said identifying number of columns further comprises comparing said fetched bits with a second database by said first device.
27. The method as claimed in claim 22 wherein said deciding data filling format further comprises:
inputting a bit sequence to a third randomizer in said first device;
processing said bit sequence in set clock cycles by said third randomizer;
fetching bits in predefined location from said processed bit sequence by said first device; and
identifying data filling format corresponding to said fetched bits by said first device.
28. The method as claimed in claim 27 wherein said identifying data filling format further comprises comparing said fetched bits with a third database by said first device.
29. The method as claimed in claim 22 wherein said deciding data releasing format further comprises:
inputting a bit sequence to a third randomizer by said first device;
processing said bit sequence in set clock cycles by said third randomizer;
fetching bits in predefined location from said processed bit sequence by said first device; and
identifying data releasing format corresponding to said fetched bits by said first device.
30. The method as claimed in claim 29 wherein said identifying data releasing format further comprises comparing said fetched bits with a third database by said first device.
31. A system configured for performing the method claimed in claim 1 to 30.
32. A device for facilitating secure near field communication with a second device in a communication network said device configured for:
dynamically interleaving information to be transmitted using randomization by said device;
transmitting dynamically interleaved data by said device to said second device;
transmitting dynamically interleaved settings by said device to said second device; and
de-interleaving received data by said second device on receiving said dynamically interleaved data and said dynamically interleaved settings from said device.
33. The device as claimed in claim 32 wherein said device is configured for interleaving information to be transmitted using randomization by said device where said randomization further comprises:
receiving said information to be transmitted by said device;
receiving control data by said device; and
processing said information and said control data by said device.
34. The device as claimed in claim 32 wherein device is configured for interleaving and processing said information to a matrix form.
35. The device as claimed in claim 34 wherein said device is configured for processing of information to form said matrix where said processing further comprises:
calculating number of columns for said matrix by said device;
calculating number of rows for said matrix by said device;
deciding data filling format by said device;
deciding data releasing format by said device;
calculating data filling order by said device;
calculating data releasing order by said first device; and
filling said information into said matrix form by said device.
36. The device as claimed in claim 35 wherein said device is configured for calculating number of columns by:
inputting a bit sequence to a first randomizer in said device;
processing said bit sequence in set clock cycles by said first randomizer;
fetching bits in predefined location from said processed bit sequence by said device; and
identifying number of columns corresponding to said fetched bits by said device.
37. The device as claimed in claim 36 wherein said device is configured for identifying number of columns by comparing said fetched bits with a first database by said device.
38. The device as claimed in claim 35 wherein said device is configured for calculating number of rows using an equation.
39. The device as claimed in claim 35 wherein said device is configured for calculating number of rows by:
inputting a bit sequence to a first randomizer in said device;
processing said bit sequence in set clock cycles by said first randomizer;
fetching bits in predefined location from said processed bit sequence by said device; and
identifying number of rows corresponding to said fetched bits by said device.
40. The device as claimed in claim 39 wherein said device is configured for identifying number of rows by comparing said fetched bits with a first database by said device.
41. The device as claimed in claim 35 wherein said device is configured for calculating number of columns using an equation.
42. The device as claimed in claim 35 wherein said device is configured for deciding data filling format by:
inputting a bit sequence to a second randomizer in said device;
processing said bit sequence in set clock cycles by said second randomizer;
fetching bits in predefined location from said processed bit sequence by said device; and
identifying data filling format corresponding to said fetched bits by said device.
43. The device as claimed in claim 42 wherein said device is configured for identifying data filling format by comparing said fetched bits with a second database by said device.
44. The device as claimed in claim 35 wherein said device is configured for deciding data releasing format by:
inputting a bit sequence to a second randomizer by said device;
processing said bit sequence in set clock cycles by said second randomizer;
fetching bits in predefined location from said processed bit sequence by said device; and
identifying data releasing format corresponding to said fetched bits by said device.
45. The device as claimed in claim 44 wherein said device is configured for identifying data releasing format by comparing said fetched bits with a second database by said device.
46. The device as claimed in claim 32 wherein Random Skip Count is used for improving security.
47. The device as claimed in claim 32 wherein said device is configured for transmitting said interleaved information and said interleaving settings through a single channel.
48. The device as claimed in claim 47 wherein said device is configured for transmitting said interleaved information and said interleaving settings at different time intervals.
49. The device as claimed in claim 32 wherein said device is configured for transmitting said interleaved information and said interleaving settings through different channels.
50. The device as claimed in claim 32 wherein said device is configured for de-interleaving by:
receiving interleaved data by a second device;
identifying data releasing format by said second device; and
calculating data releasing order by said second device.
51. The device as claimed in claim 50 wherein said second device is configured for identifying said data releasing format from said received interleaving settings.
52. The device as claimed in claim 50 wherein said second device is configured for calculating said releasing order from said received interleaving settings.
53. The device as claimed in claim 34 wherein said device is configured for processing of information to form said matrix by:
calculating number of rows for said matrix by said device;
calculating number of columns for said matrix by said device;
calculating number of layers for said matrix by said device;
deciding data filling format by said device;
deciding data releasing format by said device;
deciding data filling/outing order by said first device; and
filling said information into said matrix form by said device.
54. The device as claimed in claim 53 wherein said device is configured for calculating number of rows by:
inputting a bit sequence to a first randomizer in said device;
processing said bit sequence in set clock cycles by said first randomizer;
fetching bits in predefined location from said processed bit sequence by said device; and
identifying number of columns corresponding to said fetched bits by said device.
55. The device as claimed in claim 54 wherein said device is configured for identifying number rows by comparing said fetched bits with a first database by said device.
56. The device as claimed in claim 53 wherein said device is configured for calculating number of columns by:
inputting a bit sequence to a second randomizer in said device;
processing said bit sequence in set clock cycles by said second randomizer;
fetching bits in predefined location from said processed bit sequence by said device; and
identifying number of columns corresponding to said fetched bits by said device.
57. The device as claimed in claim 56 wherein said device is configured for identifying number of columns by comparing said fetched bits with a second database by said device.
58. The device as claimed in claim 53 wherein said device is configured for deciding data filling format by:
inputting a bit sequence to a third randomizer in said device;
processing said bit sequence in set clock cycles by said third randomizer;
fetching bits in predefined location from said processed bit sequence by said device; and
identifying data filling format corresponding to said fetched bits by said device.
59. The device as claimed in claim 58 wherein said device is configured for identifying data filling format by comparing said fetched bits with a third database by said device.
60. The device as claimed in claim 53 wherein said device is configured for deciding data releasing format by:
inputting a bit sequence to a third randomizer by said device;
processing said bit sequence in set clock cycles by said third randomizer;
fetching bits in predefined location from said processed bit sequence by said device; and
identifying data releasing format corresponding to said fetched bits by said device.
61. The device as claimed in claim 60 wherein said device is configured for identifying data releasing format by comparing said fetched bits with a third database by said device.
Dated: 29th day of March 2012 Signature:
Dr Kalyan Chakravarthy
(Patent Agent)
ABSTRACT
The embodiments herein relate to communication and more particularly to secured data transmission in near field communication. The system dynamically interleaves the data to be transmitted using randomization and transmits the dynamically interleaved data and the interleaved settings/parameters to the destination. Further the receiver device performs dynamic de-interleaving of the received data using the received interleaved settings/parameters. Further in order to ensure security to the data transmission the system uses Random Skip Count (RSC) values. If necessary new dynamic interleaving settings/parameters are calculated based on RSC value and the new settings/parameters are used to dynamically interleave the data. The process of interleaving can be performed in 2-dimensional or 3-dimensional formats. Further in the 2-dimensional and 3-dimensional interleaving schemes data can be first dynamically interleaved in the form of sub matrices and the sub matrices can be further dynamically interleaved to form the final dynamically interleaved data matrix.
FIG. 3
| Section | Controller | Decision Date |
|---|---|---|
| 15 | THIYAGARAJA GUPTHA DHAYANANDAN | 2020-12-11 |
| 15 | THIYAGARAJA GUPTHA DHAYANANDAN | 2020-12-11 |
| # | Name | Date |
|---|---|---|
| 1 | 954-DEL-2012-PROOF OF ALTERATION [17-01-2024(online)].pdf | 2024-01-17 |
| 1 | Form-5.pdf | 2012-03-30 |
| 2 | 954-DEL-2012-RELEVANT DOCUMENTS [28-09-2023(online)].pdf | 2023-09-28 |
| 2 | Form-3.pdf | 2012-03-30 |
| 3 | Form-1.pdf | 2012-03-30 |
| 3 | 954-DEL-2012-RELEVANT DOCUMENTS [23-08-2022(online)].pdf | 2022-08-23 |
| 4 | Drawings.pdf | 2012-03-30 |
| 4 | 954-DEL-2012-FORM 4 [29-04-2022(online)].pdf | 2022-04-29 |
| 5 | 954-DEL-2012-US(14)-HearingNotice-(HearingDate-11-11-2020).pdf | 2021-10-17 |
| 5 | 954-del-2012-Correspondence-others (14-09-2012).pdf | 2012-09-14 |
| 6 | SEL_New POA_ipmetrix.pdf | 2014-10-07 |
| 6 | 954-DEL-2012-RELEVANT DOCUMENTS [22-04-2021(online)].pdf | 2021-04-22 |
| 7 | FORM 13-change of POA - Attroney.pdf | 2014-10-07 |
| 7 | 954-DEL-2012-IntimationOfGrant11-12-2020.pdf | 2020-12-11 |
| 8 | 954-DEL-2012-PatentCertificate11-12-2020.pdf | 2020-12-11 |
| 8 | 954-DEL-2012-FER.pdf | 2018-08-17 |
| 9 | 954-DEL-2012-Annexure [26-11-2020(online)].pdf | 2020-11-26 |
| 9 | 954-DEL-2012-PETITION UNDER RULE 137 [22-11-2018(online)].pdf | 2018-11-22 |
| 10 | 954-DEL-2012-ENDORSEMENT BY INVENTORS [26-11-2020(online)].pdf | 2020-11-26 |
| 10 | 954-DEL-2012-FORM 13 [22-11-2018(online)].pdf | 2018-11-22 |
| 11 | 954-DEL-2012-FORM 3 [26-11-2020(online)].pdf | 2020-11-26 |
| 11 | 954-DEL-2012-PETITION UNDER RULE 137 [23-11-2018(online)].pdf | 2018-11-23 |
| 12 | 954-DEL-2012-FORM 3 [23-11-2018(online)].pdf | 2018-11-23 |
| 12 | 954-DEL-2012-FORM-26 [26-11-2020(online)].pdf | 2020-11-26 |
| 13 | 954-DEL-2012-FORM 13 [23-11-2018(online)].pdf | 2018-11-23 |
| 13 | 954-DEL-2012-Proof of Right [26-11-2020(online)].pdf | 2020-11-26 |
| 14 | 954-DEL-2012-FER_SER_REPLY [23-11-2018(online)].pdf | 2018-11-23 |
| 14 | 954-DEL-2012-Written submissions and relevant documents [26-11-2020(online)].pdf | 2020-11-26 |
| 15 | 954-DEL-2012-ASSIGNMENT DOCUMENTS [10-10-2019(online)].pdf | 2019-10-10 |
| 15 | 954-DEL-2012-Correspondence to notify the Controller [04-11-2020(online)].pdf | 2020-11-04 |
| 16 | 954-DEL-2012-8(i)-Substitution-Change Of Applicant - Form 6 [10-10-2019(online)].pdf | 2019-10-10 |
| 16 | 954-DEL-2012-FORM-26 [04-11-2020(online)].pdf | 2020-11-04 |
| 17 | 954-DEL-2012-Proof of Right (MANDATORY) [25-11-2019(online)].pdf | 2019-11-25 |
| 17 | 954-DEL-2012-FORM-26 [11-10-2019(online)].pdf | 2019-10-11 |
| 18 | 954-DEL-2012-FORM-26 [11-10-2019(online)].pdf | 2019-10-11 |
| 18 | 954-DEL-2012-Proof of Right (MANDATORY) [25-11-2019(online)].pdf | 2019-11-25 |
| 19 | 954-DEL-2012-8(i)-Substitution-Change Of Applicant - Form 6 [10-10-2019(online)].pdf | 2019-10-10 |
| 19 | 954-DEL-2012-FORM-26 [04-11-2020(online)].pdf | 2020-11-04 |
| 20 | 954-DEL-2012-ASSIGNMENT DOCUMENTS [10-10-2019(online)].pdf | 2019-10-10 |
| 20 | 954-DEL-2012-Correspondence to notify the Controller [04-11-2020(online)].pdf | 2020-11-04 |
| 21 | 954-DEL-2012-FER_SER_REPLY [23-11-2018(online)].pdf | 2018-11-23 |
| 21 | 954-DEL-2012-Written submissions and relevant documents [26-11-2020(online)].pdf | 2020-11-26 |
| 22 | 954-DEL-2012-FORM 13 [23-11-2018(online)].pdf | 2018-11-23 |
| 22 | 954-DEL-2012-Proof of Right [26-11-2020(online)].pdf | 2020-11-26 |
| 23 | 954-DEL-2012-FORM 3 [23-11-2018(online)].pdf | 2018-11-23 |
| 23 | 954-DEL-2012-FORM-26 [26-11-2020(online)].pdf | 2020-11-26 |
| 24 | 954-DEL-2012-PETITION UNDER RULE 137 [23-11-2018(online)].pdf | 2018-11-23 |
| 24 | 954-DEL-2012-FORM 3 [26-11-2020(online)].pdf | 2020-11-26 |
| 25 | 954-DEL-2012-ENDORSEMENT BY INVENTORS [26-11-2020(online)].pdf | 2020-11-26 |
| 25 | 954-DEL-2012-FORM 13 [22-11-2018(online)].pdf | 2018-11-22 |
| 26 | 954-DEL-2012-Annexure [26-11-2020(online)].pdf | 2020-11-26 |
| 26 | 954-DEL-2012-PETITION UNDER RULE 137 [22-11-2018(online)].pdf | 2018-11-22 |
| 27 | 954-DEL-2012-FER.pdf | 2018-08-17 |
| 27 | 954-DEL-2012-PatentCertificate11-12-2020.pdf | 2020-12-11 |
| 28 | 954-DEL-2012-IntimationOfGrant11-12-2020.pdf | 2020-12-11 |
| 28 | FORM 13-change of POA - Attroney.pdf | 2014-10-07 |
| 29 | 954-DEL-2012-RELEVANT DOCUMENTS [22-04-2021(online)].pdf | 2021-04-22 |
| 29 | SEL_New POA_ipmetrix.pdf | 2014-10-07 |
| 30 | 954-del-2012-Correspondence-others (14-09-2012).pdf | 2012-09-14 |
| 30 | 954-DEL-2012-US(14)-HearingNotice-(HearingDate-11-11-2020).pdf | 2021-10-17 |
| 31 | Drawings.pdf | 2012-03-30 |
| 31 | 954-DEL-2012-FORM 4 [29-04-2022(online)].pdf | 2022-04-29 |
| 32 | Form-1.pdf | 2012-03-30 |
| 32 | 954-DEL-2012-RELEVANT DOCUMENTS [23-08-2022(online)].pdf | 2022-08-23 |
| 33 | Form-3.pdf | 2012-03-30 |
| 33 | 954-DEL-2012-RELEVANT DOCUMENTS [28-09-2023(online)].pdf | 2023-09-28 |
| 34 | Form-5.pdf | 2012-03-30 |
| 34 | 954-DEL-2012-PROOF OF ALTERATION [17-01-2024(online)].pdf | 2024-01-17 |
| 1 | Searchstrategy_954_DEL_2012_21-05-2018.pdf |