Knowledge / Computer Science (Cyber Security) / Digital Personal Data Protection Act 2023 and privacy by design

Digital Personal Data Protection Act 2023 and privacy by design

Computer Science (Cyber Security) (B.E./B.Tech) · Governance, law and careers · free study notes for exams, placements and interviews

In short

The Digital Personal Data Protection Act, 2023 (DPDP Act) is India's first standalone personal data protection law: it regulates how any organisation processes digital personal data, builds the whole scheme on notice and consent, and creates the Data Protection Board of India to adjudicate breaches with penalties up to ₹250 crore. Privacy by design is the engineering counterpart - building data protection into system architecture, defaults and the development lifecycle rather than bolting on a policy document at the end. Together they decide how Indian product teams design signup flows, logging, retention jobs, consent records and vendor contracts. The topic is examined in cyber law, information security management and GRC papers, and is now a standard interview area for security analyst, privacy/GRC consultant, DPO-support and appsec roles at TCS, Infosys, Wipro, Deloitte, EY, PwC, KPMG, Accenture and every Indian fintech and health-tech company.

Explained

Background, scope and key definitions

Grounds for processing, notice and consent

Obligations, rights and institutional machinery

Privacy by design: principles and engineering practice

Penalties, comparison and sectoral overlay

Key points

Formulas and examples

Penalty ceilings (Schedule to the DPDP Act, 2023) - maximum amounts, not fixed fines; the Board sets the amount after inquiry.
Failure to take reasonable security safeguards → up to ₹250 crore
Failure to notify a personal data breach (Board or affected Principals) → up to ₹200 crore
Breach of obligations regarding children's data → up to ₹200 crore
Breach of additional Significant Data Fiduciary obligations → up to ₹150 crore
Breach of a Data Principal's duties (section 15) → up to ₹10,000
Breach of a voluntary undertaking's terms → up to the extent applicable to that breach
Any other breach → up to ₹50 crore
k-anonymity: a released table is k-anonymous if every combination of quasi-identifier values appears in at least k records. k = size of the smallest equivalence class; re-identification probability for a target in that class ≤ 1/k.
Differential privacy: a mechanism M is ε-differentially private if for neighbouring datasets D, D′ differing in one record, Pr[M(D) ∈ S] ≤ eε × Pr[M(D′) ∈ S]. ε (epsilon, dimensionless) = privacy budget; smaller ε = more noise = more privacy.
Laplace mechanism: M(D) = f(D) + Lap(Δf/ε), where Δf = L1 sensitivity of query f (for a count query Δf = 1); noise scale b = Δf/ε, standard deviation = b√2.
Breach-notification clocks: CERT-In directions (28 April 2022) = 6 hours of noticing a specified incident; DPDP detailed report to the Board = 72 hours of becoming aware (extendable on request); intimation to affected Data Principals = without delay.

Example 1 - Which penalty head applies, and to whom. A Bengaluru ed-tech platform stores 8 lakh learner records, including 3 lakh learners aged 14-17, in an S3 bucket left publicly readable. The data is scraped. The company discovers it on day 1 and reports to the Board on day 6; it had taken only parental email confirmation (no verification) for the minors' accounts.

Example 2 - Data minimisation applied to a signup form. A loan app's current signup collects: name, mobile, email, PAN, Aadhaar number, full contact list, SMS inbox, precise GPS, selfie, date of birth, gender, employer name.

Example 3 - k-anonymity on a placement dataset. A college releases placement data with quasi-identifiers (Branch, Year of birth, District). Equivalence-class sizes are: {CSE,2004,Pune} = 12, {CSE,2004,Nagpur} = 5, {ECE,2003,Pune} = 2, {ECE,2004,Thane} = 1.

Example 4 - Differential privacy on a count query. A health app answers "how many users in Kerala reported dengue symptoms this week?" True count f(D) = 1,840. Count query sensitivity Δf = 1.

Example 5 - Breach timeline arithmetic. A payments company's SOC confirms data exfiltration at 02:30 IST on Monday.

AspectDPDP Act, 2023 (India)GDPR (EU)
ScopeDigital personal data onlyPersonal data, digital and structured manual
Sensitive-data tierNoneSpecial categories (Art. 9)
Lawful groundsConsent + listed legitimate uses6 bases incl. legitimate interests, contract
Child's age thresholdUnder 18Under 16 (13-16 by member state)
Cross-border transferAllowed except notified countries (blacklist)Adequacy/SCC/BCR (whitelist model)
RightsAccess summary, correction, erasure, grievance, nominationPlus portability, objection, restriction, no automated decisions
Duties on the individualYes (section 15)No
RegulatorData Protection Board (adjudicatory, digital office)Independent DPAs with rule-making and audit powers
Breach reportingBoard + every affected Principal, 72-hour detailed reportSupervisory authority in 72 h; individuals only if high risk
Penalty ceiling₹250 crore per specified breachUp to 4% of global annual turnover or €20 million
Compensation to individualNot providedArticle 82 right to compensation
DPOMandatory for Significant Data FiduciariesMandatory in defined cases
TermReversible?Still personal data?Typical use
AnonymisationNoNo (if truly irreversible)Published statistics, open data
PseudonymisationYes, with the mappingYesAnalytics with re-link capability
TokenisationYes, via token vaultYesCard and Aadhaar number handling
MaskingUsually noDepends on residual dataTest/dev environments, UI display
EncryptionYes, with the keyYesData at rest and in transit
# Privacy-by-design checks wired into CI (illustrative)
RETENTION = {"otp_log": 7, "session": 90, "kyc_doc": 2555}   # days; kyc_doc = 7 years, statutory

def assert_minimal(fields_collected, fields_declared_in_notice):
    extra = set(fields_collected) - set(fields_declared_in_notice)
    assert not extra, f"collected beyond notice: {extra}"      # purpose limitation

def assert_retention(table, age_days):
    assert age_days <= RETENTION[table], f"{table} past retention"   # storage limitation

def default_consent_state():
    return {"marketing": False, "analytics": False, "profiling": False}  # privacy by default

Where it is used

Interview questions

Common mistakes

Related topics

Cyber law and the IT Act · IT governance, risk and compliance · Security standards: ISO 27001, NIST CSF and CERT-In directions · Cryptography and key management · Secure software development lifecycle and threat modelling · Cyber security careers and certifications

Open in the Knowledge reader →Find jobs →