Operating methods of memory controllers and cloud computing devices

By storing the seed and intermediate data in the memory device instead of the final ciphertext data, and using a pseudo-random number generator to regenerate random values ​​for decryption, the problems of insufficient storage space and high data sharing communication volume are solved, achieving the effects of saving storage space and reducing communication volume.

CN113572598BActive Publication Date: 2026-03-03SAMSUNG ELECTRONICS CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-04-19
Publication Date
2026-03-03

AI Technical Summary

Technical Problem

In cryptographic environments based on learning on ring error (RLWE), existing technologies suffer from insufficient storage space in memory devices and high data sharing communication volume.

Method used

Instead of directly storing the final ciphertext data, ciphertext data is generated by using a seed and intermediate data. The intermediate data and seed are stored in a memory device, and a pseudo-random number generator is used to regenerate random values ​​for decryption.

Benefits of technology

It saves storage space on the storage device, reduces data sharing communication in cloud computing environments, and improves the security of the storage device.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN113572598B_ABST
    Figure CN113572598B_ABST
Patent Text Reader

Abstract

The invention provides an operation method for a memory controller and an operation method for a cloud computing device. The operation method for the memory controller includes: generating a random value using a seed; generating encrypted intermediate data by encrypting plaintext data using the random value; and storing the seed and intermediate data in a memory device. Encrypted data is generated using the seed and intermediate data based on on-ring band error learning (RLWE).
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application claims priority to Korean Patent Application No. 10-2020-0051439, filed on April 28, 2020, with the Korean Intellectual Property Office, the entire disclosure of which is incorporated herein by reference. Technical Field

[0002] Exemplary embodiments of this disclosure relate to methods of operating a memory controller, methods of operating a cloud computing device, and methods of operating an edge computer. Background Technology

[0003] With the advent of the quantum computing era, research on secure post-quantum cryptography is actively underway. Ring Learning with Error (RLWE) cryptography is one solution. RLWE-based cryptography is widely used in homomorphic encryption to protect user privacy in cloud computing environments. Summary of the Invention

[0004] This disclosure provides a method for operating a memory controller that can save storage space in an environment using RLWE-based cryptographic techniques.

[0005] This disclosure also provides a method for operating a cloud computing device that can reduce data sharing traffic in an environment using RLWE-based cryptographic techniques.

[0006] This disclosure also provides an operational method for an edge computer that can reduce data sharing traffic in an environment using RLWE-based cryptographic techniques.

[0007] However, the aspects of this disclosure are not limited to those described above.

[0008] According to an exemplary embodiment of this disclosure, a method of operating a memory controller includes: generating a random value using a seed; generating encrypted intermediate data by encrypting plaintext data using the random value; and storing the seed and the intermediate data in a memory device. The encrypted data is generated using the seed and the intermediate data based on on-ring band error learning (RLWE).

[0009] According to an exemplary embodiment of this disclosure, a method of operating a memory controller includes: generating a random value using a seed, wherein the seed is an address corresponding to user data or plaintext data obtained by encoding the user data; generating encrypted intermediate data by encrypting the plaintext data using the random value; and storing the intermediate data in a region in a memory device corresponding to the address. The encrypted data is generated using the seed and the intermediate data based on on-ring band error learning (RLWE), and the seed is not stored in the memory device.

[0010] According to an exemplary embodiment of this disclosure, an operation method of a memory controller includes: generating plaintext data by encoding user data; generating random values ​​using seed-based pseudo-random number generation, wherein the seed includes at least one of an address, a timestamp, and metadata corresponding to the user data; generating encrypted intermediate data by encrypting the plaintext data using the random values, wherein the random values, plaintext data, and intermediate data have equal lengths; storing the seed and intermediate data in a memory device; reading the seed and intermediate data stored in the memory device; regenerating the random values ​​using pseudo-random number generation based on the read seed; generating ciphertext data based on on-ring band error learning (RLWE) using the regenerated random values ​​and the read intermediate data; and generating and outputting user data by decrypting and decoding the ciphertext data.

[0011] According to an exemplary embodiment of the present disclosure, a method of operating a cloud computing apparatus includes: storing a seed and encrypted intermediate data received from an edge computer in a storage area; reading the seed and intermediate data from the storage area; generating a random value using the read seed; and generating ciphertext data based on on-ring error learning using the random value and the read intermediate data.

[0012] According to an exemplary embodiment of this disclosure, an operation method of an edge computer includes: generating a random value using a seed; generating encrypted intermediate data by encrypting plaintext data using the random value; and providing the seed and the intermediate data to a cloud computing device. The seed and intermediate data are used to generate ciphertext data based on learning on-ring error (RLWE). Attached Figure Description

[0013] The above and other aspects and features of this disclosure will become clearer from the detailed description of exemplary embodiments thereof with reference to the accompanying drawings, in which:

