Differential noise for long-term privacy and short-term privacy protection

By introducing first noise and second noise into the computing device to blur short-term and long-term trends respectively, the problem that differential privacy in the prior art cannot effectively protect long-term and short-term trends is solved, and comprehensive protection of user privacy is achieved.

CN122249811APending Publication Date: 2026-06-19QUALCOMM INC

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
QUALCOMM INC
Filing Date
2024-11-20
Publication Date
2026-06-19

AI Technical Summary

Technical Problem

While existing technologies protect user privacy, differential privacy cannot effectively protect users' long-term and short-term trends in long-term analysis, and sharing information may lead to privacy leaks.

Method used

By introducing a first noise and a second noise into the computing device, respectively, short-term and long-term trends are blurred. The first noise is random noise, and the second noise is fixed or autocorrelation noise based on population statistics, ensuring that both short-term and long-term trends are protected.

Benefits of technology

It effectively protects user privacy in both the long and short term, prevents information from being identified, and ensures that personal information is not leaked during multiple queries.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122249811A_ABST
    Figure CN122249811A_ABST
Patent Text Reader

Abstract

This invention discloses systems, apparatus, processes, and computer-readable media for protecting sensitive information with differential noise for both long-term and short-term privacy. For example, a computing device or system can detect multiple events associated with the functionality of the computing device over a period of time. The computing device can determine a first noise associated with the multiple events over the period of time. The computing device can add a first noise and a second noise to values ​​corresponding to the multiple events. The computing device can transmit a noisy report identifying the use of a function to a device-use service, the noisy report including values ​​with the first noise and the second noise.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates in its entirety to electronic devices and the use of features at the electronic device. For example, aspects of this disclosure relate to systems and techniques for adding differential noise to data for long-term and short-term privacy protection. Background Technology

[0002] Multimedia systems are widely deployed to provide various types of multimedia communication content, such as voice, video, packet data, messaging, and broadcasting. These multimedia systems are capable of processing, storing, generating, manipulating, and reproducing multimedia information. Examples of multimedia systems include mobile devices, gaming devices, entertainment systems, information systems, virtual reality systems, models, and simulation systems. These systems can employ a combination of hardware and software technologies to support the processing, storage, generation, manipulation, and reproduction of multimedia information, such as client devices, capture devices, storage devices, communication networks, computer systems, and display devices. Summary of the Invention

[0003] In some examples, systems and techniques for using features on electronic devices and at electronic devices are described. For example, systems and techniques can be used to protect sensitive information by using differential noise for both long-term and short-term privacy.

[0004] According to at least one example, a method for reporting the use of a computing device includes: detecting multiple events associated with a function of the computing device over a period of time; determining a first noise associated with the multiple events over the period of time; adding the first noise and a second noise to values ​​corresponding to the multiple events; and transmitting a noisy report identifying the use of the function to a device use service, the noisy report including values ​​with the first noise and the second noise.

[0005] In another example, an apparatus for reporting the use of a computing device is provided, the apparatus including a memory and a processor (e.g., implemented in a circuit), the processor being coupled to the memory and configured to: detect a plurality of events associated with a function of the computing device over a period of time; determine a first noise associated with the plurality of events over the period of time; add the first noise and a second noise to values ​​corresponding to the plurality of events; and transmit a noisy report identifying the use of the function to a device use service, the noisy report including values ​​having the first noise and the second noise.

[0006] In another example, a non-transitory computer-readable medium is provided having instructions stored thereon, which, when executed by one or more processors, cause the one or more processors to: detect a plurality of events associated with a function of a computing device over a period of time; determine a first noise associated with the plurality of events over the period of time; add the first noise and a second noise to values ​​corresponding to the plurality of events; and transmit a noisy report identifying the use of the function to a device use service, the noisy report including values ​​having the first noise and the second noise.

[0007] In another example, an apparatus is provided comprising: components for detecting a plurality of events associated with a function of a computing device over a period of time; components for determining a first noise associated with the plurality of events over the period of time; components for adding the first noise and a second noise to values ​​corresponding to the plurality of events; and components for transmitting a noisy report identifying the use of a function to a device use service, the noisy report including values ​​having the first noise and the second noise.

[0008] In another example, a method is provided that includes: receiving a first plurality of reports from a plurality of computing devices, wherein the first plurality of reports includes values ​​identifying the use of a function at the corresponding computing device in combination with a first random noise value generated at the corresponding computing device; generating a first noise distribution based on the first plurality of reports; transmitting the first noise distribution to the plurality of computing devices; and receiving a second plurality of reports from the plurality of computing devices, wherein the second plurality of reports includes values ​​identifying the use of a function at the corresponding computing device in combination with a second random noise value generated at the corresponding computing device based on the first noise distribution.

[0009] In another example, an apparatus is provided including a memory and a processor (e.g., implemented in a circuit), the processor being coupled to the memory and configured to: receive a first plurality of reports from a plurality of computing devices, wherein the first plurality of reports include values ​​identifying the use of a function at the corresponding computing device in combination with a first random noise value generated at the corresponding computing device; generate a first noise distribution based on the first plurality of reports; transmit the first noise distribution to the plurality of computing devices; and receive a second plurality of reports from the plurality of computing devices, wherein the second plurality of reports include values ​​identifying the use of a function at the corresponding computing device in combination with a second random noise value generated at the corresponding computing device based on the first noise distribution.

[0010] In another example, a non-transitory computer-readable medium having instructions stored thereon is provided, which, when executed by one or more processors, cause the one or more processors to: receive a first plurality of reports from a plurality of computing devices, wherein the first plurality of reports includes values ​​identifying the use of a function at the corresponding computing device in combination with a first random noise value generated at the corresponding computing device; generate a first noise distribution based on the first plurality of reports; transmit the first noise distribution to the plurality of computing devices; and receive a second plurality of reports from the plurality of computing devices, wherein the second plurality of reports includes values ​​identifying the use of a function at the corresponding computing device in combination with a second random noise value generated at the corresponding computing device based on the first noise distribution.

[0011] In another example, an apparatus is provided, comprising: means for receiving a first plurality of reports from a plurality of computing devices, wherein the first plurality of reports include values ​​indicating the use of a function at a corresponding computing device in combination with a first random noise value generated at the corresponding computing device; means for generating a first noise distribution based on the first plurality of reports; means for transmitting the first noise distribution to the plurality of computing devices; and means for receiving a second plurality of reports from the plurality of computing devices, wherein the second plurality of reports include values ​​indicating the use of a function at the corresponding computing device in combination with a second random noise value generated at the corresponding computing device based on the first noise distribution.

[0012] In some aspects, one or more of the devices described herein are, are part of, and / or include the following devices: wearable devices, wireless communication devices, mobile devices (e.g., mobile phones and / or mobile cell phones and / or so-called "smartphones" or other mobile devices), extended reality (XR) devices (e.g., virtual reality (VR) devices, augmented reality (AR) devices, or mixed reality (MR) devices, such as head-mounted displays (HMD) devices), vehicles or computing devices, systems or components of vehicles, cameras, personal computers, laptop computers, server computers, televisions (e.g., network-connected televisions), other devices, or combinations thereof. In some aspects, the device includes one or more cameras for capturing one or more images. In some aspects, the device also includes a display for displaying one or more images, notifications, and / or other displayable data. In some aspects, the device described above may include one or more sensors (e.g., one or more inertial measurement units (IMUs) (such as one or more gyroscopes, one or more gyroscope and / or gyroscope testers, one or more accelerometers, any combination thereof) and / or other sensors).

[0013] This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to be used in isolation to define the scope of the claimed subject matter. This subject matter should be understood with reference to the appropriate portions of the entire specification, any or all drawings, and each claim.

[0014] Based on the accompanying drawings and detailed description, other objects and advantages associated with the aspects disclosed herein will be apparent to those skilled in the art. Attached Figure Description

[0015] Examples of specific implementations are described in detail below with reference to the accompanying figures: Figure 1 This is a block diagram of an example system-on-chip (SoC) based on some aspects of this disclosure; Figure 2A Examples of differential privacy imposed on information usage over a short period of time, according to some aspects of this disclosure, are illustrated; Figure 2B Examples of differential privacy imposed on information usage over a long period of time according to some aspects of this disclosure are illustrated; Figure 2C Another example illustrates differential privacy imposed on information usage over a short period of time, according to some aspects of this disclosure; Figure 3 This is a conceptual diagram of a privacy generation system for protecting long-term and short-term privacy, based on some aspects of this disclosure; Figure 4 This is a conceptual example of generating a population-based statistical system for population noise distribution, based on some aspects of this disclosure; Figure 5 This is an example of a timeline of the generation and distribution of crowd-based noise distribution for the protection of use information, according to some aspects of this disclosure; Figure 6 This is a conceptual illustration of a sample of use information based on some aspects of this disclosure, which is modified with different types of noise (e.g., first noise and second noise) to generate protected use information; Figure 7 This is a conceptual illustration of another technique for generating noise (secondary noise) associated with population distribution, based on some aspects of this disclosure; Figure 8 These are example methods for protecting privacy in long-duration trends and short-duration trends, according to various aspects of this disclosure; Figure 9 This is a flowchart illustrating an example method for generating a noise distribution according to various aspects of this disclosure, the method being used to generate a noise distribution (second noise) for long-term privacy and short-term privacy; and Figure 10 This is a diagram illustrating an example of a system used to implement some of the aspects described in this article. Detailed Implementation

