Touchscreen overlay attack prevention

Scrambled CDM technology on capacitive touchscreens prevents overlay attacks by making it difficult for attackers to decode touch inputs, thus securing sensitive information in PoS terminals.

JP2026509458APending Publication Date: 2026-03-19MICROCHIP TOUCH SOLUTIONS LIMITED
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2024-03-14
Publication Date
2026-03-19

AI Technical Summary

Technical Problem

Capacitive touchscreens, particularly in PoS terminals, are vulnerable to overlay attacks that intercept sensitive information such as passwords and payment card numbers, as attackers can detect touch inputs through a malicious overlay that mimics the original touchscreen.

Method used

Implementing scrambled code division multiplexing (CDM) technology to drive orthogonal signal patterns on touchscreen electrodes, making it difficult for attackers to decode the precise location of touch inputs by using a scrambled array of code patterns.

Benefits of technology

The scrambled CDM technology significantly hinders attackers from intercepting sensitive information by preventing them from determining the exact location of touch events on the touchscreen, thereby enhancing security against overlay attacks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2026509458000001_ABST
    Figure 2026509458000001_ABST
Patent Text Reader

Abstract

A method for stimulating the drive lines of a touch sensor in a touchscreen across multiple measurement frames by obtaining a codeword scrambled based in part on a code division multiplexing (CDM) pattern, generating a drive signal encoded with the scrambled codeword, and utilizing a different pattern of the scrambled codeword for each of the multiple measurement frames.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] (Cross - Reference to Related Applications) This application claims the benefit of the filing date of U.S. Provisional Patent Application No. 63 / 490,429, filed on March 15, 2023, "Protecting from Touch Screen Overlay Attack," under 35 U.S.C. § 119(e), the content and disclosure of which are hereby incorporated by reference in their entirety.

Background Art

[0002] Capacitive touch sensors are used in a variety of operating situations, including, for example, but not limited to, touch - screen terminals including point - of - sale (PoS) terminals. Touch - screen terminals enable the input of confidential or personal information such as, but not limited to, payment card information, personal identification numbers (PINs), passwords, etc. for transaction processing. PoS terminals are particularly vulnerable to external attacks that attempt to intercept the input of personal or confidential information and steal confidential information or other personal user information. PCI security certification demonstrates that a touch - screen terminal includes mechanisms to reduce or eliminate the vulnerability of the touch - screen terminal to external attacks. To facilitate easy identification of any particular element or action, the most significant digit of a reference number refers to the figure number in which the element was first introduced.

Brief Description of the Drawings

[0003] [Figure 1] A schematic diagram depicting a touch - screen terminal and a touch - screen overlay according to one or more embodiments. [Figure 2] A schematic diagram of a touch - sensor system according to one or more embodiments. [Figure 3] A block diagram depicting an apparatus for generating an encoded drive signal using a scrambled code according to one or more embodiments. [Figure 4] This is a block diagram illustrating the restoration of the touchscreen position associated with a touch event by one or more embodiments. [Figure 5A] This flowchart illustrates a process for preventing overlay attacks using one or more embodiments. [Figure 5B] This flowchart illustrates a process for preventing overlay attacks using one or more embodiments. [Figure 5C] This flowchart illustrates a process for preventing overlay attacks using one or more embodiments. [Figure 5D] This flowchart illustrates a process for preventing overlay attacks using one or more embodiments. [Figure 5E] This flowchart illustrates a process for preventing overlay attacks using one or more embodiments. [Figure 5F] This flowchart illustrates a process for preventing overlay attacks using one or more embodiments. [Figure 6A] This figure illustrates the operation of applying a scrambling operation to a code division multiplexing (CDM) driven pattern to generate scrambled codewords, according to one or more embodiments. [Figure 6B] This figure illustrates the operation of applying a scrambling operation to a code division multiplexing drive pattern to generate a scrambled codeword, according to one or more embodiments. [Figure 6C] This figure illustrates the operation of applying a scrambling operation to a code division multiplexing drive pattern to generate a scrambled codeword, according to one or more embodiments. [Figure 6D] This figure illustrates the operation of applying a scrambling operation to a code division multiplexing drive pattern to generate a scrambled codeword, according to one or more embodiments. [Figure 7A]This is a graph illustrating quantized measurements of the encoded and decoded positions of touches in one or more embodiments. [Figure 7B] This is a graph illustrating quantized measurements of the encoded and decoded positions of touches in one or more embodiments. [Figure 8A] This graph illustrates the encoded drive signals associated with measurement frames, which are converted to touch detection based on incorrect code partitioning, in one or more embodiments. [Figure 8B] This graph illustrates the encoded drive signals associated with measurement frames, which are converted to touch detection based on incorrect code partitioning, in one or more embodiments. [Figure 9] This is a diagram of a system according to one or more embodiments of the present disclosure. [Modes for carrying out the invention]

[0004] The following detailed description refers to the accompanying drawings, which form part of this specification and illustrate specific examples of embodiments in which the disclosure may be carried out. These embodiments are described in sufficient detail to enable those skilled in the art to carry out the disclosure. However, other embodiments may be utilized, and the structure, materials, and processes may be modified without departing from the scope of the disclosure.

[0005] The figures presented herein are not intended to be actual diagrams of any particular method, system, device, or structure, but are merely idealized representations used to illustrate embodiments of the disclosure. The figures presented herein are not necessarily drawn to scale. Similar structures or components in various drawings may retain the same or similar numbering for the convenience of the reader. However, similarity in numbering does not necessarily mean that the structures or components are identical in size, composition, configuration, or any other characteristics.

[0006] The following description may include examples to help enable those skilled in the art to carry out the disclosed embodiments. The use of terms such as “exemplary,” “as an example,” and “for example” means that the relevant descriptions are descriptive, and the scope of this disclosure is intended to include examples and legal equivalents, and the use of such terms is not intended to limit the embodiments or the scope of this disclosure to any particular component, step, feature, function, etc.

[0007] It will be readily apparent that the components of the embodiments generally described herein and illustrated in the drawings can be arranged and designed in a wide variety of different configurations. Therefore, the following descriptions of various embodiments are not intended to limit the scope of this disclosure, but merely to illustrate various embodiments. While various aspects of the embodiments may be presented in the drawings, the drawings are not necessarily drawn to scale unless specifically indicated.

[0008] Furthermore, the specific implementations illustrated and described are merely examples and should not be construed as the only way to implement this disclosure unless otherwise specified herein. Elements, circuits, and functions may be shown in block diagram form to avoid obscuring this disclosure with unnecessary details. Conversely, the specific implementations illustrated and described are merely illustrative and should not be construed as the only way to implement this disclosure unless otherwise specified herein. Additionally, the block definitions and partitioning of logic between various blocks are examples of specific implementations. It will be readily apparent to those skilled in the art that this disclosure can be implemented by numerous other partitioning solutions. For the most part, details such as timing considerations are omitted, as such details are not necessary for a full understanding of this disclosure and are within the capabilities of those skilled in the art.

[0009] Those skilled in the art will understand that information and signals can be represented using any of a variety of different techniques and methods. Some drawings may illustrate a signal as a single signal for clarity in presentation and explanation. Those skilled in the art will understand that a signal can represent a bus of signals, which can have various bit widths, and that this disclosure can be implemented with any number of data signals, including a single data signal.