[0014] Figure 1 This is a block diagram illustrating a storage device according to an exemplary embodiment of the present disclosure.

[0015] Figure 2 It is a description Figure 1 A flowchart of the operation method (programming operation) of the memory controller.

[0016] Figure 3 It is a description Figure 1 A flowchart of the operation method (read operation) of the memory controller.

[0017] Figure 4 and Figure 5 This is a block diagram illustrating a storage device according to an exemplary embodiment of the present disclosure.

[0018] Figure 6 This is a block diagram illustrating a storage device according to an exemplary embodiment of the present disclosure.

[0019] Figure 7 It shows the basis Figure 6 A flowchart illustrating an exemplary embodiment of the operation method of a memory controller in a storage device.

[0020] Figure 8 This is a block diagram illustrating a storage device according to an exemplary embodiment of the present disclosure.

[0021] Figure 9 This is a block diagram illustrating a storage device according to an exemplary embodiment of the present disclosure.

[0022] Figure 10 This is a diagram illustrating a cloud environment used by a cloud computing device according to exemplary embodiments of the present disclosure.

[0023] Figure 11 This is a diagram illustrating the authentication process between a cloud computing device and an edge computer according to an exemplary embodiment of the present disclosure.

[0024] Figure 12 This is a diagram illustrating data sharing processing between a cloud computing device and an edge computer according to an exemplary embodiment of the present disclosure.

[0025] Figure 13 This is a flowchart illustrating an operation method of a cloud computing apparatus according to an exemplary embodiment of the present disclosure. Detailed Implementation

[0026] Exemplary embodiments of the present disclosure will be described more fully below with reference to the accompanying drawings. Throughout the drawings, the same reference numerals denote the same elements.

[0027] It will be understood that the terms “first,” “second,” “third,” etc., are used herein to distinguish one element from another, and the elements are not limited by these terms. Thus, a “first” element in an exemplary embodiment may be described as a “second” element in another exemplary embodiment.

[0028] It should be understood that, unless the context clearly indicates otherwise, the description of a feature or aspect within each exemplary embodiment should generally be considered applicable to other similar features or aspects in other exemplary embodiments.

[0029] As used herein, unless the context clearly indicates otherwise, the singular form is intended to include the plural form as well.

[0030] Figure 1 This is a block diagram illustrating a storage device according to an exemplary embodiment of the present disclosure. Figure 2 It is a description Figure 1 A flowchart of the operation method (programming operation) of the memory controller. Figure 3 It is a description Figure 1 A flowchart of the operation method (read operation) of the memory controller.

[0031] According to an exemplary embodiment, such as Figure 1 As shown, the storage device includes a memory device 100 and a memory controller 200.

[0032] Storage devices can be implemented as, for example, smart cards, secure digital cards (SD cards), multimedia cards (MMC), embedded MMC (eMMC), embedded multi-chip packages (eMCP), perfect page NAND (PPN), universal flash memory (UFS), universal serial bus (USB) flash drives, solid-state drives (SSDs), or embedded SSDs (eSSDs). However, storage devices are not limited to these.

[0033] The memory controller 200 controls the overall operation of the memory device 100. The memory controller 200 can interpret commands, addresses, data, etc., received from the host, and can control the operation of the memory device 100 based on the interpretation results. For example, an exemplary embodiment can receive programming commands / addresses / data from the host and store the data at an address in the memory device 100. An exemplary embodiment can also read and output data stored at an address in the memory device 100 based on a read command / address received from the host.

[0034] The memory device 100 may be, for example, a non-volatile memory device (e.g., a NAND flash memory device). However, the memory device 100 is not limited to this.

[0035] The memory controller 200 may include an encryptor 220 that encrypts user data received from the host. According to an exemplary embodiment of this disclosure, the memory device 100 does not store the final ciphertext data C2n generated using a ring-based learning with error (RLWE) cryptographic technique in the memory device 100. Instead, a seed Sα and intermediate data CIn used to generate the RLWE-based ciphertext data are stored in the memory device 100. The seed Sα may also be referred to herein as seed data Sα. Here, α represents the data length of the seed Sα, and n represents the data length of the intermediate data CIn. Here, α and n are positive integers, and α is less than n.

[0036] Each of the intermediate data CIn and the seed Sα is shorter in length than the RLWE-based ciphertext data C2n, and the intermediate data CIn and the seed Sα are stored in the memory device 100. Therefore, according to the exemplary embodiment, the storage space of the memory device 100 can be saved by storing the intermediate data CIn and the seed Sα in the memory device 100 instead of storing the finally generated RLWE-based ciphertext data C2n in the memory device 100. The data length of the ciphertext data C2n is 2n, and the sum of the data lengths of the intermediate data CIn and the seed Sα is n+α. Because α is less than n, storing the intermediate data CIn and the seed Sα reduces the amount of data stored in the memory device 100. Furthermore, the intermediate data CIn is data encrypted by the encryptor 220, which improves the security of the storage device.