[0016] Certain aspects and embodiments of this disclosure are provided below. Some of these aspects and embodiments may be applied independently, and some may be combined, as will be apparent to those skilled in the art. Specific details are set forth in the following description for purposes of explanation in order to provide a thorough understanding of the various embodiments of this application. However, it will be apparent, however, that the various embodiments may be practiced without these specific details. The accompanying drawings and descriptions are not intended to be limiting.

[0017] The following description provides only exemplary embodiments and is not intended to limit the scope, applicability, or configuration of this disclosure. Rather, the subsequent description of exemplary embodiments will provide those skilled in the art with enabling descriptions for implementing the exemplary embodiments. It should be understood that various changes may be made to the function and arrangement of the elements without departing from the spirit and scope of this application as set forth in the appended claims.

[0018] Electronic devices, including mobile devices, have become an integral part of modern life, serving as versatile tools for communication, entertainment, and productivity. Electronic devices combine multiple functions to perform a combination of general and / or specific functions. In this context, a specific function is an operation specifically configured for which the electronic device is used, such as a mobile device configured to perform voice communication. Another example of a specific function is a digital media player configured to display multimedia content via a display statically positioned in a person's home. General functions are combined into electronic devices to complement specific functions. For example, extended reality (XR) devices may include various wireless connectivity options for connecting wireless sensors to the XR device.

[0019] Designing electronic products involves many factors. Because technology has changed how users interact with their devices, predicting device usage is difficult. Device manufacturers are interested in collecting usage information from their products for a variety of reasons. Usage information data provides crucial insights into how users interact with their devices. By analyzing usage information and identifying usage patterns, device manufacturers can identify popular features, underutilized features, and potential usability issues in their devices. Feedback from usage information allows device manufacturers to make informed decisions for future iterations and to deliver devices that better meet customer needs and preferences.

[0020] Device manufacturers can use usage information to optimize performance and reliability. For example, usage information can be mapped to identify the utilization of available features within a device or its components, such as a System-on-a-Chip (SoC). An SoC integrates different processing cores, such as a graphics processing unit (GPU), a digital signal processor (DSP), a neural network processing unit (NNPU), and a video decoder. SoCs can integrate different components based on the device manufacturer's intended functionality. For example, a network hardware manufacturer may include a network processing unit (NPU) for processing network packets at the hardware level. Usage information can be used to identify the importance of processing power and how users interact with different functions of their devices. This allows device manufacturers to prioritize different components based on the usage of their devices. Device manufacturers can also analyze usage information to detect potential minor glitches, software defects, or hardware weaknesses. Usage information is also helpful to device manufacturers, such as prioritizing power consumption and optimizing features and functions.

[0021] Sharing information can raise concerns related to privacy, security, and the potential misuse of personal data. For example, users are cautious about sharing sensitive details about their habits and behaviors and may want to keep their usage data (e.g., how and when they use their devices, how and when they consume data, etc.) private. Furthermore, data breaches are common and can expose private information. Fears that their data might fall into the wrong hands and be used for malicious purposes (such as identity theft) create a substantial barrier to the free sharing of information. Awareness of surveillance and data tracking practices has fueled expectations of greater control over personal information and is increasingly making users resistant to contributing usage data to device manufacturers.

[0022] Differential privacy is a technique used to share aggregated information derived from sensitive datasets while protecting sensitive user information and specific details of individuals within that data. Differential privacy introduces noise or other randomness into the information and prevents any single data point from unduly influencing the results. However, if used simply, differential privacy may not protect all data, and usage information may still be potentially identified when the data is queried multiple times. For example, when user data is available over long periods (e.g., time-series data), differential privacy protects short-term information by introducing randomness, but the noise can be eliminated in long-term analysis, revealing long-term user activity patterns.

[0023] This document describes systems, apparatuses, processes (also referred to as methods), and computer-readable media (collectively, "systems and techniques") that add differential noise to data for long-term and short-term privacy. For example, the systems and techniques may detect multiple events associated with the functionality of a computing device over a period of time. These multiple events correspond to usage information and can be used to identify short-term and long-term trends in the user. The computing device may add a first noise and a second noise to values ​​corresponding to the multiple events. The first noise may be associated with a first noise distribution, and the second noise may be associated with a second noise distribution. The first and second noise distributions should be independent of each other and are configured to obscure the long-term and short-term trends in the usage information.

[0024] In some aspects, the system and technology utilize a first noise source as the source of first noise (e.g., a first noise distribution) applied to the usage information or data, and utilize a second noise source as the source of second noise (e.g., a second noise distribution) applied to the usage information or data. For example, whenever a new sample is reported from the usage counter, the first noise source can generate a new random variable. In this sense, the random variable generated from the first noise source is uncorrelated with other samples generated from the first noise source. For example, the first noise source can independently generate different random numbers, and therefore at each instance reported by the usage counter, the noise is uncorrelated noise.

[0025] The first noise source protects against short-term trends in user behavior patterns. For example, if a user captures four pictures per day, but takes twenty pictures on a particular day, the added noise from the first noise source will protect the detection of this short-term behavioral shift.

[0026] A second noise source is configured to generate a second noise that is also applied to the usage information. This second noise can be generated randomly and persist over a relatively long period. For example, in addition to the initialization interval (e.g., ...), Figure 5 Apart from the first interval 510 illustrated herein, the second noise source may always generate the same number, which is randomly generated after the initial interval, and thereafter the noise may remain fixed or unchanged for a long period of time (e.g., the entire duration of data collection from the device). In some aspects, other variations of the second noise source may exist. For example, instead of generating the same number and using it for a long period of time, the second noise source may generate a series of random numbers that may be autocorrelated (e.g., highly autocorrelated).

[0027] When viewed from the perspective of data generated over time by a single user device, the second noise source is therefore highly correlated. However, when observed across multiple different user devices, the second noise generated by the second noise source will be uncorrelated (because the second noise source at different user devices is a substantially independent random number generator running on different user devices), and the generated random numbers cannot be shared outside of a single device (e.g., in some cases, they are never shared).