[0010] Various exemplary logic blocks, modules, and circuits described in relation to embodiments disclosed herein may be implemented using general-purpose processors, dedicated processors, digital signal processors (DSPs), integrated circuits (ICs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs) or other programmable logic devices, separate gate or transistor logic, separate hardware components, or any combination thereof designed to perform the functions described herein. A general-purpose processor (which may also be referred to herein as a host processor or simply a host) may be a microprocessor, but instead, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices such as a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors working in conjunction with a DSP core, or any other such configuration. A general-purpose computer including a processor is considered a dedicated computer, and the general-purpose computer is configured to execute computing instructions (e.g., software code) related to embodiments of this disclosure.

[0011] Embodiments may be described in relation to processes referred to as flowcharts, flow diagrams, structural diagrams, or block diagrams. The terms action, act, and block are used interchangeably to refer to individual processes within a flow diagram. While a flowchart may describe actions as sequential processes, many of these actions can be performed in different sequences, concurrently, or substantially simultaneously. In addition, the order of actions can be rearranged. Processes may, but are not limited to, methods, threads, functions, procedures, subroutines, and subprograms. Furthermore, methods disclosed herein may be implemented in hardware, software, or both. If implemented in software, functions may be stored or transmitted as one or more instructions or codes in a computer-readable medium. Computer-readable medium includes both computer storage media and communication media, including any medium that facilitates the transfer of computer programs from one location to another.

[0012] Any reference to elements in this specification using notations such as "first," "second," etc., does not limit the number or order of those elements unless such limitations are expressly stated. Rather, these notations may be used in this specification as a convenient way to distinguish two or more elements or examples of elements. Thus, references to the first and second elements do not mean that only two elements may be used, or that the first element must precede the second element in any way. In addition, unless otherwise specified, a set of elements may include one or more elements.

[0013] As used herein, the term "substantially" when referring to a given parameter, characteristic, or condition means and includes that the given parameter, characteristic, or condition meets and includes minor variations, such as within the range of acceptable manufacturing tolerances, for example. As an example, depending on the particular parameter, characteristic, or condition being substantially met, the parameter, characteristic, or condition may be met at least 90%, at least 95%, or even at least 99%.

[0014] As used herein, without limitation, any relative terms such as "over", "under", "on", "underlying", "upper", "lower", etc. are used for clarity and convenience in understanding the present disclosure and the accompanying drawings and do not imply or depend on any particular preference, orientation, or order, except where the context clearly indicates otherwise.

[0015] In this description, the term "coupled" and its derivatives can be used to indicate that two elements cooperate or interact with each other. When an element is described as being "coupled" to another element, the element can be in direct physical or electrical contact, or there can be intervening elements or layers present. In contrast, when an element is described as being "directly coupled" to another element, there are no intervening elements or layers. The term "connected" can be used interchangeably with the term "coupled" herein and has the same meaning unless otherwise explicitly indicated or the context does not indicate otherwise to those skilled in the art.

[0016] In an overlay attack, a malicious layer or "overlay" is placed on top of a legitimate touchscreen display to steal sensitive information, such as passwords, PINs, or payment card numbers, but is not limited to these. A typical overlay may be a touch-sensitive surface that is difficult to distinguish from the original touchscreen where the user entered the information. The overlay surface copies the information entered by the user by determining the location of each touch entered on the touchscreen in response to driving information provided by the legitimate touchscreen driver. The location information is then processed by a remote attacker's touch controller that decrypts the location information to extract the sensitive information.

[0017] In one or more examples, touchscreen terminals, including but not limited to PoS terminal touchscreens, use scrambled code division multiplexing (CDM) technology to protect against touchscreen terminal attacks using a touchscreen overlay. A touchscreen controller using scrambled CDM technology repeatedly and sequentially drives a set of signals simultaneously on multiple parallel transmission lines of the touchscreen, using a scrambled frame array pattern of encoded orthogonal signals. The orthogonal code pattern can be input as a scrambled encoded pattern. A code pattern is orthogonal to another code pattern when it has zero cross-correlation, meaning that the sum of the results of multiplying the code pattern bit by bit over a period of time is equal to zero. In one or more examples, the orthogonal code can take the form of a Walsh code derived from an Hadamard matrix, or the form of a Barker code used in the IEEE 802.11 standard. When a touch input or touch event is received or detected, the exact location of the touch event can be decoded using a specific scrambled array of the code pattern applied at the time the touch was detected. In embodiments of this disclosure, touch input may be synonymous with, and is not limited to, a touch event or touch, but refers to the application of pressure to the surface of a touchscreen by a human object such as a finger, or by an inanimate object such as a stylus, but is not limited to a touch. The touchscreen overlay allows an attacker to detect touch input. However, the attacker cannot access the scrambled array of code patterns necessary to decode the precise location of the touch input. Therefore, it becomes extremely difficult to intercept the location of the touch and determine the information being entered based on the touch event.

[0018] Referring to Figure 1, schematic Figure 100 depicts a touchscreen terminal 102 and a touchscreen overlay 110 according to one or more embodiments. The touchscreen 120 may consist of an array of one or more layers (not shown) which may include a transparent layer, a conductive layer, an electrode layer, a sensor layer, and a drive layer. The touchscreen 120 may also include a display layer or keypad (not shown) visible to the user for user input. As shown, the touchscreen 120 includes an M × N touch sensor pattern including sets of M drive lines 154-159 arranged in rows and sets of N detection lines 171-174 arranged in columns, where M and N represent any positive integers, and in some embodiments, M may be equal to N. In some embodiments, the sets of drive lines and sets of detection lines may be integrated into one or more layers. Figure 1 includes a touch sensor pattern with detection lines 171-174 and drive lines 154-159, but it should be understood that the touchscreen 120 may include any number of detection lines and drive lines. As shown in the figure, the touchscreen overlay 110 may have a set of N detection lines 131-134 equal to the N detection lines of the touchscreen 120. Note that the arrangement of the sets of drive lines and the sets of detection lines is in a matrix form, but other arrangements are also possible. The touchscreen terminal 102 may include a touch controller 150, which may be implemented by a microcontroller, without limitation. The touch controller 150 may output a set of drive signals 161-166 onto the drive lines 154-159 of the touchscreen 120 and process detection signals 122 received from the detection lines 123-126 of the touchscreen 120.

[0019] The touchscreen overlay 110 may be invisible to the naked eye and may be located within a separate transparent layer 130 from the touchscreen 120. The touchscreen overlay 110 may be positioned directly above the display layer (not shown) of the touchscreen terminal 102 such that the detection lines 131-134 of the touchscreen overlay 110 are aligned directly above the corresponding detection lines 171-174 of the touchscreen 120 of the touchscreen terminal 102. The display layer may contain symbols or characters of a user interface that require touch input by the user.

[0020] The touchscreen overlay 110 can stimulate drive lines 154-159 in synchronization with drive signals 161-166 generated by the touch controller 150. Touch inputs that affect the capacitance between one or more of the drive lines 154-159 and one or more of the detection lines 123-126 also affect the capacitance between one or more of the drive lines 154-159 of the touchscreen overlay 110 and one or more of the corresponding detection lines 131-134. Thus, the output detection signal pattern of the touchscreen 120 can be copied by the output detection signals of the touchscreen overlay 110 and routed to a microcontroller such as an overlay touch controller 140, which may be located remotely from the touchscreen terminal 102 and the touch controller 150.