[0037] Referring to the comparative example, when using RLWE-based cryptography with a homomorphic encryption architecture, the size (or length) of the ciphertext data tends to be larger than the corresponding plaintext data. Such an increase in data size can be burdensome in terms of storage device capacity and data sharing traffic in a cloud computing environment. Exemplary embodiments of this disclosure utilize RLWE-based cryptography in a manner that saves storage space on such storage devices and reduces data sharing traffic in a cloud computing environment.

[0038] The following will refer to Figure 2 The above programming (encryption) and storage operations are described in more detail.

[0039] First, in operation S10, the memory controller 200 uses the seed Sα to generate a random value An.

[0040] The seed Sα may include at least one of, for example, an address corresponding to user data or plaintext data, a timestamp, and metadata.

[0041] As used herein, the term "address" can mean either a logical address or a physical address. For example, an address can correspond to an address provided externally to the storage device (e.g., by the host) or an address generated within the storage device. An address can also be an address corresponding to user data or plaintext data generated by encoding user data.

[0042] The term "timestamp" can refer to a timestamp indicating the time when user data or plaintext data was generated or provided. In another pre-configured scenario, a timestamp can also be a timestamp indicating the time elapsed after a predetermined period from the time when the user data or plaintext data was generated or provided.

[0043] The term "metadata" can refer to the number of valid pages included in a memory block, the number of valid pages in a memory block, etc.

[0044] However, the terms defined above are not limited to these.

[0045] The seed Sα may include at least one of a page address (e.g., a logical address or a physical address) and a unique ID of the NAND flash memory. For example, the page address and the unique ID may be used independently or in combination.

[0046] Based on the seed Sα, the random number generator can generate random values ​​An.

[0047] The random value An can be, for example, a uniformly random value. For instance, all random values ​​generated by a random number generator can be generated with substantially the same probability.

[0048] For this purpose, the random number generator can be, for example, a pseudo-random number generator (PRNG). Examples of pseudo-random number generators include, but are not limited to, linear feedback shift registers (LFSRs), hysteresis Fibonacci generators (LFGs), linear congruence generators (LCGs), Parker-Miller generators, inverse congruence generators (ICGs), adders with carry (AWCs), subtractors with borrow (SWCs), multiplies with carry (MWCs), complementary multiplies with carry (CMWCs), Mason rotators (MTs), well-uniformly distributed long-period linear (WELL) generators, small non-cryptographic PRNG (JSF) generators, advanced randomization systems (ARS) generators, permutation congruence generators (PCGs), and random periodic bit generators (RCBs). For example, when using a linear feedback shift register (LFSR) as a pseudo-random number generator, the pseudo-random number generator can be constructed in the form of a generator polynomial.

[0049] When using the pseudo-random number generator described above, the same seed Sα can generate the same random value An.

[0050] Furthermore, when generating a random value An using the aforementioned pseudo-random number generator, if the random seed Sα has a data length α, then the generated random value An can have a data length n.

[0051] Next, in operation S20, the memory controller 200 uses a random value to encrypt the plaintext data to generate encrypted intermediate data.

[0052] According to an exemplary embodiment, the random value An, the intermediate data CIn, and the plaintext data Xn satisfy the following equation. Here, Sn represents the encryption key used for encryption, En represents the noise (error) value used in the RLWE-based cryptographic technique, and Bn represents the intermediate value generated by encrypting the random value using the encryption key.

[0053] Bn=AnSn+En

[0054] CIn=Bn+Xn

[0055] Here, since the length of the encrypted intermediate data CIn is n, it can be confirmed that the lengths of the random value An and the intermediate data CIn are equal. In the exemplary embodiment, the lengths of the encrypted intermediate data CIn, the random value An, and the plaintext data Xn are equal.

[0056] Next, in operation S30, the memory controller 200 stores the seed Sα and intermediate data CIn in the memory device 100.

[0057] For example, according to an exemplary embodiment, instead of the (final) ciphertext data C2n based on RLWE being stored in the memory device 100, the seed Sα and intermediate data CIn used to generate the RLWE-based ciphertext data C2n are stored in the memory device 100. The sum of the data lengths of the intermediate data CIn and the seed Sα stored in the memory device 100 is n+α, where n+α is less than the data length of the finally generated RLWE-based ciphertext data C2n. Therefore, the memory device 100 saves storage space compared to a memory device storing the finally generated RLWE-based ciphertext data C2n.

[0058] According to an exemplary embodiment, the random value An, the intermediate data CIn, and the RLWE-based ciphertext data C2n satisfy the following relational equation:

[0059] C2n=(An,CIn)=(An,Bn+Xn).

[0060] Here, it can be confirmed that the length of the ciphertext data C2n is 2n, and α is less than n. Therefore, storing the intermediate data CIn and the seed Sα in the memory device 100 instead of storing the ciphertext data C2n in the memory device 100 can save storage space in the memory device 100.

