The field of the invention is data security.
The background description includes information that may be useful in understanding the present invention. It is not an admission that any of the information provided herein is prior art or relevant to the presently claimed invention, or that any publication specifically or implicitly referenced is prior art.
It is commonplace to encode information (i.e., data) in an image. For example, bar codes QR codes encode in lines and dots. Digital photographs, and even charts and graphs are similar, encoding information in a rasterized series of bits or bytes.
Generally speaking, the information in rendered bar codes, QR codes, photographs, charts, and graphs are not confidential to a viewer, because the process of rendering (e.g., printing on a physical piece of paper, or displaying on a display screen), to the viewer. It is possible to hide confidential information as a code within an image, as for example, a hidden water mark. In known such cases, the code is an arrangement of dots (or pixels in a digital representation), which are spatially separated to avoid detection.
Issues can arises as to the amount of information that can be stored in a simple encoding. For example, a simple 20 line bar code can only store 20 binary digits. A more complicated QR or image can encode thousands or millions of digits, but of course are the cost of greater complexity. Moreover, each such encoding scheme only encodes for a single sequence.
In modern cryptography, it can be useful to transmit keys tens of thousands of characters, and in future embodiments keys are contemplate that contain millions or even higher numbers of characters. Thus, there is a need for systems and methods of transmitting complex cryptographic keys and other information with only simple formats.
The inventive subject matter provides apparatus, systems and methods in which information (i.e., data) is represented as a numeric string, which is encoded into a graphical representation using first and second lengths, such that a mathematical relationship between the first and second lengths defines at least a portion of the numeric string. The information can be decoded by measuring the first and second lengths, determining a number as a function of the measured first and second lengths, wherein the number corresponds with at least a portion of the data.
In a very simple example, the string of data “0.14285714” can be represented by lines have relative lengths 7 and 1. On a cartesian coordinate, the lines could extend orthogonally from a common point, which might or might not be the 0,0 point. In other embodiments the lines need not be orthogonal, and they do not even need to be linear. In some embodiments the lengths can be represented by dots (or pixels) rather than filled in lines.
The data being encoded can include alphabetic and other non-numeric characters, and for example could be used as a link to the Internet or other data store. Encoded data can also be extremely long, as when a graphic contains designations of lengths that are manipulated by a mathematical formula to represent a multi-million digit one-time passcode. The number string being encoded could, for example, be part of an irrational or transcendental number.
As used herein, the term “graphical representation” means any representation from which a human or machine could obtain measurements of lengths, whether the lengths are designated by lines, relative positions of dots or pixels, or in any other manner. As such, graphical representations include images of graphs or drawings specifically created to include lines or other designations of specific lengths that are intended to encode messages, pass codes, or other information. Graphical representations also include stored images of the type that one might take with a camera or cell phone, as well as printed versions of same, which are then modified to add designations of two or more lengths, in which the added designations encode messages, pass codes, or other information. The term “graphic” is used herein as a shortcut for “graphical representation”.
All suitable mathematical formulae can be used, including for example, simple multiplication and division, addition, subtraction, roots, exponents, and logarithms. In a preferred embodiment, the number N derived from lengths L1 and L2 can be calculated as N2=L12+L22.
Still further, it is contemplated that different recipients of a graphical representation could utilize different formulae against the same lengths to arrive at different numbers and different decoded data. In that manner different messages could be sent to different recipients. Similarly, multiple lengths can be represented by lines, intersections, or free floating points in an graphic, which are recognizable to an intended recipient of the graphic, but which might be overlooked by a non-intended recipient. In that manner vast
Various objects, features, aspects and advantages of the inventive subject matter will become more apparent from the following detailed description of preferred embodiments.
Throughout the following discussion, references are be made regarding processors. It should be appreciated that the use of that terms is deemed to represent one or more computing devices having at least one processor (e.g., ASIC, FPGA, DSP, x86, ARM, ColdFire, GPU, multi-core processors, etc.) programmed to execute software instructions stored on a computer readable tangible, non-transitory medium (e.g., hard drive, solid state drive, RAM, flash, ROM, etc.). For example, as used herein the term processor encompasses one or more computers operating as a web server, database server, or other type of computer server in a manner to fulfill described roles, responsibilities, or functions. One should further appreciate the disclosed computer-based algorithms, processes, methods, or other types of instruction sets can be embodied as a computer program product comprising a non-transitory, tangible computer readable media storing the instructions that cause a processor to execute the disclosed steps.
The number 1 is added to the beginning of the number string to prevent the sequence from being interpreted as 8051216, since the numbers 80, 51, 21 would be nonsensical using the reverse cypher.
It is contemplated that any suitable conversion could be used to convert non-numeric data into a numeric format. Even very long text strings, such as chapter of a book, could theoretically be encoded in this manner.
Although this example involves encoding text into line lengths using a simple division, any suitable mathematical formula could be used, including for example, multiplication, square root or other roots, exponents, and logarithms.
It should also be appreciated that the coordinate system has no tic marks that a recipient could use to determine the relative lengths of L1 and L2. Such tic marks are not necessary where line lengths are measured using precision measuring software.
Still other lines in
Decoding of the line lengths is preferably accomplished using precision measuring software (not shown). Such software may well be needed when measuring lengths of curved lines such as line 440.
it is still further contemplated that widths, colors, or other characteristics of lines could be used additionally or alternatively to encode information, and might for example, be used to identify which formula should be used to decode information from the line lengths.
It should be apparent to those skilled in the art that many more modifications besides those already described are possible without departing from the inventive concepts herein. The inventive subject matter, therefore, is not to be restricted except in the spirit of the appended claims. Moreover, in interpreting both the specification and the claims, all terms should be interpreted in the broadest possible manner consistent with the context. In particular, the terms “comprises” and “comprising” should be interpreted as referring to elements, components, or steps in a non-exclusive manner, indicating that the referenced elements, components, or steps may be present, or utilized, or combined with other elements, components, or steps that are not expressly referenced. Where the specification claims refers to at least one of something selected from the group consisting of A, B, C . . . and N, the text should be interpreted as requiring only one element from the group, not A plus N, or B plus N, etc.