[0028] Secondary noise protects user equipment from long-term trends. For example, if a user takes twenty pictures per day, which differs from the median usage of a group of users (e.g., the median usage of that group is five pictures per day), the difference in usage between the user and the group will be protected because there is a reasonable excuse introduced by the secondary noise source (e.g., it is the contribution from the secondary noise source that causes the reported data from the user equipment to be higher than the median). In some respects, the secondary noise source generates random variables that simulate the behavior of the crowd and can generate simulations at initial intervals (e.g., Figure 5 The random variable representing the behavior of the population distribution after learning during the first interval (510) illustrated in the figure.

[0029] Additional aspects of this disclosure are described in more detail below.

[0030] Figure 1 This is a block diagram of an example SoC 100 according to some aspects of this disclosure. In some aspects, the SoC 100 is a semiconductor device that is manufactured and configured to include various components to integrate functions within the SoC, thereby reducing latency associated with external interfaces and other barriers. For example, high-bandwidth video functions such as augmented reality and virtual reality can exceed the bandwidth of a double data rate (DDR) bus.

[0031] In one aspect, the SoC 100 may include at least one central processing unit (CPU) 110 or processing core configured to execute software instructions. In some aspects, the CPU 110 includes multiple processing cores that can be configured to perform functions in parallel, and these processing cores may have different configurations. For example, the CPU 110 may include multiple performance cores for low-latency functions and multiple efficiency cores that consume less power than the performance cores.

[0032] The SoC 100 may also include one or more Accelerated Processing Units (APUs) 120 configured to perform specific functions, such as floating-point mathematics. Non-limiting examples of APU functionality include DSPs for floating-point mathematical operations, networking processing units, and other devices. The NPU can be programmed using a protocol-agnostic packet processor (P4) language, a domain-specific programming language used by network devices to process packets. For example, the network processing unit may be implemented in the SoC of a network hardware device. In some aspects, the network processing unit in the APU may have a distributed P4 NPU architecture that can execute at line rates for small packets with complex processing, and may also include optimized and shared NPU alternative tables.

[0033] In some aspects, the SoC 100 may also include programmable logic devices such as the NNPU 130. In some cases, the NNPU 130 may be integrated with the APU 120. In this case, the NNPU 130 is exemplified as being separate from the APU 120 due to bus bandwidth limitations. For example, memory operations of the NNPU 130 may be slowed down based on sharing a bus interface with other components. The NNPU 130 can be configured to prioritize matrix and floating-point operations associated with neural network operations. For example, training a neural network may require numerous operations across billions of different parameters in some cases to identify local minima and reduce loss.

[0034] In some respects, the SoC 100 may also include volatile memory, such as random access memory (RAM) 140 shared among various components, such as CPU 110, APU 120, NNPU 130, etc. For example, the GPU (e.g., implemented in APU 120), CPU 110, and NNPU 130 may share access to RAM 140.

[0035] SoC 100 may also include a secure enclave 150, such as a Trusted Platform Module (TPM) or Trusted Anchor Module (TAM), configured to protect SoC 100 and identify any malicious issues. The secure enclave may include cryptographic generation functionality, a true random number generator, secure storage media, etc. In some cases, SoC 100 may also be configured to interface with a security subsystem (not shown), such as a security module configured to securely store information unavailable to SoC 100. In one aspect, the security subsystem may securely store biometric information to enable various functions such as biometric authentication.

[0036] SoC 100 also includes a texture 160 configured to facilitate internal and external interfacing of components of SoC 100. For example, texture 160 may include the functionality to allocate RAM 140 among various shared components within SoC 100. SoC 100 may use buses to interconnect various components, enabling access to various components, such as allowing CPU 110 to address portions of RAM 140. In some aspects, texture 160 may also interface with external components such as security subsystems, various bus interfaces (e.g., Peripheral Component Interconnect High Speed ​​(PCI-e), Thunderbolt interface, Universal Serial Bus, communication circuitry for wireless communication, Ethernet networking modules, etc.).

[0037] In some cases, the SoC may also include a video decoder 170 for decoding one or more video formats (e.g., H.264, H.265, etc.). In this case, the video decoder 170 is configured to receive video files and perform various functions to decompress, decode, and generate multiple video frames to be output from the SoC 100. The video decoder 170 is hardware circuitry and implements video decoding associated with one or more video formats (e.g., H.264, H.265, etc.), converting each compressed frame of the video to an uncompressed frame with minimal loss. Compared to software-based decoding, hardware decoding requires less power and memory due to additional operations on decoding instructions, various memory operations for storing frames and pixels, etc. For example, the video decoder 170 may not need to store the decoded frames in memory and may include hardware buffers for storing the decoded frames and outputting them at the correct time, without requiring any additional operations from the hardware processor.

[0038] In some respects, a device can be configured to provide device manufacturers with usage information about the device or its components (e.g., SoC100). For example, as noted above, an SoC may have different processing cores with different functions, and each core consumes space. Space within the SoC is limited, and device manufacturers can use usage information to determine long-term trends related to SoC utilization. For instance, advancements in generative neural networks for creating various types of text and media are becoming increasingly prevalent, and NNPU processing cores are being utilized at a higher rate. As neural network utilization increases, device manufacturers can prioritize allocating space to the NNPU rather than other processing cores. Usage information can provide device manufacturers with objective information for improving user experience.

[0039] Figure 2AExamples of differential privacy imposed on usage information over short-term periods according to some aspects of this disclosure are illustrated. In some aspects, usage information is any information associated with the use of a computing device that can be used to identify relevant information including long-term and short-term trends associated with the user. In other aspects, differential privacy can also be imposed on other types of information, such as sensitive user information. As noted above, differential privacy introduces noise or other randomness into usage information and prevents any single data point from unduly influencing the outcome. Some aspects described herein relate to local differential privacy or hybrid differential privacy. Local differential privacy involves imposing noise on local data at the user device before providing that noise to services that use the usage information for various purposes (e.g., usage servers). Hybrid differential privacy involves imposing noise on the usage information at both the user device and the usage service. Local and hybrid differential privacy differ from differential privacy techniques that impose noise on usage information at query time because, in the event of data leakage to malicious actors, the usage information is altered by at least one noise, and the true value of the trend cannot be discerned.

[0040] In some respects, usage information includes any relevant metrics associated with the device's functionality over a period of time (e.g., intervals). For example, usage information might be related to the amount of time spent playing a specific game on a mobile device each day (e.g., 30 minutes per day). In another example, usage information could be related to the time spent playing a digital media player (e.g., Apple TV). ® This includes the length of time spent watching videos at various locations, the length of time a user listens to audio from a smart speaker, the number of images captured by the camera, and so on. In some cases, usage information may be related to the number of times the SoC's processing cores are used. For example, the value associated with the NNPU increments each time an operation is performed. In other cases, usage information may include usage per unit time (e.g., 3 minutes per hour or 0.05% per hour), power consumption per unit time, etc.

[0041] A short period of time is relative to a unit of time associated with the use of information. Figure 2A In the examples illustrated, the time unit for information usage corresponds to a 24-hour interval, and represents information usage over a 10-day period. In some respects, short-term trends are associated with anomalous behavior of computing devices. For example, when a person goes on vacation, the number of images captured by the computing device may increase compared to normal behavior.

[0042] Long-term timeframes represent normal behavior and can identify habits associated with a person. For example, average behavior can be used to identify normal behavioral patterns, such as the average time spent playing games, watching multimedia, or engaging in social media.

[0043] In some respects, usage information can be transformed into protected usage information by adding noise. Differential privacy uses a random number generator (RNG) (such as the RNG in a TPM module) or some other device-independent component to generate truly random numbers. In some respects, usage information is modified to introduce artifacts (e.g., noise represented by random numbers) to obscure the actual behavior of the user on the computing device. In one case, truly random numbers can be scaled by introducing randomness as a factor into the usage information. For example, usage information could be correlated with the length of time a user is playing a game (e.g., duration). In this example, truly random numbers should have a sufficient scale to have a meaningful effect on the length of the time period in order to obscure the actual time. In the case of gaming, truly random numbers could have a range from -2 hours to +2 hours.

[0044] Add real random numbers to the usage information to generate protected usage information. For example, in Figure 2A In this context, protected usage information 202 for the first person, 204 for the second person, and 206 for the third person are generated within a short period. For example... Figure 2A As shown, because random noise is introduced into each individual data point, it is impossible to identify meaningful information or trends for the first, second, or third person.

[0045] Figure 2B An example of differential privacy applied to usage information over a long period of time according to some aspects of this disclosure is illustrated. In this case, protected usage information 212 for the first person, 214 for the second person, and 216 for the third person are generated based on running averages, and these protected usage information are smoothed. In this case, genuine randomness cancels out over time, and the average usage of the function can be easily identified. Regarding games, the first and second persons play a specific game for approximately 20 minutes per day over a 10-month period, and the third person plays the specific game for approximately 40 minutes per day. After approximately 5 months, the third person begins to reduce their game consumption.

[0046] The user's actual usage information is provided by T a Indicated, and composed of random noise ε i Modify to produce the privacy information T in Equation 1 below. r .

[0047] (Equation 1)

[0048] However, the long-term usage information collected daily over a period of time is represented by Equation 2 below.

[0049] (Equation 2)

[0050] In this case, the noise comes from random variables with the same distribution (e.g., RNG in a computing device), and it is random noise. ε i The sum converges to the mean of the noise distribution, which for zero-mean noise yields Equation 3. For non-zero-mean noise, the mean can be subtracted, since the mean is readily known given Equation 3.

[0051] (Equation 3)

[0052] In this context, differential privacy will allow for ambiguity in usage information and protect short-term privacy, but it will not prevent the identification of long-term time-varying terms or normal behavior. For example, differential privacy protects the identification of normal daily information, such as the amount of time an individual spends watching media. However, differential privacy does not protect the identification of trends based on statistical analysis of protected usage information. In this case, when random noise is applied to each instance of usage information, the average value of the usage information can be easily identified, such as... Figure 2B exemplified.

[0053] Figure 2C This illustrates another example of differential privacy imposed on usage information over a long period of time, according to some aspects of this disclosure. In some cases, another potential technique is to impose fixed or static noise on the usage information. For example, Figure 2C An example is illustrated where static noise is added to each instance of the usage information to disambiguate the long-term. This technique causes the mean to be shifted by random noise, such as... Figure 2A As shown.

[0054] In this scenario, protected usage information 232 for the first user, protected usage information 234 for the second user, and protected usage information 236 for the third user are generated based on a fixed noise applied to each sample of the usage data (e.g., fixed for a single user but random relative to other users). Figure 2C In the scenario described, the same fixed noise is added to each piece of usage information over a long period to obscure the user's median trend. In this case, the mean may become indistinguishable because each value is shifted by the same noise, which can be positive or negative.

[0055] like Figure 2C As shown, this is based on using fixed noise to protect long-term trend information. The fixed noise is unknown, and the true value of the information cannot be discerned. However, by adding the same fixed noise every day, deviations from the average daily trend are easily identifiable, and short-term trends can be easily identified.

[0056] In some respects, usage information can also be protected based on the application of two different noises with independent noise distributions. Non-limiting examples of two different noises include the selection of random noise distributions and weighted random variables.

[0057] Random noise distribution selection, also known as coin-toss-based selection, involves randomly choosing two different noises. For example, random noise distribution selection can include stationary noise and dynamic noise. Stationary noise is a single, unchanging random noise L. p Furthermore, the dynamic noise is a dynamic random noise L that changes with each selection. vi For example, this can be achieved by adding the first noise L p Add to usage information or add dynamic random noise L vi Add to the usage information by randomly selecting one to protect the usage information. Below is... Figure 3 The privacy generation system 300 further discusses weighted random variables.

[0058] Figure 3 This is a conceptual diagram of a privacy generation system 300 for protecting long-term and short-term privacy, based on some aspects of this disclosure. In some aspects, the privacy generation system 300 is integrated with a computing device (e.g., including...). Figure 10 The computing system 1000 includes a counter 310 and a noise generator 320. The computing system can be integrated into various electronic devices, such as mobile phones, digital watches, digital media players, computers, tablets, XR headsets, mainframes of motor vehicles, electric bicycles, etc.

[0059] Usage counter 310 is configured to receive events (e.g., for creating various usage counters or other metrics) from various sources in the computing system and generate usage information, which is sensitive user information. Non-limiting examples of events include using generative AI or other ML components that use specific hardware resources as part of an application, capturing images, using multimedia filters in applications (e.g., audio, video), etc. Usage information represents the use of a device's functionality and is associated with a duration. The duration can vary depending on the purpose for which usage information is collected. For example, a device manufacturer might want to collect information related to an application to ensure that the application has not been compromised, to identify the performance of new features using neural networks, usage information related to wireless network performance, etc. In some cases, application usage information can be more granular, and the time unit is one minute. For usage information related to functions such as cameras, usage information can be at 24-hour intervals. Usage counter 310 is configured to output usage information 312 to noise generator 320 for inserting noise that ambiguates short-term and long-term trends.

[0060] Noise generator 320 includes a first noise distribution 322 and a second noise distribution 324. In some aspects, noise generator 320 is configured to generate first noise from the first noise distribution 322 and second noise from the second noise distribution 324, and to apply the first and second noises to usage information. In some cases, noise generator 320 may include a first noise source configured to generate the first noise distribution 322 and a second noise source configured to generate the second noise distribution 324. The first noise distribution 322 is random noise and is configured to disambiguate short-term trends based on the user's individual device. For example, whenever a new sample is reported from usage counter 310, noise generator 320 (e.g., the first noise source) may generate a new random variable. The random variable generated from noise generator 320 is unrelated to other samples generated from noise generator 320. The second noise distribution 324 is noise associated with a population distribution, and is configured to disambiguate long-term trends based on population statistics. The second noise distribution 324 may be configured based on population statistics determined by a server receiving usage data. For example, noise generator 320 (e.g., a second noise source) can randomly generate a second noise distribution that can persist for a long duration. In one example, besides the initialization interval (e.g., Figure 5 Apart from the first interval 510 illustrated herein, the noise generator 320 (e.g., a second noise source) may always generate the same number, which is randomly generated after the initialization interval. After the initialization interval, the noise may remain fixed or constant for a long period of time (e.g., the entire duration of data collection from the device). In some aspects, instead of generating the same number and using it for a long period of time, the second noise source may generate a series of random numbers that may be autocorrelated (e.g., highly autocorrelated).

[0061] In some aspects, using two independent noise distributions introduces variation in two dimensions and protects the privacy of short-term and long-term trends. As previously mentioned, the second noise distribution is configured to represent statistics of a population distribution (e.g., the entire group of user devices). For example, a random number generator on an individual device can use information related to user devices in the population distribution and can generate noise based on the dynamic behavior of user devices in the population. In some aspects, the first noise is configured to represent statistics of an individual device. The first and second noises should not be correlated, which allows the noise to ambiguously represent short-term and long-term trends and prevents individual identification information and trend discernibility.

[0062] The noise generator 320 adds a first noise from the first noise distribution 322 and a second noise from the second noise distribution 324, and outputs protected usage information.

[0063] In this case, the noise generator 320 is configured to add weighted random variables that are unrelated to each other, and the noise can be represented by Equation 4 below.

[0064] (Equation 4)

[0065] L p L represents the Laplace random variable corresponding to the user's second noise. vi Let λ represent the first noise generated for each piece of usage information, and λ be the weighting factor. In this case, using Equations 1 and 4, the average value of the usage information for a given user over the long run is represented by Equation 5 below.

[0066] (Equation 5)

[0067] In equation 5, T a It is the actual average value of the information used, and μ is the value of the second noise L. vi The mean of the associated Laplace distribution. The standard deviation σ using the noise generator 320 is shown in Equation 6.

[0068] (Equation 6)

[0069] Equations 5 and 6 show the noise generator 320, with an average value having T a The standard deviation is a random variable with a mean of +(1-λ)μ, and the standard deviation corresponds to the weighted sum of the two standard deviations. In some respects, to ensure that the long-term trend of any user is protected and that two users are indistinguishable from each other, the standard deviation should be large and on the same order of magnitude as the standard deviation of the entire population.

[0070] Figure 4 This is a conceptual illustration of a crowd noise distribution system 400 for generating crowd-based statistics, based on some aspects of this disclosure. In some aspects, the crowd noise distribution system 400 is configured to receive protected user information (e.g., usage information combined with noise) and generate a crowd noise distribution.

[0071] The crowd noise distribution system 400 includes an aggregation engine 410 configured to combine protected usage information for each user into an aggregated dataset. The aggregated dataset represents the aggregated usage of features across all users of the electronic device. For example, the aggregated dataset might represent the mean, median, and variance of the number of all images captured by all users within a day. The aggregation engine 410 can be configured to generate complex datasets over a period of time and can be configured to apply various techniques to improve the quality of the aggregated dataset. For example, the aggregation engine 410 might apply a sliding window averaging based on detectable inflection points (e.g., due to a new feature or application release).

[0072] An aggregated dataset is provided to a statistical engine 420, which calculates the crowd noise distribution (also referred to herein as the second noise) and various parameters associated with the aggregated dataset. Non-limiting examples of parameters include mean, standard deviation, symmetry, skewness, kurtosis, etc. A crowd noise distribution system 400 is configured to distribute the crowd noise distribution across various computing devices to generate the second noise based on the crowd noise distribution. From the perspective of data generated by a single device over time, the second noise is correlated. However, when observed across multiple different user devices, the sources of the second noise at different devices are essentially independent random number generators running on different user devices; the second noise is uncorrelated, and the generated random numbers are not shared outside each respective device. For example, as... Figure 5 The timeline in the text indicates that it can be based on the initial period (e.g., the period discussed in this paper). Figure 5 The second noise (e.g., crowd noise distribution) is generated by seeding the aggregated dataset with protected usage information without using the second noise within the first interval 510. After the aggregated dataset has been seeded with a single data interval, the crowd noise distribution system 400 can then distribute the second noise (e.g., crowd noise distribution).

[0073] Figure 5 This is an example of a timeline 500 illustrating the generation and distribution of crowd-based noise distribution (secondary noise) for protecting usage information according to some aspects of this disclosure. For example, implementing a privacy generation system (e.g., Figure 3 The computing device of the privacy generation system 300 can perform the actions described in timeline 500.

[0074] In some respects, as previously described, the computing device is configured to apply a first noise distribution and a second noise distribution to protect the user's information. Figure 5 At time t0, as illustrated, the computing device generates random noise R for the first noise. s At time t0, the computing device may be unable to generate a second noise associated with the crowd distribution at the device. For example, the second noise associated with the crowd distribution may not be available during the first interval 510 because crowd usage information may initially be unavailable. The computing device may use the noise distribution associated with random noise R={0,1} as placeholder noise for the second noise during the first interval 510.

[0075] At time t1, the computing device sends a signal to the crowd noise distribution system (e.g., Figure 4 The crowd noise distribution system 400 reports protected usage information and receives noise distribution R N1 In this case, the noise distribution R N1The association with the crowd and the inclusion of various information enable the privacy generation system to generate crowd-related noise that differs from the first model. For the duration of the second interval 520, the computing device uses the noise distribution R. N1 And random noise.

[0076] At time t2, the computing device reports the protected usage information to the crowd noise distribution system and receives the updated noise distribution R based on the updated crowd statistics. N2 In this context, the crowd noise distribution system adjusts the noise distribution based on crowd usage to provide an updated noise distribution that represents current trends based on usage changes. In some cases, an updated noise distribution R can be provided over a longer period. N2 This is to protect users' long-term behavior via their user devices. For the third duration of 530, the computing device uses the updated noise distribution R. N2 Second noise R S Then, as described above, the usage information is reported and an updated noise distribution is received. This process continues, and the noise distribution at the computing device uses a noise distribution representing the current usage of the crowd. In other respects, the techniques described above can also be applied to other types of sensitive information.

[0077] Figure 6 This is a conceptual example of a sample of use information based on some aspects of this disclosure, which is modified with a first noise and a second noise to generate protected use information.

[0078] In some respects, usage information is associated with the functionality of a computing device or the use of the device. Non-limiting examples of usage information include the duration a user plays a game, the duration a user watches media, the usage of the SoC's processing cores, the usage of the NNPU, etc. In this case, a first noise 602 is added to the usage information. The first noise 602 is associated with the individual device and will offset the usage information at regular intervals to obscure short-term trends.

[0079] A second noise 604 is also added to the usage information. The second noise 604 is associated with average user usage. Average user usage changes over long periods and can be used to obscure long-term trends within the usage information. By adding the first noise 602 and the second noise 604 to the usage information, the usage information is transformed into protected usage information, which obscures both short-term and long-term trends in user behavior regarding the functionality.

[0080] In some aspects, the first noise 602 and the second noise 604 can be generated and applied at different devices for different purposes. For example, the first noise 602 and the second noise 604 can be applied at a usage server that receives usage information. In another example, the first noise 602 can be generated and applied at the user device and sent to the usage server, and the usage server can generate and apply the second noise 604. In other cases, the second noise 604 can be generated and applied at the user device, and the first noise 602 can be generated and applied at the usage server. Different aspects may have different benefits; for example, privacy-conscious users may prefer data disambiguation at their local device. In the case where the second noise 604 is applied to the usage information at the server, the user device may not need to receive a second noise distribution associated with a crowd.

[0081] Figure 7 This is a conceptual illustration of another technique for generating irrelevant noise according to some aspects of this disclosure. In some aspects, irrelevant noise can be generated based on a random walk function that is a run value based on previous values. For example, the run value is based on a previous run value and a current random value. In this case, the run value can be applied to usage information to obscure the usage information. The average of the run value will be zero in the long run because the random number will have an equal chance of being positive and negative. In some aspects, irrelevant noise from crowd statistics can be used to generate noise associated with the random walk to further obscure sensitive user information.

[0082] Figure 8 This is a flowchart illustrating example methods for using information with regard to long-term and short-term privacy protections according to various aspects of this disclosure. Process 800 may be performed by a computing device having an image sensor (such as a mobile wireless communication device, a vehicle (e.g., an autonomous or semi-autonomous vehicle, a wireless-enabled vehicle, and / or other types of vehicles) or a computing device or system of a vehicle, a robotic device or system (e.g., for residential or manufacturing purposes), a camera, an XR device, or another computing device). In one exemplary example, a computing system (e.g., computing system 1000) may be configured to perform all or part of process 800. In one exemplary example, a SoC 100 may be configured to perform all or part of process 800. For example, computing system 1000 may include components of SoC 100 and may be configured to perform all or part of process 800.

[0083] Although example process 800 depicts a specific sequence of operations, this sequence may be changed without departing from the scope of this disclosure. For example, some of the depicted operations may be performed in parallel, or in a different order that does not substantially affect the functionality of process 800. In other examples, different components of the example device or system implementing process 800 may perform their functions substantially simultaneously or in a specific order.

[0084] At box 802, the computing system (e.g., computing system 1000) can detect multiple events associated with functions of the computing device over a period of time. In some aspects, the multiple events can be associated with hardware components of the computing system. For example, an event could be the execution of a camera function. However, an event can be any event that invokes a hardware function, and the use of that hardware function can be recorded to help determine usage statistics for that hardware function. For example, a hardware function could be the execution of a generative AI model that invokes and measures the usage of dedicated hardware (e.g., NNPU, GPU, etc.) within the computing system. For example, the computation time of the NNPU can be recorded based on the application executing in the computing system.

[0085] At box 804, the computing system can determine a first noise associated with multiple events over a period of time. In some respects, the first noise represents a random or static variable associated with the computing system.

[0086] In one aspect, to determine the first noise, the computing system may determine a first random value and add the first random value to a previous random value to generate the first noise. For example, in a second aspect, the computing system implements a random walk to change the first noise over a time period. In another aspect, the first noise may be a random number selected by the computing device. The first noise may be fixed over a long period to disambiguate long-term trends (e.g., one year).

[0087] At box 806, the computing system can add a first noise and a second noise to values ​​corresponding to multiple events. In some aspects, the first and second noises are configured to disambiguate regular and irregular use of the function. For example, regular use is associated with the function of the computing system, such as the number of images captured in a day. Other events may have different ranges. For example, regular use of the heart rate monitoring function may be associated with minutes or hours. Irregular use corresponds to behavior different from regular use, as it differs from normal behavior over a period of time. An example of irregular use of the camera function that might occur during a vacation. In another example, irregular use of the heart rate monitoring function might be associated with exercise or hiking during a vacation.

[0088] The second type of noise is associated with the functionality of the computing device and is added to reports identifying the use of that functionality. For example, the second type of noise is associated with population statistics based on analyses performed at (or for) the device usage server.

[0089] In some aspects, the computing system may receive a second noise distribution from the device's usage service, and the second noise is generated at the computing device based on the second noise distribution. The second noise distribution is based on statistical analysis of corresponding events reported by other computing devices that were associated with the functionality of the computing device over a previous period.

[0090] In some cases, a second noise distribution may be unavailable because other computing devices have not yet reported corresponding events associated with the function. The computing system can detect initial multiple events associated with the computing device's function over a previous period. The computing system can add random noise to the information associated with the initial multiple events and transmit the information including the random noise to the device usage service. Random noise from periods when the second noise distribution is unavailable can be used to disambiguate the information associated with the initial multiple events.

[0091] At box 808, the computing system may transmit a noisy report of the use of the identification function to the device using the service. In one aspect, the noisy report may include values ​​having a first noise level and a second noise level.

[0092] In some respects, the second noise distribution can evolve over time. In this case, population statistics can change, and the computing system can be updated with a modified noise model. For example, the computing system can detect multiple subsequent events associated with the functionality of the computing device over a subsequent period of time. The computing system can add a third noise to the values ​​associated with the multiple subsequent events, where the third noise is associated with the first noise distribution.

[0093] In some respects, a second noise may be added differently. For example, a device usage service may add, generate, and amplify noise to anonymize data before removing any personally identifiable information. The computing device may include privacy settings related to how noise is applied, and users may configure their desired level of privacy when reporting data. For example, the user interface may present a usage disambiguation option that allows local usage disambiguation (e.g., applying the first and second noises at the computing device) or hybrid device disambiguation (e.g., applying the first noise at the computing device and the second noise at the device usage service).

[0094] Figure 9This is a flowchart illustrating an example of a process 900 for generating a noise distribution according to various aspects of this disclosure, the method being used to generate an uncorrelated noise distribution for long-term and short-term privacy. Process 900 may be performed by a computing device having an image sensor (such as a mobile wireless communication device, a vehicle (e.g., an autonomous or semi-autonomous vehicle, a wireless-enabled vehicle, and / or other types of vehicle) or a computing device or system of a vehicle, a CV robotic function (e.g., manufacturing), a camera, an XR device, or another computing device). In one exemplary example, a computing system (e.g., computing system 1000) may be configured to perform all or part of process 900. In one exemplary example, a SoC 100 may be configured to perform all or part of process 900. For example, computing system 1000 may include components of SoC 100 and may be configured to perform all or part of process 900.

[0095] At box 902, a computing system (e.g., computing system 1000) may receive a first plurality of reports from a plurality of computing devices. The first plurality of reports includes a value, combined with a first random noise value generated at the corresponding computing device, indicating the use of a function at the corresponding computing device.

[0096] At box 904, the computing system can generate a first noise distribution based on a first plurality of reports. At box 906, the computing system can transmit the first noise distribution to a plurality of computing devices.

[0097] At box 908, the computing system may receive a second plurality of reports from multiple computing devices. The second plurality of reports includes a value indicating the use of a function at the corresponding computing device, combined with a second random noise value generated at the corresponding computing device based on a first noise distribution. The second random noise value includes first noise associated with the first noise distribution and second noise generated based on a different noise distribution.

[0098] The computing system can continue to generate a second noise distribution based on the second plurality of reports and transmit the second noise distribution to multiple computing devices. In this case, the computing system is configured to construct a model representing the statistical usage of specific functions associated with the multiple computing devices, and to enable each computing device to disambiguate usage data to protect against short-term and long-term use. For example, short-term use corresponds to irregular use (e.g., vacation), and long-term use corresponds to regular use.

[0099] In some examples, the processes or methods described herein (e.g., process 800, process 900, and / or other methods described herein) may be performed by a computing device or apparatus. In one example, process 800 and / or process 900 may be performed by a device having… Figure 10 The computing architecture of the computing system 1000 shown is a computing device (e.g., Figure 1 It is executed by SoC 100 in the system.

[0100] Processes 800 and 900 are illustrated as logic flowcharts, whose operations represent sequences of operations that can be implemented by hardware, computer instructions, or combinations thereof. In the context of computer instructions, each operation represents a computer-executable instruction stored on one or more computer-readable storage media that, when executed by one or more processors, performs the described operation. Generally, computer-executable instructions include routines, programs, objects, components, data structures, etc., that perform a specific function or implement a specific data type. The order in which the operations are described is not intended to be construed as limiting, and any number of described operations can be combined in any order and / or in parallel to implement the method.

[0101] Processes 800 and 900 and / or other methods or processes described herein may be executed under the control of one or more computer systems configured with executable instructions, and may be implemented as code (e.g., executable instructions, one or more computer programs, or one or more applications) that executes jointly on one or more processors, implemented in hardware, or implemented in a combination thereof. As noted above, the code may be stored on a computer-readable or machine-readable storage medium, for example, in the form of a computer program comprising multiple instructions executable by one or more processors. The computer-readable or machine-readable storage medium may be non-transitory.

[0102] Figure 10 This is a diagram illustrating an example of a computing system 1000 that can implement certain aspects of the systems and technologies described herein. The computing system 1000 can be any computing device, such as constituting an internal computing system, a remote computing system, or any component thereof, wherein the components of system 1000 communicate with each other using connection 1005. Connection 1005 can be a physical connection using a bus, or a direct connection to processor 1010, such as in a chipset (e.g., SoC) architecture. Connection 1005 can also be a virtual connection, a networking connection, or a logical connection.

[0103] In some aspects, the computing system 1000 is a distributed system in which the functions described herein can be distributed across a data center, multiple data centers, a peer-to-peer network, etc. In some aspects, one or more of the described system components represent a plurality of such components, each of which performs some or all of the functions described for that component. In some aspects, the components can be physical or virtual devices.

[0104] Example computing system 1000 includes at least one processing unit (CPU or processor) 1010 and a connection 1005 that couples various system components, including system memory 1015 (such as ROM 1020 and RAM 1025), to processor 1010. Computing system 1000 may include a cache 1012 of high-speed memory that is directly connected to, closely proximate to, or integrated into processor 1010.

[0105] Processor 1010 may include any general-purpose processor and hardware or software services (such as services 1032, 1034, and 1036 stored in storage device 1030 and configured to control processor 1010), as well as dedicated processors in which software instructions are incorporated into the actual processor design. Processor 1010 may be a substantially completely independent computing system containing multiple cores or processors, buses, memory controllers, caches, etc. Multi-core processors may be symmetric or asymmetric.

[0106] To enable user interaction, the computing system 1000 includes an input device 1045 that can represent any number of input mechanisms, such as a microphone for voice, a touch-sensitive screen for gesture or graphical input, a keyboard, a mouse, motion input, voice input, etc. The computing system 1000 may also include an output device 1035 that can be one or more of a plurality of output mechanisms. In some instances, a multi-mode system allows a user to provide multiple types of input / output to communicate with the computing system 1000. The computing system 1000 may include a communication interface 1040, which typically governs and manages user input and system output. The communication interface can perform or facilitate the receipt and / or transmission of wired or wireless communications using wired and / or wireless transceivers, including utilizing audio jacks / plugs, microphone jacks / plugs, Universal Serial Bus (USB) ports / plugs, Apple... ® Lightning ® Ports / plugs, Ethernet ports / plugs, fiber optic ports / plugs, dedicated wired ports / plugs, Bluetooth ® Wireless signal transmission, BLE wireless signal transmission, IBEACON ®Wireless signal transmission, RFID wireless signal transmission, Near Field Communication (NFC) wireless signal transmission, Dedicated Short Range Communication (DSRC) wireless signal transmission, 802.11 WiFi wireless signal transmission, WLAN signal transmission, Visible Light Communication (VLC), Microwave Access Global Interoperability (WiMAX), IR communication wireless signal transmission, Public Switched Telephone Network (PSTN) signal transmission, Integrated Services Digital Network (ISDN) signal transmission, 3G / 4G / 5G / LTE cellular data network wireless signal transmission, ad hoc network signal transmission, radio wave signal transmission, microwave signal transmission, infrared signal transmission, visible light signal transmission, ultraviolet light signal transmission, wireless signal transmission along the electromagnetic spectrum, or combinations thereof. The communication interface 1040 may also include one or more Global Navigation Satellite System (GNSS) receivers or transceivers for determining the location of the computing system 1000 based on one or more signals received from one or more satellites associated with one or more GNSS systems. GNSS systems include, but are not limited to, the US GPS, Russia's GLONASS, China's BeiDou Navigation Satellite System (BDS), and Europe's Galileo GNSS. There are no limitations on operation on any particular hardware configuration, and therefore the underlying features here can be easily replaced to obtain improved hardware or firmware configurations as they are developed.

[0107] Storage device 1030 may be a non-volatile and / or non-transitory and / or computer-readable storage device, and may be a hard disk or other type of computer-readable medium capable of storing data accessible by a computer, such as magnetic tape, flash memory card, solid-state storage device, digital versatile optical disc, cartridge, floppy disk, floppy disk, hard disk, magnetic tape, magnetic stripe / magnetic stripe, any other magnetic storage medium, flash memory, memristor memory, any other solid-state storage, CD-ROM, rewritable CD, DVD, Blu-ray Disc, holographic optical disc, another optical medium, secure digital (SD) card, microSD card, Memory Stick. ®Cards, smart card chips, EMV chips, Subscriber Identity Module (SIM) cards, mini / micro / nano / micro SIM cards, another integrated circuit (IC) chip / card, RAM, static RAM (SRAM), dynamic RAM (DRAM), ROM, programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), flash EPROM, cache memory (L1 / L2 / L3 / L4 / L5 / L#), resistive random access memory (RRAM / ReRAM), phase-change memory (PCM), spin-transfer torque RAM (STT-RAM), another memory chip or cassette and / or combinations thereof.

[0108] Storage device 1030 may include software services, servers, services, etc., which enable the system to perform functions when the code defining such software is executed by processor 1010. In some aspects, hardware services performing specific functions may include software components for performing functions stored in a computer-readable medium connected to necessary hardware components such as processor 1010, connection 1005, output device 1035, etc. The term "computer-readable medium" includes, but is not limited to, portable or non-portable storage devices, optical storage devices, and various other media capable of storing, containing, or carrying instructions and / or data. Computer-readable media may include non-transitory media in which data can be stored and which does not include carrier waves and / or transient electronic signals propagating wirelessly or over a wired connection. Examples of non-transitory media may include, but are not limited to, magnetic disks or magnetic tapes, optical storage media (such as CDs or DVDs), flash memory, memory, or memory devices. Computer-readable media may store code and / or machine-executable instructions thereon, which may represent procedures, functions, subroutines, programs, routines, subroutines, modules, software packages, classes, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or hardware circuitry by passing and / or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc., may be passed, forwarded, or transmitted via any suitable means, including memory sharing, message passing, token passing, network transmission, etc.

[0109] In some examples, the methods described herein (e.g., process 800, method 900, and / or other processes described herein) may be performed by a computing device or apparatus. In one example, method 700 may be performed by a device having Figure 10 The computing architecture of the computing system 1000 shown is a computing device (e.g., Figure 1 It is executed by SoC 100 in the system.

[0110] In some cases, a computing device or apparatus may include various components such as one or more input devices, one or more output devices, one or more processors, one or more microprocessors, one or more microcomputers, one or more cameras, one or more sensors, and / or other components configured to perform the steps of the methods described herein. In some examples, a computing device may include a display, one or more network interfaces configured to transmit and / or receive data, any combination thereof, and / or other components. One or more network interfaces may be configured to transmit and / or receive wired and / or wireless data, including data according to 3G, 4G, 5G, and / or other cellular standards, data according to the Wi-Fi (802.11x) standard, and data according to Bluetooth. ™ Standard data, data according to IP standards, and / or other types of data.

[0111] Components that enable the implementation of a computing device in a circuit. For example, each component may include and / or may be implemented using electronic circuits or other electronic hardware (which may include one or more programmable electronic circuits (e.g., microprocessors, GPUs, DSPs, CPUs, and / or other suitable electronic circuits)), and / or may include and / or may be implemented using computer software, firmware, or any combination thereof to perform the various operations described herein.

[0112] In some respects, computer-readable storage devices, media, and memories may include cables or wireless signals containing bit streams, etc. However, when referred to, non-transitory computer-readable storage media explicitly exclude media such as energy, carrier signals, electromagnetic waves, and the signals themselves.

[0113] Specific details are provided in the foregoing description to provide a thorough understanding of the aspects and examples presented herein. However, those skilled in the art will understand that these aspects can be practiced without these specific details. For clarity, in some instances, the technology may be presented as comprising individual functional blocks, including functional blocks containing devices, device components, steps or routines in methods embodied in software or a combination of hardware and software. Additional components may be used in addition to those shown in the figures and / or described herein. For example, circuits, systems, networks, processes and other components may be shown as components in block diagram form to avoid obscuring these aspects in unnecessary detail. In other cases, well-known circuits, processes, algorithms, structures and techniques may be shown without unnecessary detail to avoid obscuring the aspects.

[0114] Various aspects described above can be presented as processes or methods, depicted as flowcharts, diagrams, data flow graphs, structure diagrams, or block diagrams. While flowcharts may describe operations as sequential processes, many operations within an operation can be executed in parallel or concurrently. Furthermore, the order of operations can be rearranged. A process terminates when its operations are completed, but a process may have additional steps not included in the diagrams. A process can correspond to a method, function, procedure, subroutine, subroutine, etc. When a process corresponds to a function, its termination may correspond to the function returning to the calling function or the main function.

[0115] The processes and methods described in the examples above can be implemented using stored computer-executable instructions or computer-executable instructions otherwise obtainable from a computer-readable medium. Such instructions may include, for example, instructions and data that configure, or otherwise configure, a general-purpose computer, special-purpose computer, or processing device to perform a function or group of functions. The portion may be accessible via a network of the computer resources used. The computer-executable instructions may be, for example, binary, intermediate format instructions, such as assembly language, firmware, source code, etc. Examples of computer-readable media that can be used to store instructions, information used, and / or information created during the methods according to the described examples include disks or optical discs, flash memory, USB devices with non-volatile memory, networked storage devices, etc.

[0116] Devices implementing the processes and methods according to these disclosures may include hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof, and may take any of a variety of form factors. When implemented as software, firmware, middleware, or microcode, program code or code segments (e.g., computer program products) for performing necessary tasks may be stored in a computer-readable or machine-readable medium. A processor may perform the necessary tasks. Typical examples of form factors include laptops, smartphones, mobile phones, tablet devices, or other small form factor personal computers, personal digital assistants, rack-mounted devices, standalone devices, etc. The functionality described herein may also be embodied in peripheral devices or interlocking cards. By further example, such functionality may also be implemented on circuit boards of different chips or different processes executed on a single device.

[0117] Instructions, media for transmitting such instructions, computing resources for executing them, and other structures for supporting such computing resources are example components for providing the functionality described in this disclosure.

[0118] In the foregoing description, aspects of this application have been described with reference to their specific aspects, but those skilled in the art will recognize that this application is not limited thereto. Therefore, although illustrative aspects of this application have been described in detail herein, it is to be understood that various inventive concepts may be embodied and employed in various other ways, and the appended claims are not intended to be construed as including these variations unless limited by prior art. The various features and aspects of the applications described above may be used individually or in combination. Furthermore, aspects may be utilized in any number of environments and applications beyond those described herein without departing from the broader spirit and scope of this specification. Therefore, the specification and drawings should be considered illustrative rather than restrictive. For illustrative purposes, the methods are described in a particular order. It should be understood that, in alternative aspects, the methods may be performed in a different order than described.

[0119] Those skilled in the art will understand that, without departing from the scope of this description, the less than (“<”) and greater than (“>”) symbols or terms used herein may be replaced with less than or equal to (“>”) respectively. ") and greater than or equal to (" The symbol ) is used instead.

[0120] When a component is described as being “configured” to perform certain operations, such configuration can be achieved, for example, by designing electronic circuits or other hardware to perform the operations, by programming programmable electronic circuits (e.g., microprocessors or other suitable electronic circuits) to perform the operations, or any combination thereof.

[0121] The phrase “coupled to” means any component that is physically connected directly or indirectly to another component, and / or any component that communicates directly or indirectly with another component (e.g., connected to another component via a wired or wireless connection and / or other suitable communication interface).

[0122] Claim language or other languages ​​that state "at least one of" and / or "one or more of" in a set indicate that one member of the set or multiple members of the set (in any combination) satisfy the claim. For example, claim language stating "at least one of A and B" or "at least one of A or B" means A, B, or A and B. In another example, claim language stating "at least one of A, B, and C" or "at least one of A, B, or C" means A, B, C, or A and B, or A and C, or B and C, A and B and C, or any repeating information or data (e.g., A and A, B and B, C and C, A and A and B, etc.), or any other ordering, repetition, or combination of A, B, and C. The language "at least one of" and / or "one or more of" in a set does not limit the set to the items listed in the set. For example, the language of a claim stating "at least one of A and B" or "at least one of A or B" may refer to A, B, or A and B, and may additionally include items not listed in the set of A and B. The phrases "at least one" and "one or more" are used interchangeably herein.

[0123] Claims using phrases such as "at least one processor, the at least one processor being configured to," "at least one processor being configured to," "one or more processors, the one or more processors being configured to," or "one or more processors being configured to," or other languages, indicate that one or more processors (in any combination) are capable of performing associated operations. For example, a claim using the phrase "at least one processor, the at least one processor being configured to: X, Y, and Z" means that a single processor can be used to perform operations X, Y, and Z; or that multiple processors are each assigned a specific subset of tasks to perform operations X, Y, and Z, such that the multiple processors together perform X, Y, and Z; or that a group of multiple processors work together to perform operations X, Y, and Z. In another example, a claim using the phrase "at least one processor, the at least one processor being configured to: X, Y, and Z" could mean that any single processor can perform only at least one subset of operations X, Y, and Z.

[0124] When referring to one or more elements that perform functions (e.g., steps of a method), one element may perform all functions, or more than one element may jointly perform these functions. When more than one element jointly performs these functions, each function does not need to be performed by every single element (e.g., different functions may be performed by different elements), and / or each function does not need to be performed by only one element as a whole (e.g., different elements may perform different sub-functions of a function). Similarly, when referring to one or more elements configured to cause another element (e.g., a device) to perform functions, one element may be configured to cause another element to perform all functions, or more than one element may be jointly configured to cause another element to perform these functions.

[0125] When referring to an entity that performs or is configured to perform functions (e.g., steps of a method) (e.g., any entity or device described herein), the entity may be configured to cause one or more elements (individually or collectively) to perform those functions. One or more components of the entity may include at least one memory, at least one processor, at least one communication interface, another component configured to perform one or more of those functions, and / or any combination thereof. When referring to an entity that performs functions, the entity may be configured to cause one component to perform all functions, or to cause more than one component to perform those functions collectively. When the entity is configured to cause more than one component to perform those functions collectively, each function does not need to be performed by every single component (e.g., different functions may be performed by different components), and / or each function does not need to be performed by only one component as a whole (e.g., different components may perform different sub-functions of a function).

[0126] The various exemplary logic blocks, modules, circuits, and algorithm steps described in conjunction with the aspects disclosed herein can be implemented as electronic hardware, computer software, firmware, or combinations thereof. To clearly illustrate this interchangeability between hardware and software, various exemplary components, blocks, modules, circuits, and steps have been broadly described above in terms of their functionality. Whether such functionality is implemented as hardware or software depends on the specific application and the design constraints imposed on the overall system. Those skilled in the art may implement the described functionality in different ways for each specific application, but such specific implementation decisions should not be construed as departing from the scope of this application.

[0127] The techniques described herein can also be implemented in electronic hardware, computer software, firmware, or any combination thereof. Such techniques can be implemented in any of a variety of devices, such as general-purpose computers, wireless communication devices (mobile phones), or integrated circuit devices with multiple uses, including applications in wireless communication devices (mobile phones) and other devices. Any feature described as a module or component can be implemented together in an integrated logic device or separately as discrete but interoperable logic devices. If implemented in software, these techniques can be implemented at least in part by a computer-readable data storage medium comprising program code including instructions that, when executed, perform one or more of the methods described above. The computer-readable data storage medium can form part of a computer program product, which may include packaging material. The computer-readable medium can include memory or data storage media, such as RAM (e.g., Synchronous Dynamic Random Access Memory (SDRAM)), ROM, non-volatile random access memory (NVRAM), EEPROM, flash memory, magnetic or optical data storage media, etc. Additionally or alternatively, the technology may be implemented at least in part by a computer-readable communication medium that carries or conveys program code in the form of instructions or data structures that can be accessed, read and / or executed by a computer, such as propagated signals or waves.

[0128] The program code can be executed by a processor, which may include one or more processors, such as one or more DSPs, general-purpose microprocessors, application-specific integrated circuits (ASICs), field-programmable arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Such processors can be configured to perform any of the techniques described in this disclosure. A general-purpose processor may be a microprocessor; however, in alternatives, the processor may be any conventional processor, controller, microcontroller, or state machine. The processor may also be implemented as a combination of computing devices, such as a combination of a DSP and a microprocessor, multiple microprocessors, one or more microprocessors combined with a DSP core, or any other such configuration. Therefore, as used herein, the term "processor" may refer to any of the foregoing structures, any combination of the foregoing structures, or any other structure or means suitable for implementing the techniques described herein.

[0129] The exemplary aspects of this disclosure include: Aspect 1. A method for reporting privacy-protected use of a computing device, the method comprising: detecting a plurality of events associated with a function of the computing device over a period of time; determining a first noise associated with the plurality of events over the period of time; adding the first noise and a second noise to values ​​corresponding to the plurality of events; and transmitting a noisy report identifying the use of the function to a device use service, the noisy report including the values ​​having the first noise and the second noise.

[0130] Aspect 2. The method according to aspect 1, the method further comprising: receiving a second noise distribution from the device using a service, wherein the second noise is generated based on the second noise distribution.

[0131] Aspect 3. The method according to any one of Aspects 1 to 2, wherein the second noise distribution is based on statistical analysis of other computing devices that report corresponding events associated with the function of the computing device in a previous period.

[0132] Aspect 4. The method according to any one of Aspects 1 to 3, the method further comprising: detecting an initial plurality of events associated with the function of the computing device in a prior period of time, the prior period of time occurring prior to the period of time; adding random noise to information associated with the initial plurality of events; and transmitting the information including the random noise to the device using a service.

[0133] Aspect 5. The method according to any one of Aspects 1 to 4, the method further comprising: detecting a plurality of subsequent events associated with the function of the computing device in a subsequent period of time, the subsequent period of time occurring after the period of time; and adding a third noise to a value associated with the plurality of subsequent events, wherein the third noise is associated with a first noise distribution.

[0134] Aspect 6. The method according to any one of Aspects 1 to 5, wherein the first noise and the second noise are configured to disambiguate the normal use of the function and the non-normal use of the function.

[0135] Aspect 7. The method according to any one of Aspects 1 to 6, wherein determining the first noise associated with the plurality of events within the time period comprises: determining a first random value; and adding the first random value to a previous random value to generate the first noise.

[0136] Aspect 8. The method according to any one of Aspects 1 to 7, wherein the second noise is associated with the function of the computing device and is added to a report identifying the use of the function.

[0137] Aspect 9. The method according to any one of Aspects 1 to 8, wherein the second noise is independent of the first noise.

[0138] Aspect 10. A method for allocating a noise model to anonymize report data, the method comprising: receiving a first plurality of reports from a plurality of computing devices, wherein the first plurality of reports includes values ​​identifying the use of a function at the corresponding computing device in combination with a first random noise value generated at the corresponding computing device; generating a first noise distribution based on the first plurality of reports; transmitting the first noise distribution to the plurality of computing devices; and receiving a second plurality of reports from the plurality of computing devices, wherein the second plurality of reports includes values ​​identifying the use of the function at the corresponding computing device in combination with a second random noise value generated at the corresponding computing device based on the first noise distribution.

[0139] Aspect 11. The method according to aspect 10, the method further comprising: generating a second noise distribution based on the second plurality of reports; and transmitting the second noise distribution to the plurality of computing devices.

[0140] Aspect 12. The method according to any one of Aspects 10 to 11, wherein the second random noise value comprises a first noise associated with the first noise distribution and a second noise generated based on a different noise distribution.

[0141] Aspect 13. An apparatus for reporting privacy-protected usage information. The apparatus includes at least one memory and at least one processor coupled to the at least one memory. The at least one processor is configured to: detect a plurality of events associated with a function of the apparatus over a period of time; determine a first noise associated with the plurality of events over the period of time; add the first noise and a second noise to values ​​corresponding to the plurality of events; and transmit a noisy report identifying the use of the function to a device usage service, the noisy report including the values ​​having the first noise and the second noise.

[0142] Aspect 14. The apparatus according to aspect 13, wherein the at least one processor is configured to: receive a second noise distribution from the device using a service, wherein the second noise is generated based on the second noise distribution.

[0143] Aspect 15. The apparatus according to any one of Aspects 13 to 14, wherein the second noise distribution is based on statistical analysis of other apparatuses that report corresponding events associated with the function of the apparatus over a previous period.

[0144] Aspect 16. The apparatus according to any one of Aspects 13 to 15, wherein the at least one processor is configured to: detect an initial plurality of events associated with the function of the apparatus during a prior period of time, the prior period of time occurring before the period of time; add random noise to information associated with the initial plurality of events; and transmit the information including the random noise to the device using a service.

[0145] Aspect 17. The apparatus according to any one of Aspects 13 to 16, wherein the at least one processor is configured to: detect a plurality of subsequent events associated with the function of the apparatus during a subsequent period of time, the subsequent period of time occurring after the period of time; and add a third noise to the value associated with the plurality of subsequent events, wherein the third noise is associated with a first noise distribution.

[0146] Aspect 18. The apparatus according to any one of Aspects 13 to 17, wherein the first noise and the second noise are configured to disambiguate the normal use of the function and the non-normal use of the function.

[0147] Aspect 19. The apparatus according to any one of aspects 13 to 18, wherein the at least one processor is configured to: determine a first random value; and add the first random value to a previous random value to generate the first noise.

[0148] Aspect 20. The apparatus according to any one of Aspects 13 to 19, wherein the second noise is associated with the function of the apparatus and is added to a report identifying the use of the function.

[0149] Aspect 21. The apparatus according to any one of aspects 13 to 20, wherein the second noise is independent of the first noise.

[0150] Aspect 22. An apparatus for allocating a noise model to anonymize report data. The apparatus includes at least one memory and at least one processor coupled to the at least one memory. The at least one processor is configured to: receive a first plurality of reports from a plurality of computing devices, wherein the first plurality of reports includes values ​​identifying the use of a function at the corresponding computing device in combination with a first random noise value generated at the corresponding computing device; generate a first noise distribution based on the first plurality of reports; transmit the first noise distribution to the plurality of computing devices; and receive a second plurality of reports from the plurality of computing devices, wherein the second plurality of reports includes values ​​identifying the use of the function at the corresponding computing device in combination with a second random noise value generated at the corresponding computing device based on the first noise distribution.

[0151] Aspect 23. The apparatus according to aspect 22, wherein the at least one processor is configured to: generate a second noise distribution based on the second plurality of reports; and transmit the second noise distribution to the plurality of computing devices.

[0152] Aspect 24. The apparatus according to any one of Aspects 22 to 23, wherein the second random noise value includes a first noise associated with the first noise distribution and a second noise generated based on a different noise distribution.

[0153] Aspect 25. A method for reporting privacy-protected use, the method comprising: detecting a plurality of events associated with a function of the computing device over a period of time; determining a first noise associated with the plurality of events over the period of time, wherein the first noise is associated with a first noise distribution; adding at least the first noise to values ​​corresponding to the plurality of events; and transmitting a noisy report identifying use of the function to a device use service, the noisy report including the values ​​associated with at least the first noise, wherein the device use service is configured to add a second noise to the values ​​in the noisy report, wherein the second noise is associated with a second noise distribution different from the first noise distribution.

[0154] Aspect 26. The method according to aspect 25, wherein user privacy settings configure the computing device to selectively add the second noise at the location where the device uses a server or the computing device.

[0155] Aspect 27. The method according to any one of Aspects 25 to 26, wherein the first noise and the second noise are configured to disambiguate the normal use of the function and the non-normal use of the function.

[0156] Aspect 28. An apparatus for reporting privacy-protected use. The apparatus includes at least one memory and at least one processor coupled to the at least one memory. The at least one processor is configured to: detect a plurality of events associated with a function of the computing device over a period of time; determine a first noise associated with the plurality of events over the period of time, wherein the first noise is associated with a first noise distribution; add at least the first noise to values ​​corresponding to the plurality of events; and transmit a noisy report identifying use of the function to a device use service, the noisy report including the values ​​associated with at least the first noise, wherein the device use service is configured to add a second noise to the values ​​in the noisy report, wherein the second noise is associated with a second noise distribution different from the first noise distribution.

[0157] Aspect 29. The apparatus according to aspect 28, wherein user privacy settings configure the computing device to selectively add the second noise at the device using a server or at the computing device.

[0158] Aspect 30. The apparatus according to any one of Aspects 28 to 29, wherein the first noise and the second noise are configured to disambiguate the normal use of the function and the non-normal use of the function.

[0159] Aspect 31. A non-transitory computer-readable medium having instructions stored thereon, which, when executed by one or more processors, cause the one or more processors to perform any one of aspects 1 to 9.

[0160] Aspect 32. An apparatus comprising one or more components for performing the operation according to any one of aspects 1 to 9.

[0161] Aspect 33. A non-transitory computer-readable medium having instructions stored thereon, which, when executed by one or more processors, cause the one or more processors to perform any one of aspects 10 to 12.

[0162] Aspect 34. An apparatus for generating virtual content in a distributed system, the apparatus comprising one or more components for performing operations according to any one of aspects 10 to 12.

[0163] Aspect 35. A non-transitory computer-readable medium having instructions stored thereon, which, when executed by one or more processors, cause the one or more processors to perform any one of aspects 25 to 27.

[0164] Aspect 36. An apparatus for generating virtual content in a distributed system, the apparatus comprising one or more components for performing operations according to any one of aspects 25 to 27.

Claims

1. A method for reporting the use of a computing device, the method comprising: Detect multiple events associated with the functionality of the computing device over a period of time; Determine a first noise associated with the plurality of events within the stated time period; Add the first noise and the second noise to the values ​​corresponding to the plurality of events; as well as A noisy report identifying the use of the function is transmitted to the device usage service, the noisy report including the values ​​having the first noise and the second noise.

2. The method according to claim 1, further comprising: The device uses a service to receive a second noise distribution, wherein the second noise is generated based on the second noise distribution.

3. The method of claim 2, wherein the second noise distribution is based on statistical analysis of other computing devices that reported corresponding events associated with the function of the computing device over a previous period.

4. The method according to claim 1, further comprising: Detect initial multiple events associated with the function of the computing device within a prior period of time, the prior period of time occurring before the specified period of time; Add random noise to the information associated with the initial plurality of events; as well as The information, including the random noise, is transmitted to the device for use services.

5. The method according to claim 1, further comprising: Detect a plurality of subsequent events associated with the functionality of the computing device over a subsequent period of time, the subsequent period of time occurring after the previous period of time; as well as A third noise is added to the value associated with the subsequent plurality of events, wherein the third noise is associated with the first noise distribution.

6. The method of claim 1, wherein the first noise and the second noise are configured to disambiguate the normal use of the function and the non-normal use of the function.

7. The method of claim 1, wherein determining the first noise associated with the plurality of events within the time period comprises: Determine the first random value; as well as The first random value is added to the previous random value to generate the first noise.

8. The method of claim 1, wherein the second noise is associated with the function of the computing device and is added to a report identifying the use of the function.

9. The method of claim 1, wherein the second noise is independent of the first noise.

10. A method for assigning noise models to anonymize reported data, the method comprising: Receive a first plurality of reports from a plurality of computing devices, wherein the first plurality of reports include values ​​that identify the use of a function at the corresponding computing device in combination with a first random noise value generated at the corresponding computing device; A first noise distribution is generated based on the first plurality of reports; The first noise distribution is transmitted to the plurality of computing devices; as well as Receive a second plurality of reports from the plurality of computing devices, wherein the second plurality of reports include a value identifying the use of the function at the corresponding computing device in combination with a second random noise value generated at the corresponding computing device based on the first noise distribution.

11. The method according to claim 10, further comprising: A second noise distribution is generated based on the second plurality of reports; as well as The second noise distribution is transmitted to the plurality of computing devices.

12. The method of claim 10, wherein the second random noise value comprises a first noise associated with the first noise distribution and a second noise generated based on a different noise distribution.

13. An apparatus for receiving privacy-protected usage information, comprising: At least one memory; and At least one processor, said at least one processor being coupled to at least one memory and configured to: Detect multiple events associated with the function of the device over a period of time; Determine a first noise associated with the plurality of events within the stated time period; Add the first noise and the second noise to the values ​​corresponding to the plurality of events; as well as A noisy report identifying the use of the function is transmitted to the device usage service, the noisy report including the values ​​having the first noise and the second noise.

14. The apparatus of claim 13, wherein the at least one processor is configured to: The device uses a service to receive a second noise distribution, wherein the second noise is generated based on the second noise distribution.

15. The apparatus of claim 14, wherein the second noise distribution is based on statistical analysis of other computing devices that report corresponding events associated with the function of the apparatus over a previous period.

16. The apparatus of claim 13, wherein the at least one processor is configured to: Detect initial multiple events associated with the function of the device within a prior period of time, the prior period of time occurring before the specified period of time; Add random noise to the information associated with the initial plurality of events; as well as The information, including the random noise, is transmitted to the device for use services.

17. The apparatus of claim 13, wherein the at least one processor is configured to: Detecting a plurality of subsequent events associated with the function of the device over a subsequent period of time, said subsequent period of time occurring after said period of time; and A third noise is added to the value associated with the subsequent plurality of events, wherein the third noise is associated with the first noise distribution.

18. The apparatus of claim 13, wherein the first noise and the second noise are configured to disambiguate normal use of the function and non-normal use of the function.

19. The apparatus of claim 13, wherein the at least one processor is configured to: Determine the first random value; and The first random value is added to the previous random value to generate the first noise.

20. The apparatus of claim 13, wherein the second noise is associated with the function of the apparatus and is added to a report identifying the use of the function.

21. The apparatus of claim 13, wherein the second noise is independent of the first noise.

22. An apparatus for receiving privacy-protected usage information, comprising: At least one memory; and At least one processor, said at least one processor being coupled to at least one memory and configured to: Receive a first plurality of reports from a plurality of computing devices, wherein the first plurality of reports include values ​​that identify the use of a function at the corresponding computing device in combination with a first random noise value generated at the corresponding computing device; A first noise distribution is generated based on the first plurality of reports; The first noise distribution is transmitted to the plurality of computing devices; as well as Receive a second plurality of reports from the plurality of computing devices, wherein the second plurality of reports include a value identifying the use of the function at the corresponding computing device in combination with a second random noise value generated at the corresponding computing device based on the first noise distribution.

23. The apparatus of claim 22, wherein the at least one processor is configured to: A second noise distribution is generated based on the second plurality of reports; and The second noise distribution is transmitted to the plurality of computing devices.

24. The apparatus of claim 22, wherein the second random noise value includes a first noise associated with the first noise distribution and a second noise generated based on a different noise distribution.