[0061] In the following text, reference will be made to Figure 3 A more detailed description of the read operation of the memory device 100.

[0062] First, in operation S60, when a read command / address is provided from the host, the memory controller 200 interprets the read command / address and reads the seed Sα and intermediate data CIn from the memory device 100. For example, the seed Sα and intermediate data CIn stored at the location corresponding to the address received from the host are read.

[0063] Next, in operation S70, the memory controller 200 regenerates the random value An using the read seed Sα.

[0064] As described above, a pseudo-random number generator is used in the exemplary embodiments of this disclosure. The pseudo-random number generator generates the same random value An using the same seed Sα. Therefore, when the seed Sα read from the memory device 100 is input to the pseudo-random number generator, the same random value An used in the data storage process can be obtained.

[0065] Next, in operation S80, the memory controller 200 uses the regenerated random value An and the intermediate data CIn read from the memory device 100 to perform the decryption operation.

[0066] For example, an exemplary embodiment can use a regenerated random value An and read intermediate data CIn to generate RLWE-based ciphertext data C2n, and the generated RLWE-based ciphertext data C2n can be decrypted to generate plaintext data Xn. Next, the plaintext data Xn is decoded to generate and output user data Dm.

[0067] According to an exemplary embodiment of this disclosure, during a programming operation, the memory controller 200's operation method includes storing a seed Sα and encrypted intermediate data CIn in the memory device 100. During a read operation, the memory controller 200's operation method includes reading the seed Sα and the intermediate data CIn, and regenerating a random value An using the read seed Sα to continue using the random value An. According to the exemplary embodiment, as described above, storing the seed Sα only when necessary for regenerating the random value An, rather than storing the RLWE-based ciphertext data C2n in the memory device 100, can result in saving storage space in the memory device 100.

[0068] In the following text, reference will be made to Figure 4 and Figure 5 The above description refers to Figures 1 to 3 Exemplary implementations of the described operations.

[0069] Figure 4 This is a block diagram illustrating a storage device according to an exemplary embodiment of the present disclosure. Figure 4 It is used to describe references Figure 2 A diagram describing the programming operations.

[0070] Reference Figure 4 In a storage device according to an exemplary embodiment of the present disclosure, the memory controller 200 includes an encoder 210, an encryptor 220, a seed generator 250, and a random number generator 261 for programming operations.

[0071] The output of encoder 210 is input to encryptor 220, and the data input to encryptor 220 is converted into a format suitable for use in the encryption scheme. Encoder 210 encodes user data Dm received from the host to generate plaintext data Xn. User data Dm has a data length m (e.g., m is a positive integer), plaintext data Xn has a data length n, and m is less than n.

[0072] When the user data Dm provided from the host is already in a format suitable for use in the encryption scheme of the encryptor 220, the encoder 210 can be omitted.

[0073] Seed generator 250 generates a seed Sα with a data length α.

[0074] The seed Sα output from the seed generator 250 may include at least one of, for example, an address corresponding to (or indirectly corresponding to) user data Dm, a timestamp, and metadata. The address corresponding to user data Dm may be a logical address or a physical address. The timestamp corresponding to user data Dm may be a timestamp indicating the time when user data Dm was provided. In another pre-configured scheme, the timestamp may be a timestamp indicating the time elapsed after a predetermined time period from the time when user data Dm was provided. The metadata corresponding to user data Dm may represent the number of valid pages included in the memory block, the number of valid pages in the memory block, etc. However, the metadata corresponding to user data Dm is not limited to this. The seed Sα may also include page addresses (e.g., logical addresses or physical addresses) and unique IDs of NAND flash memory that can be used independently or in combination.

[0075] Random number generator 261 generates a random value An using a seed Sα and outputs the random value An. Although the random value An can be a uniformly random value and a pseudo-random number generator (PRNG) can be used as a random number generator as described above, this disclosure is not limited thereto.

[0076] Encryptor 220 uses a random value An to encrypt plaintext data Xn, and generates and outputs encrypted intermediate data CIn. As described above, the random value An, the intermediate data CIn, and the plaintext data Xn satisfy the following equation.

[0077] Bn=AnSn+En

[0078] CIn=Bn+Xn

[0079] Here, Sn represents the encryption key used for encryption, and En represents the noise (error) value used in RLWE-based cryptography.

[0080] Therefore, as described above, according to the exemplary embodiment, the intermediate data CIn and the seed Sα used to generate RLWE-based ciphertext data are stored in the memory device 100.

[0081] Figure 5 This is a block diagram illustrating a storage device according to an exemplary embodiment of the present disclosure. Figure 5 It is used to describe references Figure 3 A diagram describing the read operation.

[0082] Reference Figure 5 In an exemplary embodiment, the memory controller 200 includes a data recovery unit 280, a random number generator 262, and a decryptor 290 for read operations.