[0021] During the intended operation, the touch controller 150 may simultaneously and repeatedly stimulate drive signals 161-166 on drive lines 154-159. The frequency of the repeated repetitions of the stimulation signals 152 provided to drive lines 154-159 can be set by the touch controller 150. Touch events to the touchscreen 120 may also be detected by a series of detection lines 171-174, with detections 123-126 output to the touch controller 150 for processing. Similarly, touch events to the touchscreen 120 may also be simultaneously detected by detection lines 131-134 of the touchscreen overlay 110 based on the stimulation signals to the drive lines 154-159 of the touchscreen 120. The output detection signal 142 of the touchscreen overlay 110 may be transmitted via detection lines 143-146 to a controller separate from the touch controller 150, such as an overlay touch controller 140, for processing. The overlay touch controller 140 may be located at a distance from the touch controller 150.

[0022] The touch controller 150 uses code division multiplexing (CDM) to simultaneously drive separate orthogonal patterns to multiple drive lines. The drive pattern applied to each drive line contains pulses of the same or opposite polarity (e.g., 0 to 1 or 0 to -1, but not limited to these). The various drive patterns applied to the various drive lines are different from each other and orthogonal to each other.

[0023] Figure 2 is a schematic diagram of a touch sensor system 200 according to one or more embodiments. The touch sensor system 200 may be part of an invisible display surface of a touchscreen that detects and processes touch events via a touch sensor 212. The drive lines 221-227 of the touch sensor 212 may be stimulated by different encoded drive patterns 250 in multiple measurement frames. The encoded drive patterns 250 may be in the form of voltage pulses. In the examples of this disclosure, drive pattern and pulse are synonymous in meaning. The encoded drive pattern or encoded drive pattern or pulse 250 may be derived from a code generator (codegen) 202 which may output a codeword 204 corresponding to each measurement frame. A converter 206 may take the codeword 204 as input and apply a scrambler operator to the codeword 204 to generate a scrambled codeword 208. Several scrambled codewords may be stored as part of a codeword set 210, where each codeword 208 in the codeword set 210 may correspond to a respective measurement frame. It should be noted that the components of the touch sensor system 200 are merely illustrative and non-exclusive, and other components and modifications may be possible.

[0024] The touch sensor 212 includes rows of transmitter electrodes or drive lines 220 and columns of receiving electrodes or detection lines 230, which can form a grid structure on one or more layers of the mutual capacitance sensing system. Figure 2 illustrates a grid structure, but it should be understood that any number of different types of structures or shapes can be formed by the drive lines 220 and detection lines 230.

[0025] The CDM technique in Figure 2 utilizes an orthogonal drive pattern to drive multiple drive lines 220 simultaneously. A signal generator (not shown) may generate a signal to be input to a code generator 202. The code generator 202 may apply or spread a code across each input signal for each of the drive lines 220 to generate a stream of encoded pulses or a chip sequence. The chip sequences together form a codeword, and in a set of codewords, each codeword is orthogonal to the other codewords. In one non-limiting example, a chip sequence may represent 1 chip as a positive voltage +1V and 0 chip as a negative voltage -1V. Each chip sequence may be input to a converter 206 that scrambles the chip sequences in a randomized manner while maintaining orthogonality between the chip sequences. Each scrambled chip sequence of the codeword set 210 may then be output to simultaneously drive the drive lines 220 of the touch sensor 212. In one or more exemplary examples, each chip sequence of each codeword is transmitted simultaneously at a specific frequency during a consecutive time interval. In CDM, each frame of the codeword set 210 represents an encoded pulse 241-247 of negative or positive polarity.

[0026] Each of the drive lines 220 has an iterative time interval, i.e., a time frame T. SDuring 240, it is stimulated by one of the individual encoded pulses 241–247. Each of the encoded pulses 241–247 is orthogonal to all other encoded pulses 241–247. In general, two codes, or encoded pulses, are “orthogonal” if there is zero cross-correlation between the codes or encoded pulses. When two orthogonal codes or encoded pulses are multiplied together and integrated over a given time interval, the result is zero. Encoded orthogonal pulses transmitted simultaneously should not interfere with each other, or interfere to a negligible degree. Each of the encoded pulses 241–247 may represent a set of pulses, some of which, optionally, have a different polarity from other pulses applied to the drive line 220. In one or more embodiments, the pattern of encoded pulses may be called a codeword. The codeword can be applied to each of the drive lines 221-227 of the drive line 220, and the drive pattern applied to each of the drive lines 221-227 is different from and orthogonal to the overall pattern of each encoded pulse applied to the other drive lines.

[0027] The touch sensor 212 may include one or more sensing areas on its surface, such as a sensing area 236. The sensing area 236 may be located at any number of different positional coordinates on the surface of the touch sensor 212 in order to detect and measure touch input on the sensing line 230. The sensing area 236 may receive encoded pulses 241-247 from the transmitter drive lines 221-227. Measurements corresponding to touch events on the sensing area 236 are measured on the receiver lines 232-235.

[0028] Next, referring to Figure 3, a block diagram illustrating a device 300 for generating scrambled code according to one or more embodiments is illustrated.

[0029] In this embodiment, the device 300 may include a code generator 310, a converter 320, and a touch sensor 360. The converter 320 may include a random selection generator 330, one or more scrambler operators 340, and a scrambler 350. The scrambler operators may include one or more of the following: row rearrangement 341, column rearrangement 342, inversion of a codeword row 343 ("row inversion 343"), inversion of a codeword column 344 ("column inversion 344"), and insertion of an invalid code pattern 345. An invalid code pattern 345 ("invalid codeword 345") may be a codeword added to a frame that is not orthogonal to other codewords in the frame. It should be understood that the components of the device 300 are merely illustrative and non-limiting, and other components and modifications may be possible.

[0030] In Figure 3, the converter 320 may select from one or more scrambler operators 340 in a randomized manner. The randomized manner may be determined by or based on the output of the random selection generator 330. The random selection generator 330 may generate a selected value 331 via a circuit associated with a true random number generator or a pseudo-random number generator. With any suitable source of randomness for a given operating condition or application, the random selection generator 330 may generate a selected value 331 using a random number generator or a pseudo-random number generator. Non-limiting examples of sources of randomness include, but are not limited to, analog noise sources such as resistors and amplifiers to generate an amplitude sufficient to drive the analog-to-digital converter, digital noise sources such as one or more variable or fixed-frequency ring oscillators, or a combination thereof.

[0031] The selection value 331 may be used to select from one or more scrambler operators 340. The scrambler operators 346 may be selected from one or more scrambler operators 340, which may, but are not limited to, row rearrangement 341, column rearrangement 342, row inversion 343, column inversion 344, and one or more invalid code patterns 345. The scrambler operators 340 may output the selected scrambler operators 340 to the scrambler 350, indicating a selection of one or more of the scrambler operators 346 for use by the scrambler 350. The selected scrambler operators 346 may be used by the scrambler 350 when scrambling the code word frame provided by the code generator 310.

[0032] In one or more non-limiting examples, the code generator 310 may generate a frame or matrix containing a sequence of codewords that may represent encoded pulse patterns for stimulating the drive lines of the touch sensor 360. Each encoded pulse pattern codeword may be orthogonal to other encoded pulse pattern codewords. In one or more embodiments, each symbol of a codeword may be considered a codeword chip. A "1" chip may be +1V to indicate a pulse with positive polarity, and a "0" chip may be represented by -1V to indicate a pulse with negative polarity. In one or more embodiments, a two-dimensional (2D) array of chip values ​​may be formed, where the number of chip values ​​in a row of the array corresponds to the number of pulses per measurement frame. A row corresponds to each drive line of the touch sensor 360. In this example, each chip value in a row corresponds to each encoded pulse driven on each drive line of the touch sensor 360.

