Disclosure of Invention
It is an object of the present invention to provide a 3D model encryption method that overcomes or at least alleviates at least one of the above-mentioned disadvantages of the prior art.
In one aspect of the present invention, a 3D model encryption method is provided for a client, where the 3D model encryption method includes:
acquiring a 3D model;
slicing the 3D model to obtain a G code file;
and encrypting the G code file and generating a file for decryption.
Optionally, the encrypting the G code file and generating a file for decryption includes:
generating a G code copy file for the G code file, wherein the G code copy file comprises the same vertex coordinate information as the G code file;
geometrically transforming vertex coordinate information in the G code copy file to generate a first encrypted G code file and a geometrical transformation logic file, wherein the first encrypted G code file comprises first encrypted vertex coordinate information formed by geometrically transforming the vertex coordinate information; the file for decryption includes the geometric transformation logic file.
Optionally, the encrypting the G code file further includes:
performing vertex-to-matrix processing on first encryption vertex coordinate information in a first encryption G code file to form a first matrix, wherein the first matrix comprises the first encryption vertex coordinate information;
generating the random number used for encrypting the first matrix by taking the first key as an input parameter of a random number generation function;
generating an encryption matrix according to the first matrix and a random number generating function, wherein the encryption matrix comprises second encryption vertex coordinate information generated based on the first encryption vertex coordinate information;
replacing the first encrypted vertex coordinate information in the first encrypted G code file with the second encrypted vertex coordinate information to generate a second encrypted G code file; wherein the file for decryption includes a first key.
Optionally, the first key is generated by an MD5 algorithm typed by a user at a client or provided by a server side in response to a client request.
Optionally, the encrypting the G code file further includes:
splitting the second encrypted G code file to form a first subfile group, wherein the first subfile group comprises at least two subfiles, and the subfiles are sorted in a first sorting order;
randomly ordering and recombining each subfile in the first subfile group to generate a second subfile group and an arrangement recovery file, wherein each subfile in the second subfile group is in a second arrangement order; the file for decryption includes a permutation restoration file.
Optionally, the encrypting the G code file further includes:
acquiring a second key, and encrypting the second sub-file group through the second key so as to generate an encrypted second sub-file group; wherein the file for decryption includes a second key.
Optionally, the second key is provided by the client in response to a user request.
Optionally, the obtaining the second key comprises:
the client acquires a user name, a login password and request time registered by a user;
and the client generates the second key through sm3 hash algorithm according to the user name, the login password and the request time.
Optionally, the 3D model encryption method further includes:
and sending the encrypted second sub-file group and simultaneously sending the file for decryption.
Optionally, the 3D model encryption method further includes:
and sending the encrypted second sub-file group and the file for decryption by a time sharing method.
The application also provides a 3D model encryption device, the 3D model encryption device includes: an acquisition module for acquiring a 3D model; the slicing module is used for slicing the 3D model to acquire a G code file; the encryption module is used for encrypting the G code file; and the file generation module for decryption is used for generating a file for decryption.
The application also provides a 3D model decryption method, which is used for a server side, and the 3D model decryption method comprises the following steps:
obtaining a G code file which is sent by a client and encrypted by the 3D model encryption method and a file for decryption;
and decrypting the G code file according to the file for decryption.
Optionally, the encrypted G code file is a first encrypted G code file;
the file for decryption comprises a geometric transformation logic file;
the decrypting the G code file according to the file for decryption includes:
and processing the first encrypted G code file through the geometric transformation logic file to generate a G code copy file, wherein the G code copy file comprises the same vertex coordinate information as the G code file.
Optionally, the encrypted G code file is a second encrypted G code file;
the file for decryption comprises a first key and a geometric transformation logic file;
the decrypting the G code file according to the file for decryption includes:
processing the second encrypted G code file through a first key to generate a first encrypted G code file;
and processing the first encrypted G code file through the geometric transformation logic file to generate a G code copy file, wherein the G code copy file comprises the same vertex coordinate information as the G code file.
Optionally, the encrypted G code file is a second sub file group;
the file for decryption comprises a first key, a geometric transformation logic file and an arrangement recovery file;
the decrypting the G code file according to the file for decryption includes:
splitting and recombining the second sub-file group according to the arrangement recovery file to form the first sub-file group;
packaging the first subfile group to form a second encrypted G code file;
processing the second encrypted G code file through a first key to generate a first encrypted G code file;
and processing the first encrypted G code file through the geometric transformation logic file to generate a G code copy file, wherein the G code copy file comprises the same vertex coordinate information as the G code file.
Optionally, the encrypted G code file is an encrypted second sub-file group;
the file for decryption comprises a first key, a geometric transformation logic text, an arrangement recovery file and a second key;
the decrypting the G code file according to the file for decryption includes:
decrypting the encrypted second sub-file group according to the second key, thereby obtaining a second sub-file group;
splitting and recombining the second sub-file group according to the arrangement recovery file to form the first sub-file group;
packaging the first subfile group to form a second encrypted G code file;
processing the second encrypted G code file through a first key to generate a first encrypted G code file;
and processing the first encrypted G code file through the geometric transformation logic file to generate a G code copy file, wherein the G code copy file comprises the same vertex coordinate information as the G code file.
The application also provides a 3D model decryption device, the 3D model decryption device includes: the acquisition module is used for acquiring the G code file and the file for decryption, which are sent by the server and encrypted by the 3D model encryption method; and the decryption module is used for decrypting the G code file according to the file for decryption.
The application also provides a 3D model transmission method, and the 3D model transmission method comprises the following steps:
the client encrypts the 3D model by the 3D model encryption method to obtain an encrypted G code file and a file for decryption, and sends the encrypted G code file and the file for decryption to the server;
the server side receives the encrypted G code file and the file for decryption sent by the client side, and decrypts the encrypted G code file through the file for decryption;
advantageous effects
The 3D model encryption method is safer and more convenient compared with the prior art by encrypting the G code, and avoids the problem that coordinate and index information are wrong when the 3D model is directly encrypted in the prior art.
Detailed Description
In order to make the implementation objects, technical solutions and advantages of the present application clearer, the technical solutions in the embodiments of the present application will be described in more detail below with reference to the drawings in the embodiments of the present application. In the drawings, the same or similar reference numerals denote the same or similar elements or elements having the same or similar functions throughout. The described embodiments are a subset of the embodiments in the present application and not all embodiments in the present application. The embodiments described below with reference to the drawings are exemplary and intended to be used for explaining the present application and should not be construed as limiting the present application. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present application. Embodiments of the present application will be described in detail below with reference to the accompanying drawings.
In the description of the present application, it is to be understood that the terms "central," "longitudinal," "lateral," "front," "rear," "left," "right," "vertical," "horizontal," "top," "bottom," "inner," "outer," and the like are used in the orientation or positional relationship indicated in the drawings for convenience in describing the present application and for simplicity in description, and are not intended to indicate or imply that the referenced devices or elements must have a particular orientation, be constructed in a particular orientation, and be operated in a particular manner and are not to be considered limiting of the scope of the present application.
Fig. 1 is a flowchart illustrating a 3D model encryption method according to a first embodiment of the present invention.
The 3D model encryption method shown in fig. 1 is applied to a client, and the 3D model encryption method includes:
step 1: acquiring a 3D model;
step 2: slicing the 3D model to obtain a G code file;
and step 3: the G code file is encrypted and a file for decryption is generated.
Compared with the prior art, the 3D model encryption method is safer and more convenient by encrypting the G code.
In this embodiment, step 3: the encrypting the G code file and generating the file for decryption includes:
step 31: generating a G code copy file for the G code file, wherein the G code copy file comprises vertex coordinate information which is the same as that of the G code file;
step 32: geometrically transforming vertex coordinate information in the G code copy file to generate a first encrypted G code file and a geometrical transformation logic file, wherein the first encrypted G code file comprises first encrypted vertex coordinate information formed by geometrically transforming the vertex coordinate information; the file for decryption includes a geometric transformation logic file.
The method and the device prevent the accuracy of the final 3D model printing from being influenced by destroying information such as coordinates, indexes and the like in the process of encrypting the original G code file, generate a copy G code file for transformation and encryption, are beneficial to protecting the accuracy and integrity of the information in the original G code file, and prevent information loss caused by errors in the encryption process. In this embodiment, step 3: encrypting the G-code file further comprises:
step 33: performing vertex-to-matrix processing on first encryption vertex coordinate information in the first encryption G code file to form a first matrix, wherein the first matrix comprises the first encryption vertex coordinate information;
step 34: generating a random number for encrypting the first matrix by using the first key as an input parameter of a random number generation function;
step 35: generating an encryption matrix according to the first matrix and a random number generation function, wherein the encryption matrix comprises second encryption vertex coordinate information generated based on the first encryption vertex coordinate information;
step 36: replacing the first encrypted vertex coordinate information in the first encrypted G code file with second encrypted vertex coordinate information to generate a second encrypted G code file; wherein the file for decryption includes the first key.
The first encrypted vertex coordinate information in the G code file is subjected to torque matrix processing, and then the matrix is randomly encrypted, so that the coordinates of all vertexes in the original 3D model are blurred to a certain extent, the original 3D printing model is blurred, the confidentiality of the 3D printing model is enhanced through multiple encryption, and the capability of resisting information stealing is improved.
In this embodiment, the first key is generated by the MD5 algorithm entered at the client by the user at the client or provided by the server in response to a client request. When the first key is generated by using the MD5 algorithm which is entered by the user at the client, the user can enter letters or numbers at the client according to the user himself and generate the first key by using the MD5 algorithm, and when the first key is provided by the server in response to a request from the client, the user can give the first key generation job to the server.
In this embodiment, step 3: encrypting the G-code file further comprises:
step 37: splitting the second encrypted G code file to form a first subfile group, wherein the first subfile group comprises at least two subfiles, and the subfiles are sorted in a first sorting order;
step 38: randomly sequencing and recombining the subfiles in the first subfile group to generate a second subfile group and a sequence recovery file, wherein the subfiles in the second subfile group are in a second sequence; the file for decryption includes an arrangement restoration file.
The split and recombined G code files are randomly sequenced and recombined, and are encrypted once again, so that a person who steals information in the transmission process can not decrypt to obtain a real file if the original sequencing information of the subfiles is not mastered even if the person intercepts part of the information.
In this embodiment, step 3: encrypting the G-code file further comprises:
step 39: acquiring a second key, and encrypting the second sub-file group through the second key so as to generate an encrypted second sub-file group; wherein the file for decryption includes the second key.
In the embodiment, the 3D model can be ensured to be safe to the greatest extent through a multiple encryption mode and cannot be stolen by others.
In this embodiment, the second key is provided by the client in response to a user request.
In this embodiment, obtaining the second key includes:
the client acquires a user name, a login password and request time registered by a user;
and the client generates a second key through sm3 hash algorithm according to the user name, the login password and the request time.
The method has the advantages that the sm3 digest is generated by combining the user name, the login password and the request time to serve as the second key, so that the independence and the uniqueness of the file are guaranteed, the one-to-one correspondence with the user is facilitated, the situation that a person stealing information pretends to be that the user steals related files is avoided, and if the person stealing information cannot simultaneously master the user name, the login password and the print request time registered by the user at the client, the second key cannot be obtained, and the stolen encrypted information cannot be decrypted.
In an alternative embodiment, the 3D model encryption method further comprises: and 4, step 4: and sending the encrypted second sub-file group and simultaneously sending the file for decryption.
In this embodiment, the 3D model encryption method further includes: and 4, step 4: and sending the encrypted second sub-file group and the file for decryption by a time sharing method.
The 3D model encryption method can encrypt and transmit the 3D printing model, prevents the model from being illegally intercepted and captured in the transmission process and then carrying out illegal printing, and guarantees the intellectual property of a user.
The application also provides a 3D model decryption method, which is used for the server side, and the 3D model decryption method comprises the following steps:
acquiring a G code file and a file for decryption, which are sent from a server and encrypted by the 3D model encryption method;
and decrypting the G code file according to the file for decryption.
In an alternative embodiment, the encrypted G-code file is a first encrypted G-code file;
the file for decryption comprises a geometric transformation logic file;
decrypting the G code file according to the file for decryption includes:
and processing the first encrypted G code file through a geometric transformation logic file to generate a G code copy file, wherein the G code copy file comprises the same vertex coordinate information as the G code file.
In an alternative embodiment, the encrypted G-code file is a second encrypted G-code file;
the file for decryption comprises a first key and a geometric transformation logic file;
decrypting the G code file according to the file for decryption includes:
processing the second encrypted G code file through the first key to generate a first encrypted G code file;
and processing the first encrypted G code file through the geometric transformation logic file to generate a G code copy file, wherein the G code copy file comprises the same vertex coordinate information as the G code file.
In an alternative embodiment, the encrypted G-code file is a second sub-file group;
the file for decryption comprises a first key, a geometric transformation logic file and an arrangement recovery file;
decrypting the G code file according to the file for decryption includes:
splitting and recombining the second sub-file group according to the arrangement recovery file to form a first sub-file group;
packaging the first subfile group to form a second encrypted G code file;
processing the second encrypted G code file through a first key to generate a first encrypted G code file;
and processing the first encrypted G code file through a geometric transformation logic file to generate a G code copy file, wherein the G code copy file comprises the same vertex coordinate information as the G code file.
In this embodiment, the encrypted G code file is an encrypted second sub-file group;
the file for decryption comprises a first key, a geometric transformation logic text, an arrangement recovery file and a second key;
decrypting the G code file according to the file for decryption includes:
decrypting the encrypted second sub-file group according to a second key, thereby obtaining a second sub-file group;
splitting and recombining the second sub-file group according to the arrangement recovery file to form a first sub-file group;
packaging the first subfile group to form a second encrypted G code file;
processing the second encrypted G code file through a first key to generate a first encrypted G code file;
and processing the first encrypted G code file through the geometric transformation logic file to generate a G code copy file, wherein the G code copy file comprises the same vertex coordinate information as the G code file.
The application also provides a 3D model transmission method, and the 3D model transmission method comprises the following steps:
the client encrypts the 3D model by the 3D model encryption method to obtain an encrypted G code file and a file for decryption, and sends the encrypted G code file and the file for decryption to the server;
the server side receives the encrypted G code file and the file for decryption sent by the client side, and decrypts the encrypted G code file through the file for decryption;
the present application is described in further detail below by way of examples, it being understood that the examples do not constitute any limitation to the present application.
Step 1: acquiring a 3D model, wherein in the embodiment, the 3D model is a 3D triangular mesh model;
step 2: slicing the 3D model to obtain a G code file, wherein the G code file comprises vertex coordinate information of the 3D triangular mesh model;
and step 3: encrypting the G code file and generating a file for decryption, specifically:
step 31: generating a G code copy file for the G code file, wherein the G code copy file comprises vertex coordinate information which is the same as that of the G code file;
step 32: in this embodiment, according to coordinate information xi, yi, zi and an index value i extracted from the G code file, a 3D triangular mesh plane is considered, a vertex of the 3D triangular mesh plane is moved to obtain a vector vi ═ xi, yi, zi }, and the index value i is used to perform geometric transformation on the vector vi ═ ixi, iyi, izi ═ xi ', yi', zi '}, that is, the first encrypted vertex coordinate information in the first encrypted G code file is vi ═ ixi, iyi, izi ═ xi', yi ', zi' }.
Step 33: performing vertex matrix conversion on first encryption vertex coordinate information in the first encryption G code file to form a first matrix, wherein the first matrix comprises the first encryption vertex coordinate information, specifically, constructing a 3 × 3 first matrix A (v 1 ', v 2', v3 ') by grouping three geometrically transformed vertex coordinate information vi', and the first matrix A comprises three vertices v1, v2 and v 3.
Step 34: the first key value is input as a parameter using a random number generation function, and specifically, in the present embodiment, the first key K is input as a seed of the random number generation function F, so as to obtain a random coefficient for encrypting the matrix, and in the present embodiment, the first key K is generated at the client by the MD5 algorithm that the user types at the client.
Step 35: and generating an encryption matrix according to the first matrix and a random number generation function, specifically, multiplying a random number generated by a random number generation function F by a coefficient of the first matrix A to obtain a random number matrix R, and performing geometric transformation according to the random number matrix R and the first matrix A to obtain an encryption matrix A ', wherein the encryption matrix A' comprises second encryption vertex coordinate information generated based on the first encryption vertex coordinate information, and the second encryption vertex coordinate information is si ═ xi, yi, zi }. The details are as follows:
step 36: and replacing the first encrypted vertex coordinate information in the first encrypted G code file with the second encrypted vertex coordinate information to generate a second encrypted G code file.
Step 37: splitting the second encrypted G code file to form a first subfile group, wherein the first subfile group comprises at least two subfiles, and the subfiles are sorted in a first sorting order; in the present embodiment, it is assumed that a first sub-file group C obtained by splitting the second encrypted G-code file into 3 sub-files is { X1, X2, X3} while marking respective sub-file sequence numbers as 123 (first arrangement order).
Step 38: the respective subfiles in the first subfile group are randomly ordered and reorganized to generate a second subfile group and an arrangement restoration file, and specifically, the respective subfiles in the first subfile group C are reordered and reorganized to generate a second subfile group C' { X2, X3, and X1}, where the sequence number of the second subfile group becomes 231 (a second arrangement order), and an arrangement restoration file, that is, a file X is generated, in which the second arrangement order is recorded.
Step 39: the second sub-set of files is encrypted by a second key, thereby generating an encrypted second sub-set of files. In the embodiment, the encryption is performed by adopting an sm4 algorithm, and the second key is generated by a server side in response to a client request through an sm3 hash algorithm according to the user name, the login password and the request time.
And 4, step 4: the encrypted second sub-file set processed in step 39 is transmitted, and the file for decryption is transmitted with a delay.
When decryption is performed, the 3D model decryption method adopted by the application is as follows:
obtaining the encrypted G code file and the file for decryption sent from the server, in this embodiment, the encrypted second sub-file group transmitted in step 4;
and decrypting the G code file according to the file for decryption. In particular, the amount of the solvent to be used,
the file for decryption comprises a first key, a geometric transformation logic text, an arrangement recovery file and a second key;
decrypting the G code file according to the file for decryption includes:
decrypting the encrypted second sub-file group according to the second key, thereby obtaining a second sub-file group; and simultaneously: splitting and recombining the second sub-file group according to the arrangement recovery file to form a first sub-file group;
specifically, after receiving the second sub-file group C ' { X2X 3X 1} and the file X, rearranging C ' in the positive order of the sub-file sequence number 123, combining and restoring the split sub-files in the order of the sequence number 123 to the G-code file set C before encryption { X1X 2X 3}, and extracting the index value i of the 3D printing model and the encrypted plane vertex coordinate information to form a 3 × 3 matrix a '.
Acquiring a first secret key K, and processing the second encrypted G code file through the first secret key to generate a first encrypted G code file; specifically, a random number R is generated by a random number generation function F keyed in by a first key K, the generated R is the same as R generated in encryption, and the matrix A is obtained by dividing an encryption transformation matrix A' by a randomization coefficient R and then opening a square root.
And processing the first encrypted G code file through the geometric transformation logic file to generate a G code copy file. Specifically, as with the vector transformation of vectors by the encryption process, the encryption process multiplies a matrix by an index value i, and the decryption process restores it by dividing the matrix coefficient by the index value i.
A={v1′,v2′/2,v3′/3};
And finally obtaining the original plane vertex coordinate information vi ═ { xi, yi, zi }, rearranging the decrypted planes to restore the original 3D triangular mesh, thereby obtaining the G code copy file.
The application also provides a 3D model encryption device, the 3D model encryption device comprises an acquisition module, a slicing module, a file generation module for decryption and an encryption module, and the acquisition module is used for acquiring the 3D model; the slicing module is used for slicing the 3D model to acquire a G code file; the encryption module is used for encrypting the G code file; the file generation module for decryption is used for generating a file for decryption.
The application also provides a 3D model decryption device, wherein the 3D model decryption device comprises an acquisition module and a decryption module, and the acquisition module is used for acquiring the G code file which is sent from the server and encrypted by the 3D model encryption method and a file for decryption; and the decryption module is used for decrypting the G code file according to the file for decryption.
The application also provides a 3D model transmission method, and the 3D model transmission method comprises the following steps:
the client encrypts the 3D model by the 3D model encryption method to obtain an encrypted G code file and a file for decryption, and sends the encrypted G code file and the file for decryption to the server;
and the server receives the encrypted G code file and the file for decryption sent by the client, and decrypts the encrypted G code file through the file for decryption.
Although the present application has been described with reference to the preferred embodiments, it is not intended to limit the present application, and those skilled in the art can make variations and modifications without departing from the spirit and scope of the present application.
In a typical configuration, a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
The memory may include forms of volatile memory in a computer readable medium, Random Access Memory (RAM) and/or non-volatile memory, such as Read Only Memory (ROM) or flash memory (flash RAM). Memory is an example of a computer-readable medium.
Computer-readable media include both non-transitory and non-transitory, removable and non-removable media that implement information storage by any method or technology. The information may be computer readable instructions, data structures, modules of a program, or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), Read Only Memory (ROM), Electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), Digital Versatile Discs (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information that can be accessed by a computing device.
As will be appreciated by one skilled in the art, embodiments of the present application may be provided as a method, system, or computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
Furthermore, it will be obvious that the term "comprising" does not exclude other elements or steps. A plurality of units, modules or devices recited in the device claims may also be implemented by one unit or overall device by software or hardware. The terms first, second, etc. are used to identify names, but not any particular order.
The flowchart and block diagrams in the figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present application. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks identified in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems which perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
The Processor in this embodiment may be a Central Processing Unit (CPU), other general purpose Processor, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), an off-the-shelf Programmable Gate Array (FPGA) or other Programmable logic device, a discrete Gate or transistor logic device, a discrete hardware component, and so on. A general purpose processor may be a microprocessor or the processor may be any conventional processor or the like.
The memory may be used to store computer programs and/or modules, and the processor may implement various functions of the apparatus/terminal device by running or executing the computer programs and/or modules stored in the memory, as well as by invoking data stored in the memory. The memory may mainly include a storage program area and a storage data area, wherein the storage program area may store an operating system, an application program required by at least one function (such as a sound playing function, an image playing function, etc.), and the like; the storage data area may store data (such as audio data, a phonebook, etc.) created according to the use of the cellular phone, and the like. In addition, the memory may include high speed random access memory, and may also include non-volatile memory, such as a hard disk, a memory, a plug-in hard disk, a Smart Media Card (SMC), a Secure Digital (SD) Card, a Flash memory Card (Flash Card), at least one magnetic disk storage device, a Flash memory device, or other volatile solid state storage device.
In this embodiment, the module/unit integrated with the apparatus/terminal device may be stored in a computer-readable storage medium if it is implemented in the form of a software functional unit and sold or used as a separate product. Based on such understanding, all or part of the flow in the method according to the embodiments of the present invention may also be implemented by a computer program to instruct related hardware, where the computer program may be stored in a computer readable storage medium, and when the computer program is executed by a processor, the computer program may implement the steps of the embodiments of the method. Wherein the computer program comprises computer program code, which may be in the form of source code, object code, an executable file or some intermediate form, etc. The computer readable medium may include: any entity or device capable of carrying computer program code, recording medium, U.S. disk, removable hard disk, magnetic disk, optical disk, computer Memory, Read-Only Memory (ROM), Random Access Memory (RAM), electrical carrier wave signals, telecommunications signals, software distribution media, and the like. It should be noted that the computer readable medium may contain content that is appropriately increased or decreased as required by legislation and patent practice in the jurisdiction.
Although the invention has been described in detail hereinabove with respect to a general description and specific embodiments thereof, it will be apparent to those skilled in the art that modifications or improvements may be made thereto based on the invention. Accordingly, such modifications and improvements are intended to be within the scope of the invention as claimed.