[0083] The command / address instruction for reading data (e.g., intermediate data CIn and seed Sα) stored in memory device 100 is received from the host. Memory controller 200 reads the intermediate data CIn and seed Sα stored at that address.

[0084] Random number generator 262 uses a seed Sα to generate a random value An. Random number generator 262 can be, for example, a pseudo-random number generator (PRNG) as described above. Random number generator 262 can be used with random number generators for programmable operations (see [link to relevant documentation]). Figure 4 The same applies to 261 in the example. For example, when random number generator 261 is a linear feedback shift register (LFSR), random number generator 262 can also be a linear feedback shift register (LFSR). According to an exemplary embodiment, a random number generator can be used for both programming and reading operations.

[0085] because Figure 5The random number generator 262 in the middle and Figure 4 Since the random number generator 261 is the same, the random value An generated by the random number generator 262 using the seed Sα is the same as the random value An generated by the random number generator 261 using the seed Sα.

[0086] Data recovery unit 280 uses random value An and intermediate data CIn to generate ciphertext data C2n based on RLWE. As described above, the ciphertext data C2n satisfies the following relational equation.

[0087] C2n=(An,CIn)=(An,Bn+Xn)

[0088] The decryptor 290 decrypts / decodes and decodes the ciphertext data C2n to generate user data Dm.

[0089] Therefore, as described above, according to the exemplary embodiment, the memory controller 200 regenerates a random value An using a seed Sα during a read operation. The RLWE-based ciphertext data C2n generated based on the regenerated random value An and intermediate data CIn is decrypted and decoded to be output as user data Dm.

[0090] Figure 6 This is a block diagram illustrating a storage device according to an exemplary embodiment of the present disclosure. Figure 7 It shows the basis Figure 6 A flowchart illustrating an exemplary embodiment of the operation method of a memory controller in a storage device. For ease of explanation, further descriptions of the previously described processes, components, and techniques may be omitted, and the following description will focus on aspects relative to the above references. Figures 1 to 5 The differences in description.

[0091] Reference Figure 6 In an exemplary embodiment of this disclosure, the storage device may use the address corresponding to user data Dm (or the address corresponding to plaintext data Xn) as a seed Sα. In this case, the seed Sα generated by the seed generator 250 is provided to the random number generator 261 and is not stored in the memory device 100.

[0092] Reference Figure 7 Seed generator 250 generates a seed Sα from the address corresponding to user data Dm.

[0093] In operation S11, random number generator 261 uses seed Sα (e.g., the address corresponding to user data Dm) to generate random value An.

[0094] At the same time, encoder 210 encodes user data Dm to generate plaintext data Xn.

[0095] Next, in operation S21, the encryptor 220 uses a random value An to encrypt the plaintext data Xn to generate encrypted intermediate data CIn.

[0096] Next, in operation S31, the memory controller 200 stores the intermediate data CIn in the memory device 100, while excluding the seed Sα. For example, the generated intermediate data CIn is stored at the address corresponding to the address of the seed Sα in the memory device 100, and the seed Sα is not stored.

[0097] Simultaneously, during operation S51, the memory controller 200 receives a command instructing the read of intermediate data CIn stored at the corresponding address from the host. Here, the address where the intermediate data CIn is stored is provided along with the read command from the host.

[0098] Next, in operation S61, the memory controller 200 reads the intermediate data CIn stored at the corresponding address in the memory device 100.

[0099] Next, in operation S71, the memory controller 200 uses the address received from the host as a seed Sα to generate a random value An. By using the same address used as the seed Sα for the programming operation as the seed Sα in the read operation, the exemplary embodiment can regenerate the same random value An as the random value An generated in the programming operation.

[0100] Next, in operation S81, the memory controller 200 uses the regenerated random value An and the read intermediate data CIn to perform decryption and decoding operations to generate user data Dm.

[0101] Therefore, according to the exemplary embodiment, when using information (e.g., an address) related to programming operations on user data Dm as a seed Sα, only intermediate data CIn is stored in the memory device 100 during programming operations, while the seed Sα is excluded. This is feasible because, in the exemplary embodiment, it is not necessary to separately store the address provided by the host whenever a read operation is performed. This method can further reduce the amount of data that will be stored in the memory device 100.

[0102] Figure 8 This is a block diagram illustrating a storage device according to exemplary embodiments of the present disclosure. For ease of explanation, further descriptions of the processes, elements, and techniques previously described may be omitted, and the following description will focus on aspects relative to the foregoing references. Figures 1 to 5 The differences in description.

[0103] Reference Figure 8 In a storage device according to an exemplary embodiment of the present disclosure, a seed generator 250 generates a seed Sα based on plaintext data Xn.