[0033] The scrambler 350 receives time frame T from the code generator 310. SThe code generator 350 may receive a codeword 312 for each encoded pulse within a given time frame, such as encoded pulses 241-247 within 240. The codeword 312 may then be scrambled within a given time frame according to a selected scrambler operator 346, and may generate a scrambled code chip or sequence of codewords 354 in at least partially in response to the codeword 312 received from the code generator 310 within a time frame. The scrambler 350 may perform one or more scrambling operations based on a scrambler operator 346 selected from one or more scrambler operators 340. The scrambled codeword 354 that may be obtained based on the selected scrambler operator 346 may differ from the codeword 312 input to the scrambler 350. In one or more examples, the scrambler operator 346 may represent multiple scrambler operators used in the operation of the scrambler 350. The scrambler 350 may generate and output a unique or different scrambled codeword 354 for each measurement frame based on one or more defined scrambler operators 340. In one or more embodiments, each scrambled codeword in each time frame may be selected so that they are orthogonal to each other scrambled codeword in each time frame.

[0034] A “codeword” represents a pattern of symbols or chip sequence used to encode drive signals, such as 241-247 in Figure 2, which are simultaneously applied to each drive line 220, such as the drive lines 221-227 of the touch sensor 360, during each measurement frame. Non-limiting embodiments of the scrambler operator may perform one or more operations on a codeword for row rearrangement, column rearrangement, row inversion, column inversion, and insertion of invalid code patterns, as described below without limitation. In one or more embodiments of the present disclosure, the row rearrangement operation and the column rearrangement operation may be considered equivalent to a shuffle operation. Defined scrambler operators for row rearrangement, column rearrangement, row inversion, and column inversion may perform operations that maintain the orthogonality of the codeword set. A scrambler operator for inserting invalid code patterns may insert code patterns into the codeword set that are non-orthogonal to other code patterns.

[0035] Figure 4 is a block diagram illustrating the restoration of a touchscreen position associated with a touch event in one or more embodiments. In this embodiment, diagram 400 may include a codeword set 420 for a converter 410, a touch controller 430, and an original touch symbol 460. The touch controller 430 may also include a touch sensor 440 and a decoder 450. It should be understood that the components of diagram 400 are merely illustrative and non-limiting, and other components and modifications may be possible.

[0036] Operationally, the touch controller 430 may receive one or more of the codeword sets 420 used to encode multiple frames of drive signals that have been scrambled by one or more scrambler operators and are driven to the drive lines of the touch sensor 440. The touch controller 430 may also receive measurement signals from the detection lines of the touch sensor 440. The touch controller 430 may process the measurement signals from the detection lines to determine the presence and location of a touch event. Touch processing includes, in a non-limiting manner, a process initiated by the touch controller 430 to identify a touch event or the location coordinates of a touch event. A cover layer or surface (not shown) may be positioned to cover a touchscreen such as the touch sensor 212, and touches to areas of the touchscreen such as the detection area 236 may include symbols such as numbers or letters that may be relevant to a particular touchscreen application. The location coordinates of a touch event may correspond to a specific symbol within a particular detection area such as the detection area 236 illustrated in Figure 2. Processing by the touch controller 430 decodes the location coordinates of the touch event. The touch coordinates may correspond to a touch symbol 460.

[0037] The decoder 450 may receive a scrambled codeword 425 from the converter 410, which is used to encode the drive signal of the touch sensor 440. The decoder 450 may use the scrambled codeword 425 associated with a given measurement frame to decode a measured detection signal for a given measurement frame, such as an encoded detection signal, such as encoded detection lines 124-126. As described above, different scrambled codewords 425 may be generated for each frame.

[0038] As a result, an overlay touch controller, such as the one illustrated by the overlay touch controller 140 in Figure 1, cannot decode the detection signal measured by the touch sensor 440 without accessing the scrambled codeword 425. The scrambled codeword 425 generated by the converter 410 makes it more difficult for an attacker to learn or guess the decoded pattern or touch symbol 460.

[0039] Figures 5A to 5F are flowcharts illustrating a process for preventing an overlay attack in one or more embodiments. The exemplary processes 500A to 500F illustrate a specific sequence of operations, but the sequence may be modified without departing from the scope of this disclosure. For example, some of the operations described may be performed in parallel or in different sequences that do not significantly affect the functionality of the process. In other embodiments, various components of an exemplary device or system implementing the processes 500A to 500F may perform functions substantially simultaneously or in specific sequences.

[0040] In one or more non-limiting embodiments, Figure 5A discloses a process 500A illustrating an operation for generating a drive signal. In block 502, the process obtains a set of scrambled codewords. The set of scrambled codewords may be chip sequences, where +1 represents a particular chip sequence and 0 represents the negation of a chip sequence that represents -1 or +1.

[0041] In block 504, the drive signals can be encoded by a set of scrambled codewords. In particular, since the acquired scrambled codewords are orthogonal to each other, the drive signals are orthogonal to each other, and each drive signal can drive a separate drive line of the touchscreen. In block 506, each of the drive lines of the touchscreen is driven between each measurement frame of a plurality of measurement frames using a drive signal encoded with a scrambled codeword. Each measurement frame of the plurality of measurement frames of the encoded drive signal can stimulate all drive lines simultaneously over a period of time.

[0042] Figure 5B is a flowchart illustrating process 500B for generating scrambled codewords. In block 508, the operation selects one or more scrambling operations from a set of scrambling operations, at least in part on a randomized selection process. The scrambling operations may be based on a randomized selection process. The randomized selection process may optionally include, in block 510, obtaining selection values ​​based on a random number generator or pseudo-random number generator. In optional block 512, the selection of one or more scrambling operations from a given set of scrambling operations may be determined at least in part on the obtained random values. Note that the scrambling operations used may preserve the orthogonality of the codeword sequence. In block 514, the set of scrambling operators may optionally be selected from one or more scrambling operators, including shuffling, reversing codeword rows, reversing codeword columns, or inserting invalid patterns. In one or more embodiments of the present disclosure, the shuffling operation may be an operation to rearrange the positions of each row or column of the codeword. In block 516, the scrambled codeword is generated according to one or more selected scrambling operators to generate the scrambled codeword.

[0043] In one or more non-limiting embodiments, Figure 5C is a flowchart illustrating a process 500C for stimulating the drive lines of a touchscreen. The process may begin in block 518, where a first codeword and a second codeword may be generated according to one or more embodiments. While the terms first and second codewords are mentioned, it should be noted that three or more codewords may be generated if each codeword is orthogonal to the others and each codeword has its own dedicated drive line. It should also be noted that the terms first and second are not limiting in terms of the order of occurrence. In block 520, a first set of codewords may be scrambled according to a scrambler operator which may be selected to correspond to the first set of codewords. In block 522, a second set of codewords may be scrambled based on the application of a different scrambler operator which may be different from the scrambler operator applied to the first set of codewords. In block 524, a first drive pattern of a first frame may be encoded using the scrambled first set of codewords. In block 526, the second drive pattern of the second frame may be encoded using a scrambled second codeword set.

[0044] In block 528, the measurement time frame T is illustrated in Figure 2. S An encoded drive pattern or encoded pulse of a measurement frame, such as 240, can be driven to stimulate or excite the drive line of a touch sensor. In one or more embodiments, the drive line of the touch sensor may be horizontal. Measurement frames containing encoded pulses may be driven iteratively on the drive line, such that one frame follows another. In block 530, according to one or more non-limiting embodiments, the drive line of the touch sensor may be stimulated by a second measurement frame that utilizes a second set of encoded pulses or encoded drive signals.