[0104] The seed Sα may include at least one of, for example, an address (e.g., a page address) corresponding to plaintext data Xn, a timestamp, and metadata. The address corresponding to plaintext data Xn may be a logical address or a physical address. The timestamp corresponding to plaintext data Xn may be a timestamp indicating the time when plaintext data Xn was provided. In another pre-configured scheme, the timestamp may be a timestamp indicating the time elapsed after a predetermined time period from the time when plaintext data Xn was provided. The metadata corresponding to plaintext data Xn may represent the number of valid pages included in the memory block, the number of valid pages in the memory block, etc. However, the metadata corresponding to plaintext data Xn is not limited to this. The seed Sα may also include page addresses (e.g., logical addresses or physical addresses) and unique IDs of NAND flash memory that can be used independently or in combination.

[0105] Figure 9 This is a block diagram illustrating a storage device according to exemplary embodiments of the present disclosure. For ease of explanation, further descriptions of the processes, elements, and techniques previously described may be omitted, and the following description will focus on aspects relative to the foregoing references. Figures 1 to 5 The differences in description.

[0106] Reference Figure 9 In a storage device according to an exemplary embodiment of the present disclosure, the memory controller 200 includes an encoder 210, an encryptor 220, a seed generator 250, a random number generator 261, and an ECC engine 270.

[0107] ECC engine 270 performs an encoding operation on at least one of intermediate data CIn and seed Sα to generate parity data PB. For example, before storing seed Sα and intermediate data CIn in memory device 100, ECC engine 270 can use at least one of seed Sα and intermediate data CIn to generate parity data PB, and can store parity data PB in memory device 100. During a read operation, ECC engine 270 performs error correction on the data read using parity data PB (e.g., intermediate data CIn and / or seed Sα). Using parity data PB improves the reliability of intermediate data CIn and seed Sα, which in turn improves the reliability of user data Dm generated by decryption / decryption.

[0108] Figure 10 This is a diagram illustrating a cloud environment used by a cloud computing device according to exemplary embodiments of the present disclosure.

[0109] Reference Figure 10At least one edge computer (EC) 1100 and at least one cloud computing device (CS) 1200 can communicate with each other via network 1000. At least one edge computer 1100 can be a computer used, for example, in a distributed computing environment using network 1000.

[0110] Network 1000 may include both wired and wireless communication networks. Examples of wireless communication networks may include cellular communication networks using at least one of Long Term Evolution (LTE), LTE-A Advanced (LTE-A), Code Division Multiple Access (CDMA), Wideband CDMA (WCDMA), Universal Mobile Telecommunications System (UMTS), WiBro, and Global System for Mobile Communications (GSM). Examples of wireless communication networks may also include Wi-Fi, LiFi, Bluetooth, Bluetooth Low Energy (BLE), Zigbee, Near Field Communication (NFC), Magnetic Secure Transmission, Radio Frequency (RF), and Body Area Network (BAN). Examples of wireless communication networks may also include Global Navigation Satellite Systems (GNSS). However, wireless communication networks are not limited to these. Examples of GNSS may include Global Positioning System (GPS), Global Navigation Satellite System (GLONASS), BeiDou Navigation Satellite System (hereinafter referred to as "BeiDou"), and Galileo as a navigation system based on the European Global Satellite Navigation System. Examples of wired communication networks may include at least one of Universal Serial Bus (USB), High Definition Multimedia Interface (HDMI), RS-232 (Recommended Standard), Power Line Communication, Common Old Telephone Service (POTS), and computer networks (e.g., LAN or WAN). However, wired communication networks are not limited to these.

[0111] Edge computer 1100 is a computing device for user access to a network and can be any computing device with distributed processing capabilities in a distributed open architecture. Such edge computer 1100 is not limited to a specific device, and examples of edge computer 1100 may include at least one of smartphones, tablet PCs, mobile phones, video phones, e-book readers, desktop PCs, laptop PCs, netbooks, workstations, servers, personal digital assistants (PDAs), portable multimedia players (PMPs), MP3 players, medical devices, cameras, and wearable devices. However, such edge computer 1100 is not limited to these. Wearable devices may include at least one of accessory circuitry (e.g., watches, rings, bracelets, anklets, necklaces, glasses, contact lenses, or head-mounted devices (HMDs)), fabric-integrated circuitry (e.g., electronic clothing), body-attached circuitry (e.g., skin pads or tattoos), and implanted circuitry. However, wearable devices are not limited to these. In exemplary embodiments, examples of electronic devices may include televisions, digital video disc (DVD) players, audio players, refrigerators, air conditioners, vacuum cleaners, ovens, microwave ovens, washing machines, air purifiers, set-top boxes, home automation control panels, security control panels, and media boxes (e.g., Samsung HomeSync). TM Apple TV TM or Google TV TM ), game consoles (e.g., Xbox) TM or PlayStation TM Electronic devices include electronic dictionaries, electronic keys, cameras, and electronic photo frames. However, electronic devices are not limited to these.