[0045] Figure 5D is a flowchart illustrating the process 500D for selecting one or more scrambling operators. In one or more non-limiting embodiments, in block 532, a first scrambling operator may be selected from a set of scrambling operators. As illustrated in Figure 3, the scrambling operators 340 may include, but are not limiting, row rearrangement 341, column rearrangement 342, row inversion 343, column inversion 344, and insertion of invalid code patterns 345. One or more scrambling operators 340 may be applied to a set of orthogonal codewords in a first frame. The scrambling operators may be applied simultaneously to all transmitter lines of the touch sensor per frame, and each scrambled codeword maintains its orthogonality within a set of codewords. In a non-limiting embodiment, in block 534, a second scrambling operator may be selected from a set of scrambling operators to be applied to a set of orthogonal codewords in a second frame. It should be noted that the terms "first" and "second" are non-restrictive and are used to refer to unique or distinct entities in place of a specific order or sequence.

[0046] Optionally, in block 536, a set of scrambler operators may result in scrambling operations including shuffling, reversing codeword rows, reversing codeword columns, or inserting invalid patterns. Furthermore, optionally, in block 538, a scrambling operation including shuffling may include one or more rearrangement of codeword rows and rearrangement of codeword columns. In one or more embodiments, rearrangement of rows or columns may include reversing the order of chips in a row or column chip sequence. In other embodiments, rearrangement of rows or columns may include the step of exchanging or swapping the position of a first row in a frame with the position of a second row, and similarly, the step of exchanging or swapping the position of a first column in a frame with the position of a second column. Optionally, in block 540, a scrambling operation that reverses codeword rows includes one or more reversals of some or all of a codeword row, or the reversal of some symbols or all of symbols. Furthermore, optionally, in block 542, a scrambling operation including the reversal of a codeword sequence includes one or more reversals of some or all of the symbols in the drive sequence, or some or all of the codewords.

[0047] Figure 5E is a flowchart illustrating a process 500E for restoring an illustrated original touch symbol in one or more embodiments. In block 544, an encoded detection signal is received from a touch sensor. In one or more non-limiting embodiments, detection lines are aligned vertically within an electrode layer perpendicular to the drive lines. In block 546, the received encoded detection signal is at least partially touch-processed on a scrambled codeword so that a touch event or the position coordinates of a touch event can be identified.

[0048] Figure 5F is a flowchart illustrating process 500F illustrating the process of stimulating a drive line in one or more embodiments. In block 548, the drive line of the touch sensor is stimulated using a first codeword during a first measurement frame of a plurality of measurement frames. In block 550, the drive line of the touch sensor is stimulated using a second codeword during a second measurement frame of a plurality of measurement frames. It should be recognized that the terms “first” and “second” are used non-restrictively to distinguish one entity from another. Any number of non-restrictive numerical terms, e.g., “third,” “fourth,” etc., may be used according to one or more embodiments that may have multiple drive lines corresponding to one or more measurement frames. Optionally, in block 552, it should be noted that the touch sensor may form part of a capacitive touch sensor system of a touchscreen. In block 554, it should be recognized that the pattern of the second codeword is different from the pattern of the first codeword. Also, in block 556, it should be recognized that the second measurement frame is different from the first measurement frame.

[0049] Figures 6A–6D illustrate the operation of applying scrambling operations to a CDM-driven pattern to generate scrambled codewords, according to one or more embodiments. Embodiments 600A–600D illustrate one or more sequences of the scrambling process, but the scrambling process and operations can be modified without departing from the scope of this disclosure. For example, some of the operations described may be performed in parallel or in different sequences that do not significantly affect the functionality of the process. In other embodiments, various code patterns or scrambling operators of an exemplary device or system implementing the processes of 600A–600D may perform their functions substantially simultaneously or in specific sequences. As detailed in Figure 3, scrambler operators may include, but are not limited to, row rearrangement, column rearrangement, row inversion, column inversion, and insertion of invalid code patterns.

[0050] In one or more non-limiting embodiments, Figure 6A is a schematic diagram 600A illustrating the generation of a CDM-based encoded or scrambled array. A codeword set 635 represents a CDM codeword set. A scrambler operator 640 is applied to one or more codeword sequences from codeword set 635 to generate a scrambled codeword set 645. The input codeword set 635 is represented by +1V and -1V symbols in the case of an N-CDM input touch sensor, where N is a positive integer representing the number of channels. A +1V symbol may represent one chip, and a -1V symbol may represent zero chips. In one non-limiting embodiment, N may be equal to 12. It should be noted that the number of rows 630 and columns 620 are arbitrary, and a grid structure may not be necessary.

[0051] In schematic diagram 600A, the scrambler operator row inversion 650 is selected from several scrambler operators 640. In a non-limiting embodiment, the scrambler operator row inversion 650 may be applied to transform several chip sequences in codeword set 635 to generate a scrambled codeword set 645. Table 1 illustrates the operation of row inversion 650 on codeword sequence 610 of codeword set 635 to generate codeword sequence 622 of the scrambled codeword set 645.

[0052] [Table 1]

[0053] The invert 650 in the scrambler operator row may operate to scramble a codeword sequence by inverting the polarity of each bit in the chip sequence. A similar conversion is illustrated in Table 2, where the invert 650 in the scrambler operator row may convert codeword sequence 612 of codeword set 635 to codeword sequence 624 of scrambled codeword set 645.

[0054] [Table 2]

[0055] Additional conversion examples using the inversion of the scrambler operator line 650 are illustrated in Tables 3 and 4. Table 3 illustrates the conversion of codeword sequence 614 to scrambled codeword sequence 626.

[0056] [Table 3]

[0057] Table 4 illustrates the conversion of codeword sequence 616 to scrambled codeword sequence 628.

[0058] [Table 4]

[0059] Figure 6B is a schematic diagram 600B illustrating a transformation operation in which one of the scrambler operators 640 is applied to codeword set 665 to generate a scrambled codeword set 675. In one or more non-limiting embodiments, 600B applies a rearrangement 651 of a selected scrambler operator row from scrambler operator 640. The rearrangement operator rearranges codeword sequence 632 and codeword sequence 634 of codeword set 665 by swapping the positions of codeword sequence 632 and codeword sequence 634 in codeword set 665 to generate a scrambled codeword set 675.

[0060] As illustrated in the non-limiting embodiment of 600B, codeword sequence 632 is illustrated in the first row of codeword set 665.

[0061] [Table 5]

[0062] Codeword sequence 634 is illustrated in the last line of codeword set 665.

[0063] [Table 6]

[0064] In the scrambled codeword set 675, the position of codeword sequence 632 is moved to the last row as indicated by codeword sequence 638, and the position of codeword sequence 634 is moved to the first row as indicated by codeword sequence 636. The scrambler operator row rearrangement 651 operates to swap row positions without changing the bits of the chip sequence.

[0065] Figure 6C is a schematic diagram 600C illustrating the conversion operation in which a scrambler operator 640 is applied to a codeword set 680 to generate a scrambled codeword set 685. In one or more non-limiting embodiments, the rearrangement of the scrambler operator sequence 652 may operate to swap the positions of one or more codeword sequences in the sequence of the codeword set without changing the bits in the sequence of the chip sequence. As illustrated in the non-limiting embodiment of 600C, the codeword set 680 includes codeword sequences 642 and 644, as illustrated in Tables 5 and 6, respectively.