[0112] Examples of electronic devices may also include medical devices, such as portable medical sensors (e.g., blood glucose meters, heart rate sensors, tonometers, and thermometers), magnetic resonance angiography (MRA) devices, magnetic resonance imaging (MRI) devices, computed tomography (CT) devices, cameras, and microwave scanners. Examples of electronic devices may also include navigation devices, Global Navigation Satellite Systems (GNSS), Event Data Recorders (EDR), Flight Data Recorders (FDR), automotive infotainment devices, marine electronic equipment (e.g., marine navigation systems and gyrocompasses), avionics, safety devices, automotive head units, industrial or household robots, drones, automated teller machines (ATMs) for financial institutions, point-of-sale (POS) terminals, and Internet of Things (IoT) devices (e.g., light bulbs, sensors, sprinkler systems, fire alarm systems, temperature controllers, streetlights, toasters, fitness equipment, hot water tanks, heaters, and boilers). Examples of electronic devices may also include furniture, building / construction components, vehicle parts, electronic boards, electronic signature receivers, projectors, and sensors (e.g., water meters, electricity meters, gas meters, and radio-controlled meters). In an exemplary embodiment, the electronic device may be flexible or a combination of at least two of the aforementioned devices.

[0113] The edge computer 1100 can autonomously collect / process data, which relatively reduces the amount of data that will be processed by the cloud computing device 1200. Therefore, the load on the cloud computing device 1200 can be reduced.

[0114] In the following text, reference will be made to Figures 11 to 13 This describes a method for reducing data sharing communication between the edge computer 1100 and the cloud computing device 1200, even in environments employing RLWE-based cryptographic techniques.

[0115] Figure 11 This is a diagram illustrating the authentication process between a cloud computing device and an edge computer according to an exemplary embodiment of the present disclosure. Figure 12 This is a diagram illustrating data sharing processing between a cloud computing device and an edge computer according to an exemplary embodiment of the present disclosure. Figure 13 This is a flowchart illustrating an operation method of a cloud computing apparatus according to an exemplary embodiment of the present disclosure.

[0116] Reference Figure 11In an exemplary embodiment, the edge computer 1100 and the cloud computing device 1200 confirm a random number generator (RNG) that can be used for authentication operations between the edge computer 1100 and the cloud computing device 1200. For example, the edge computer 1100 notifies the cloud computing device 1200 of the random number generator to be used by the edge computer 1100 before sharing data with the cloud computing device 1200. The cloud computing device 1200 may also specify / instruct the random number generator to be used by the edge computer 1100.

[0117] Reference Figure 12 In an exemplary embodiment, the edge computer 1100 does not provide user data Dm or RLWE-based encrypted data C2n to the cloud computing device 1200. Instead, the edge computer 1100 provides seed Sα and encrypted intermediate data CIn to the cloud computing device 1200.

[0118] Similar to the above references Figures 1 to 10 As described, edge computer 1100 generates a seed Sα using at least one of, for example, an address corresponding to user data Dm, a timestamp, and metadata, or plaintext data Xn. Edge computer 1100 generates a random value An based on seed Sα using a random number generator (e.g., a pseudo-random number generator). Edge computer 1100 generates plaintext data Xn by encoding user data Dm and encrypts plaintext data Xn using the random value An to generate encrypted intermediate data CIn.

[0119] Edge computer 1100 provides intermediate data CIn and seed Sα to cloud computing device 1200.

[0120] If the edge computer 1100 provides RLWE-based encrypted data C2n to the cloud computing device 1200, this increases the data sharing communication volume because the RLWE-based encrypted data C2n has a data length of 2n. On the other hand, in an exemplary embodiment of this disclosure, the edge computer 1100 provides intermediate data CIn and seed Sα to the cloud computing device 1200. Since the sum of the data lengths of the intermediate data CIn and seed Sα is n+α (α is a positive integer less than n), this reduces the data sharing communication volume.

[0121] like Figure 12 As shown, the cloud computing device 1200 may include a storage area 1210 and a controller 1220. The storage area 1210 stores intermediate data CIn and seed Sα provided by the edge computer 1100.

[0122] In the following text, reference will be made to Figure 12 and Figure 13The method of operating the cloud computing device 1200 is described when a request to operate on data stored in the cloud computing device 1200 is received from the edge computer 1100.

[0123] First, in operation S1010, controller 1220 reads seed Sα and intermediate data CIn from storage area 1210.

[0124] In operation S1020, controller 1220 generates a random value An using the read seed Sα. Here, cloud computing device 1200 confirms the random number generator (e.g., a pseudo-random number generator) used by edge computer 1100 through an authentication process between edge computer 1100 and cloud computing device 1200. Therefore, controller 1220 generates a random value An with the aid of the confirmed random number generator.

[0125] Because the cloud computing device 1200 uses the same random number generator (e.g., a pseudo-random number generator) as the edge computer 1100, the random value An generated by the cloud computing device 1200 is the same as the random value An generated by the edge computer 1100.

[0126] Next, in operation S1030, controller 1220 uses the generated random value An and the read intermediate data CIn to generate ciphertext data C2n based on RLWE.

[0127] As mentioned above, the random value An, the intermediate data CIn, and the ciphertext data C2n satisfy the following relational equation:

[0128] C2n=(An,CIn)=(An,Bn+Xn).

[0129] Next, in operation S1040, controller 1220 performs the requested operation based on the encrypted data C2n to output the operation result.

[0130] For example, because the RLWE-based ciphertext data C2n is homomorphically encrypted, it can be manipulated, searched, or statistically processed even without being decrypted. Therefore, operations requested by the edge computer 1100 can be performed without decrypting the ciphertext data C2n. The results of the operations obtained without decryption can be provided to the edge computer 1100. The edge computer 1100 can use the received operation results to perform decryption / decryption. This process improves security during data sharing between the edge computer 1100 and the cloud computing device 1200. In an exemplary embodiment, the length of the RLWE-based ciphertext data C2n is twice the length of the random value An or the length of the intermediate data CIn.

[0131] As is conventional in the field of this disclosure, blocks, units, and / or modules are described, and exemplary embodiments are shown in the accompanying drawings. Those skilled in the art will understand that these blocks, units, and / or modules are physically implemented using electronic (or optical) circuits (such as logic circuits, discrete components, microprocessors, hardwired circuits, memory elements, and wiring connections, etc.) formed using semiconductor-based manufacturing techniques or other manufacturing techniques. When blocks, units, and / or modules are implemented using microprocessors or the like, they can be programmed with software (e.g., microcode) to perform the various functions discussed herein, and can be optionally driven by firmware and / or software. Optionally, each block, unit, and / or module can be implemented using dedicated hardware, or can be implemented as a combination of dedicated hardware performing some functions and a processor (e.g., one or more programmed microprocessors and associated circuitry) performing other functions.

[0132] Although this disclosure has been specifically shown and described with reference to exemplary embodiments thereof, those skilled in the art will understand that various changes in form and detail may be made therein without departing from the spirit and scope of this disclosure as defined by the claims.

Claims

1. A method for operating a memory controller, the method comprising: Use a seed to generate random values; Encrypted intermediate data is generated by encrypting plaintext data using random values; as well as The seed and intermediate data are stored in a memory device. Among them, ciphertext data is generated using seeds and intermediate data based on on-ring error learning; After storing the seed and intermediate data in a memory device: the seed and intermediate data are read from the memory device; a random value is regenerated using the read seed; ciphertext data based on on-ring error learning is generated using the regenerated random value and the read intermediate data; and plaintext data is generated by decrypting the generated ciphertext data. The seed data length is shorter than the intermediate data length.

2. The operating method according to claim 1, wherein, The seed includes at least one of the address, timestamp, and metadata corresponding to the plaintext data.

3. The operating method according to claim 1, wherein, The seed includes at least one of the page address of the NAND flash memory and a unique ID.

4. The operating method according to claim 1, further comprising: Encode user data. The plaintext data is generated using user data, and the seed includes at least one of the address, timestamp, and metadata corresponding to the user data.

5. The operating method according to claim 1, wherein, Plaintext data, random values, and intermediate data are all of equal length.

6. The method of operation according to claim 1, further comprising, before storing the seed and intermediate data in the memory device: Parity data is generated using at least one of the seed and intermediate data; and Parity data is stored in a memory device.

7. The operating method according to any one of claims 1 to 6, wherein, Use pseudo-random number generator to generate random values.

8. A method of operating a memory controller, the method comprising: Use a seed to generate random values, where the seed is the address corresponding to user data or plaintext data obtained by encoding user data; Encrypted intermediate data is generated by encrypting plaintext data using random values; and Intermediate data is stored in the region corresponding to the address in the memory device. in, Seeds are not stored in a memory device; and After storing intermediate data in a memory device: receiving a command instruction to read the intermediate data stored in the region corresponding to the address; reading the intermediate data stored in the region corresponding to the address from the memory device; regenerating a random value using the address as a seed; and generating plaintext data by performing a decryption operation using the regenerated random value and the read intermediate data. The step of generating plaintext data by performing decryption using regenerated random values ​​and read intermediate data includes: generating ciphertext data based on on-ring error learning using regenerated random values ​​and read intermediate data, and decrypting the generated ciphertext data based on on-ring error learning to generate plaintext data.

9. The operating method according to claim 8, wherein, Plaintext data, random values, and intermediate data are all of equal length.

10. The operating method according to claim 8, wherein, Use pseudo-random number generator to generate random values.

Citation Information

Patent Citations

  • Coin input

    KR1020200051439A

  • Encryption and similarity measurement method, terminal and server

    CN105447361A

  • Encryption method for error learning problem in ring domain and circuit

    CN106685663A