[0066] [Table 7]

[0067] The rearrangement of the scrambler operator column 652 swaps the column's codeword sequence 642 with the column's codeword sequence 644 in codeword set 680 to generate the scrambled codeword set 685. In the scrambled codeword set 685, the codeword sequence 644 in codeword set 680 appears as codeword 646 in the scrambled codeword set 685, in the position preceding codeword sequence 642. Similarly, the codeword sequence 642 in codeword set 680 appears as codeword 648 in the scrambled codeword set 685, in the position preceding codeword sequence 644.

[0068] Figure 6D is a schematic diagram 600D illustrating a transformation in which one or more scrambler operators 640 are applied to a codeword set 690 in order to generate a scrambled codeword set 695. In one or more non-limiting embodiments, the process of 600D applies rearrangement 652 and inversion 653 of the scrambler operator sequence in order to generate a scrambled codeword set 695.

[0069] Column rearrangement 652 may rearrange the position of the column containing codeword sequence 672 in codeword set 690 so that it appears as codeword 678 column in scrambled codeword set 695. Column inversion 653 may be applied to invert the polarity of each chip in the chip sequence column of codeword sequence 672 and codeword 674. In short, the position of codeword 674 in codeword set 690 is swapped with the position of codeword 674 in codeword set 690, and the bit polarity of each codeword is inverted to generate codewords 676 and 678 in scrambled codeword set 695.

[0070] Figures 7A and 7B are graphs illustrating quantized measurements of a decoded touch-encoded event from one or more embodiments. Figure 7A is graph 700A, which may include quantized measurements from measurement frame 705.

[0071] The measurement frame 705 represents the signal intensity across a row of touch surfaces when a touch is detected, in response to the drive signal of the measurement frame 705. In one non-limiting embodiment, the X-axis 710 having Y0-Y34 and the Z-axis 712 having C0-C16 represent the position coordinates of a touchscreen terminal, as illustrated in Figure 102. Y0-Y34 represent the encoded detection lines, and C0-C16 represent the drive lines. The Y-axis 711 shows signal intensity information measured in amplitude. The set of peaks in the measurement frame 705 represents the position information of the touch event, encoded based on a scrambler operator. The touch controller 730 takes the encoded detection signal 713 as input and generates an output 732 based on one or more codeword sets 720 used to encode the drive lines of the touch terminal. The position of the touch event may be used to determine the original symbol or multiple symbols corresponding to the position of the touch event. The encoded detection signal of measurement frame 705 requires information from codeword set 720 to determine the correct location of the touch event. The touch controller 730 may use a codeword set output 722 selected from the codeword set 720 used to encode the drive pattern to decode the encoded detection signal 713. Invalid patterns that may be included in codeword set 720 are discarded by the touch controller 730.

[0072] Figure 7B is a graph 700B illustrating quantized measurements of touch-decoded locations in one or more embodiments. Peak 750 in the quantized measurement frame 740 corresponds to a correctly decoded location processed by the touch controller 730. A correctly decoded location results in a single peak with high amplitude, such as peak 750. Peak 750 may correspond to a touch event and may correlate to a symbol on the display layer.

[0073] Figures 8A and 8B are graphs illustrating quantized measurements of a decoded touch-encoded event from one or more embodiments. Figure 8A is graph 800A, which contains the quantized measurements of measurement frame 805.

[0074] Similar to 700A in Graph Figure 7A, the encoded detection signal requires scrambled codeword information to accurately determine the location of the touch event. The touch controller 830 may encode the detection signal using the same codeword set provided by the codeword set 820 in order to decode the encoded detection signal.

[0075] The measurement frame 805 represents the signal intensity across a row of touch surfaces when a touch is detected, in response to the drive signal of the measurement frame 805. In one non-limiting embodiment, the X-axis 810 having Y0-Y34 and the Z-axis 812 having C0-C16 represent the position coordinates of a touchscreen terminal, as illustrated in Figure 102. Y0-Y34 represent the encoded detection lines, and C0-C16 represent the drive lines. The Y-axis 811 shows signal intensity information measured in amplitude. The set of peaks in the measurement frame 805 represents the position information of the touch event, encoded based on a scrambler operator. The touch controller 830 takes the encoded detection signal as input 813 and generates an output 832 based on one or more codeword sets 820 used to encode the drive lines of the touch terminal. The position of the touch event may be used to determine the original symbol or multiple symbols corresponding to the position of the touch event. The encoded detection signal of measurement frame 805 requires information from codeword set 820 to determine the correct location of the touch event. The touch controller 830 may use a codeword set output 822 selected from codeword set 820, which was used to encode the drive pattern, to decode the encoded detection signal 813. Invalid patterns that may be included in codeword set 820 are discarded by the touch controller 830.

[0076] Figure 8B is a graph illustrating quantized measurements of touch-decoded locations in one or more embodiments. A correctly decoded location yields a single peak with a high amplitude, such as peak 750 in Figure 7B. However, multiple peaks 850 in the quantized measurement frame 840 indicate that an incorrect codeword may have been used to decode the encoded detection signal, and therefore a single peak cannot be obtained. Without the original scrambled codeword used to encode the detection signal, decoding the encoded touch information can be difficult. The location of a touch event may not be identifiable by an attacker who does not possess the original codeword used to encode the detection signal.

[0077] For example, but not limited to, functional elements of the embodiments disclosed herein, including functions, operations, actions, processes, or methods, can be implemented in any suitable hardware, software, firmware, or combination thereof, as will be understood by those skilled in the art.

[0078] Figure 9 is a diagram of a system according to one or more embodiments of the present disclosure. Figure 9 illustrates non-limiting examples of implementations of the functional elements disclosed herein. In some embodiments, some or all of the functional elements disclosed herein may be performed by hardware specifically configured to perform the functional elements.

[0079] In one or more embodiments, a diagram of system 900 may be used to implement various functions, operations, actions, processes, or methods disclosed herein. System 900 includes one or more data storage devices, one or more processors 902 operably coupled to a storage device 904. The storage device 904 includes machine-executable code 906 stored therein, and the processors 902 include logic circuits 908. The machine-executable code 906 information describes functional elements that can be implemented or executed by the logic circuits 908. The logic circuits 908 can be adapted to implement or execute the functional elements described by the machine-executable code 906.

[0080] When the system 900 executes the functional elements described by the machine-executable code 906, it may be considered as dedicated hardware configured to execute the functional elements disclosed herein. In one or more embodiments, the processor 902 may be configured to execute the functional elements described by the machine-executable code 906 sequentially or simultaneously on one or more different hardware platforms, or in one or more parallel processing streams.

[0081] When implemented by the logic circuit 908 of the processor 902, the machine-executable code 906 can adapt the processor 902 to perform the operations of the embodiments disclosed herein. For example, in a non-limiting embodiment, the machine-executable code 906 may adapt the processor 902 to perform some or all of one or more operations of scrambling a codeword table and encoding drive signals using the scrambled codeword table.

[0082] The processor 902 may include a general-purpose processor, a dedicated processor, a central processing unit (CPU), a microcontroller, a programmable logic controller (PLC), a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA) or other programmable logic device, separate gate or transistor logic, separate hardware components, other programmable devices, or any combination thereof designed to perform the functions disclosed herein. A general-purpose computer including a processor is considered a dedicated computer, but a general-purpose computer may perform functional elements corresponding to machine-executable code 906, including, but not limited to, software code, firmware code, and hardware descriptions, relating to one or more embodiments of this disclosure. Note that the general-purpose processor, also called the host processor or host, may be a microprocessor. Alternatively, the processor 902 may include any conventional processor, controller, microcontroller, or state machine. The processor 902 can also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors working in conjunction with a DSP core, or any other such configuration.

[0083] In one or more embodiments, the storage device 904 includes, but is not limited to, volatile data storage devices including random-access memory (RAM), such as, but is not limited to, flash memory, hard disk drives, solid-state drives, and erasable programmable read-only memory (EPROM). In some embodiments, the processor 902 and the storage device 904 may be implemented in a single device, such as, but is not limited to, a semiconductor device, or a system on a chip (SOC). In some embodiments, the processor 902 and the storage device 904 may be implemented in separate devices.

[0084] In some embodiments, the machine-executable code 906 may include computer-readable instructions, such as, but not limited to, software code and firmware code. In a non-limiting embodiment, the computer-readable instructions may be stored in the storage device 904, accessed directly by the processor 902, and executed by the processor 902 using at least the logic circuit 908. Also in a non-limiting embodiment, the computer-readable instructions may be stored in the storage device 904, transferred to a memory device (not shown) for execution, and executed by the processor 902 using at least the logic circuit 908. Thus, in some embodiments, the logic circuit 908 may be electrically configurable.

[0085] In some embodiments, machine-executable code 906 may describe hardware circuits implemented in logic circuits 908 to perform functional elements. This hardware may be described at any of various levels of abstraction, from low-level transistor layouts to high-level description languages. At high levels of abstraction, hardware description languages ​​(HDLs), such as the IEEE standard hardware description language (HDL), may be used. In non-limiting embodiments, Verilog, SystemVerilog®, or very large-scale integration (VLSI) hardware description languages ​​(VHDL) may be used.

[0086] An HDL description can be translated into a description at any of several other levels of abstraction, as desired. As a non-limiting example, a high-level description can be translated into a logic-level description such as a register-transfer language (RTL), gate-level (GL) description, layout-level description, or mask-level description. As a non-limiting embodiment, microoperations performed by hardware logic circuits (but not limited to gates, flip-flops, registers, etc., of logic circuit 908) can be described in RTL and then translated into a GL description by a synthesis tool. A GL description can then be translated by a placement and routing tool into a layout-level description corresponding to the physical layout of an integrated circuit of programmable logic devices, individual gates or transistor logic, individual hardware components, or combinations thereof. Therefore, in some embodiments, machine-executable code 906 may include HDL, RTL, GL descriptions, mask-level descriptions, other hardware descriptions, or any combination thereof.

[0087] In one or more embodiments, the machine-executable code 906 may include a hardware description at any level of abstraction of a system (not shown), including a storage device 904 which can be configured to implement the hardware description written by the machine-executable code 906. In a non-limiting embodiment, the processor 902 may include a programmable logic device, such as a field-programmable gate array (FPGA) or a programmable logic circuit (PLC), but is not limited thereto. The logic circuit 908 may be electrically controlled to implement a circuit corresponding to the hardware description written by the machine-executable code 906. Also in a non-limiting embodiment, the logic circuit 908 may include hardwired logic manufactured by a manufacturing system (not shown) according to the hardware description of the machine-executable code 906, the manufacturing system including the storage device 904.

[0088] Regardless of whether the machine-executable code 906 contains computer-readable instructions or hardware descriptions, the logic circuit 908 may be adapted to execute the functional elements described by the machine-executable code 906. Even if the hardware description does not directly describe the functional elements, it should be recognized that the hardware description may indirectly describe the functional elements that the hardware elements described by the hardware description can perform.

[0089] When used in this disclosure, the terms “module” or “component” may refer to a specific hardware implementation configured to perform actions of a module or component and / or software object or software routine that are stored in or executed by general-purpose hardware of a computing system (e.g., computer-readable media, processing devices, etc.). In some embodiments, the different components, modules, engines, and services described in this disclosure may be implemented as objects or processes that run on a computing system (e.g., as separate threads). While some of the systems and methods described in this disclosure are generally described as being implemented in software (stored and / or executed in general-purpose hardware), specific hardware implementations, or combinations of software and specific hardware implementations, are also possible and intended.

[0090] When used in this disclosure, the term “combination” referring to multiple elements may include any combination of all elements or any various different subcombinations of some elements. For example, the phrase “A, B, C, D, or any combination thereof” may refer to A, B, C, or D; any combination of A, B, C, and D; and any subcombination of A, B, C, or D, such as A, B, and C; A, B, and D; A, C, and D; B, C, and D; A and B; A and C; A and D; B and C; B and D; or any one of C and D.

[0091] The terms used in this disclosure, and in particular in the appended claims (e.g., the text of the appended claims, but not limited to them), are generally intended to be “open” terms (for example, “including” should be interpreted as “including, but not limited to,” “having” should be interpreted as “at least having,” and “includes” should be interpreted as “including, but not limited to,” but not limited to). As used herein, “each” means “part or whole.” As used herein, “each and all” means “whole.”

[0092] Additionally, if a specific number of introduced claims is intended, such intention will be explicitly enumerated in the claims; if there is no such enumeration, such intention does not exist. For example, to aid understanding, the attached claims below may include the use of the introductory phrases “at least one” and “one or more” to introduce a claim enumeration. However, the use of such phrases should not be interpreted as the introduction of a claim description with the indefinite article “a” or “an” limiting any particular claim containing such introduced claims to only one embodiment containing such description (for example, “a” and / or “an” should be interpreted as meaning “at least one” or “one or more,” although this is not a limitation). The same applies to the use of definite articles used to introduce a claim enumeration.

[0093] In addition, even if a specific number is explicitly stated in the introduced claims, a person skilled in the art will recognize that such a statement should be interpreted as meaning at least the number stated (for example, the explicit statement “two statements” without other modifiers means, but not limited to, at least two statements or two or more statements). Furthermore, where conventions similar to “but not limited to, at least one of A, B, and C” or “but not limited to, one or more of A, B, and C” are used, such structures are generally intended to include, but not limited to, A only, B only, C only, A and B together, A and C together, B and C together, or A, B, and C together.

[0094] Furthermore, any separating words or phrases that present two or more alternative terms should be understood, whether in the specification, claims, or drawings, as intended to include the possibility of including one of the terms, either of the terms, or both of the terms. For example, the phrase "A or B" should be understood to include the possibility of "A" or "B" or "A and B".

[0095] While this disclosure is described herein with respect to certain illustrated embodiments, those skilled in the art will recognize and understand that the invention is not limited thereto. Rather, numerous additions, deletions, and modifications can be made to the illustrated and described embodiments without departing from the scope of the invention as claimed below, together with their legal equivalents. In addition, features of one embodiment can be combined with features of another disclosed embodiment, as conceived by the inventors, but still remain within the scope of this disclosure.

Claims

1. A method for preventing touchscreen overlay attacks, The steps include obtaining a set of codewords scrambled partially based on a code division multiplexing (CDM) pattern, The steps include generating a plurality of drive signals encoded with the aforementioned scrambled codeword set, A method comprising the steps of stimulating multiple drive lines of a touch sensor in a touchscreen across multiple measurement frames by utilizing different patterns of the set of scrambled codewords for each of the multiple measurement frames.

2. The step of obtaining the scrambled codeword is: A step of selecting one or more scrambler operators from a set of scrambling operators, at least in part based on a randomized selection process, The method according to claim 1, comprising the step of converting a codeword according to one or more selected scrambler operators to generate the scrambled codeword.

3. The selection step, which is at least partially based on the randomized selection process, A step of obtaining a value in response to the randomized selection process, wherein the obtained value is one of a true random value or a pseudo-random value. The method of claim 2, comprising the step of determining the selection of one or more scrambling operators from the set of scrambling operators, at least in part, based on the obtained values.

4. The steps include receiving a plurality of encoded detection signals from the touch sensor, The method according to claim 2, comprising the step of touch processing the received encoded detection signal based at least in part on the scrambled codeword.

5. The method according to claim 2, wherein the set of scrambling operators includes one or more of shuffling, reversing multiple codeword rows, reversing multiple codeword columns, or inserting multiple invalid patterns.

6. The method according to claim 1, wherein at least some of the different patterns of the codeword are orthogonal to at least some other patterns of the different patterns of the codeword.

7. The step of stimulating multiple drive lines of the touch sensor across multiple measurement frames by using a different codeword pattern for each of the multiple measurement frames is: The steps include generating a first set of codewords and a second set of codewords, Steps include scrambling the first set of codewords according to one or more first scrambling operators, The steps include scrambling the second set of codewords according to one or more second scrambling operators different from the one or more first scrambling operators, The steps include: encoding a first drive pattern using a scrambled first codeword set; The steps include encoding a second drive pattern using a scrambled second codeword set, The steps include stimulating multiple drive lines of a touch sensor over a first measurement frame using the encoded first drive pattern, The method according to claim 6, comprising the step of stimulating a plurality of drive lines of the touch sensor over a second measurement frame different from the first measurement frame using the encoded second drive pattern.

8. The method according to claim 7, comprising the step of selecting the first scrambling operator and the second scrambling operator from a set of one or more scrambling operators, each of which includes one or more of the following: shuffling, reversing a codeword row, reversing a codeword column, or inserting an invalid pattern.

9. The method according to claim 8, wherein the shuffling includes one or more rearrangements of the rows of codewords and rearrangements of the columns of codewords.

10. The method according to claim 9, wherein the reversal of the codeword row includes one or more reversals of some or all of the symbols in a part or all of the codeword row.

11. The method according to claim 10, wherein the reversal of the codeword sequence includes one or more reversals of some or all of the symbols in the codeword sequence.

12. The method according to claim 7, wherein the touch sensor is part of a capacitive touch detection system.

13. The step of stimulating multiple drive lines of the touch sensor across multiple measurement frames by using a different pattern of codewords for each of the multiple measurement frames is: The steps include stimulating multiple drive lines of the touch sensor using a first codeword in a first measurement frame among the plurality of measurement frames, The process includes the step of stimulating a plurality of drive lines of the touch sensor using a second codeword in a second measurement frame among the plurality of measurement frames, The second codeword pattern differs from the first codeword pattern, The method according to claim 12, wherein the second measurement frame is different from the first measurement frame.

14. A device for preventing overlay attacks, At least one processor, The system comprises a data storage device operationally connected to the at least one processor for storing machine executable code, wherein when the machine executable code is executed, the at least one processor, Obtaining a scrambled codeword based at least partially on a code division multiplexing (CDM) pattern, The drive signal is combined with the scrambled codeword to generate an encoded drive signal, and A device that enables the performance of an action including stimulating multiple drive lines of a touch sensor across multiple measurement frames by using different patterns of codewords for each of the multiple measurement frames.

15. The aforementioned act is, Selecting one or more scrambling operators in response to a randomized selection process. Scrambling the codeword according to one or more selected scrambling operators, and The apparatus according to claim 14, comprising using the encoded drive signal to stimulate the drive line of the touch sensor.

16. The aforementioned act is, The apparatus according to claim 15, comprising selecting one or more scrambling operators in at least part in response to a value which is one of a true random value or a pseudo-random value for the randomized selection process.

17. The aforementioned act is, This includes selecting one or more scrambling operators from a set of scrambling operators, The apparatus according to claim 15, wherein the set of scrambling operators includes one or more of shuffling, reversing a codeword row, reversing a codeword column, or inserting an invalid pattern.

18. The aforementioned act is, To receive the detected signal from the touch sensor, and The apparatus according to claim 15, comprising touch processing the received detected signal based at least in part on a scrambled codeword.

19. The act of stimulating multiple drive lines of the touch sensor across multiple measurement frames by using a different codeword pattern for each of the multiple measurement frames is, To generate the first codeword and the second codeword, Scrambling the first codeword according to a first scrambling operator, Scrambling the second codeword according to a second scrambling operator, wherein the first scrambling operator is different from the second scrambling operator. Encoding the first drive signal using the scrambled first codeword, Encoding the second drive signal using the scrambled second codeword, Using the encoded first drive signal, stimulate the drive line of the touch sensor over a first measurement frame, and The apparatus according to claim 18, comprising using the encoded second drive signal to stimulate the drive line of the touch sensor across a second measurement frame different from the first measurement frame.

20. The apparatus according to claim 19, wherein the touch sensor is at least part of a capacitive touch detection system.

21. The apparatus according to claim 16, wherein at least some of the patterns among the different patterns of the codeword are orthogonal to at least some other patterns among the different patterns of the codeword.

22. It is a device, A codeword generator for generating multiple codewords, A scrambler for generating scrambled codewords for each measurement frame of a touch detection system, based at least partially on the plurality of codewords and code division multiplexing (CDM) patterns generated by a code generator, An apparatus comprising: a driver for generating a drive signal based at least in part on the scrambled codeword generated by the scrambler.

23. The aforementioned scrambler is To select one or more scrambling operators based at least in part on a randomized selection process, and The apparatus according to claim 22 for generating a scrambled codeword based at least in part on the randomized selection process, wherein the randomized selection process obtains a value which is one of a true random value or a pseudorandom value.

24. The aforementioned scrambler is The apparatus according to claim 23, for selecting one or more scrambling operators from a set of scrambling operators, which includes one or more of the following: shuffling, reversing multiple codeword rows, reversing multiple codeword columns, or inserting multiple invalid patterns.

25. The apparatus according to claim 23, further comprising a touch controller that processes a plurality of received and detected signals based at least in part on the scrambled codeword.

26. The apparatus according to claim 23, wherein the scrambler generates at least several scrambled codewords, each scrambled codeword remaining orthogonal to another scrambled codeword.

27. It is a system, Touch sensor and It is a touch controller, In order to obtain the codeword for each measurement frame of the aforementioned touch sensor, In order to scramble each codeword according to different patterns of codewords, A system comprising: a touch controller for performing capacitance measurement of the touch sensor based at least partially on each of the scrambled codewords.

28. The aforementioned touch controller is To obtain the first set of codewords, To scramble the first codeword set according to a first scrambling operator, In order to encode the first drive signal using the scrambled first codeword set, Using the encoded first drive signal, the drive line of the touch sensor is stimulated over the first measurement frame, To obtain the second set of codewords, For scrambling the second codeword set according to a second scrambling operator, The second scrambling operator is different from the first scrambling operator in that it scrambles, In order to encode the second drive signal using the scrambled second codeword set, and The system according to claim 27, for stimulating the drive line of the touch sensor over a second measurement frame using the encoded second drive signal, wherein the second measurement frame is different from the first measurement frame and is for stimulation.