1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Serggg [28]
3 years ago
13

Traditional password entry schemes are susceptible to "shoulder surfing" in which an attacker watches an unsuspecting user enter

their password or PIN number and uses it later to gain access to the account. One way to combat this problem is with a randomized challenge-response system. In these systems, the user enters different information every time based on a secret in response to a randomly generated challenge. Consider the fol- lowing scheme in which the password consists of a five-digit PIN number (00000 to 99999). Each digit is assigned a random number that is 1, 2, or 3. The user enters the random numbers that correspond to their PIN instead of their actual PIN numbers.For example, consider an actual PIN number of 12345. To authenticate the user would be presented with a screen such as:PIN: 0 1 2 3 4 5 6 7 8 9 NUM: 3 2 3 1 1 3 2 2 1 3The user would enter 23113 instead of 12345. This doesn’t divulge the password even if an attacker intercepts the entry because 23113 could correspond to other PIN numbers, such as 69440 or 70439. The next time the user logs in, a different sequence of random numbers would be generated, such as: PIN: 0 1 2 3 4 5 6 7 8 9 NUM: 1 1 2 3 1 2 2 3 3 3Your program should simulate the authentication process. Store an actual PIN number in your program. The program should use an array to assign random numbers to the digits from 0 to 9. Output the random digits to the screen, input the response from the user, and output whether or not the user’s response correctly matches the PIN number.I have this code so far, but would like to input cstrings and vectors to fulfill the requirements, I need help with that. This is for c++ for beginners#include #include #include #include using namespace std;void generateRandomNumbers(int *random){ // Use current time as seed for random generatorsrand(time(0));for(int i=0;i<10;i++){random[i] = 1 + rand() % 3;}}bool isMatch(string pin,string randomPin,int *random){int index;for(int i=0;i<(int)pin.length();i++){ //converting pin number to int so that we can check the random number at that indexindex = pin[i]-'0';if((randomPin[i]-'0') != random[index-1])return false;}return true;}int main(){string pin = "12345";string randomPin;int random[10];generateRandomNumbers(random);cout << "Randomly Generated numbers " << endl;for(int i=0;i<10;i++){cout << random[i] << " ";}cout << endl;cout << "Now Enter your pin interms of random numbers: ";cin >> randomPin;if(isMatch(pin,randomPin,random)){cout << "Both matches" << endl;}else{cout << "Sorry you entered wrong pin.." << endl;}}
Engineering
1 answer:
KengaRu [80]3 years ago
3 0

The following code or the program will be used:

<u>Explanation:</u>

import java.util.Scanner;

public class Authenticate

{

public static void main(String[] args)

{

// Actual password is 99508

int[] actual_password = {9, 9, 5, 0, 8};

// Array to hold randomly generated digits

int[] random_nums = new int[10];

// Array to hold the digits entered by the user to authenticate

int[] entered_digits = new int[actual_password.length];

// Randomly generate numbers from 1-3 for

// for each digit

for (int i=0; i < 10; i++)

{

random_nums[i] = (int) (Math.random() * 3) + 1;

}

// Output the challenge

System.out.println("Welcome! To log in, enter the random digits from 1-3 that");

System.out.println("correspond to your PIN number.");

System.out.println();

System.out.println("PIN digit: 0 1 2 3 4 5 6 7 8 9");

System.out.print("Random #: ");

for (int i=0; i<10; i++)

{

System.out.print(random_nums[i] + " ");

}

System.out.println();

System.out.println();

// Input the user's entry

Scanner keyboard = new Scanner(System.in);

System.out.println("Enter code.");

String s = keyboard.next();

String s = keyboard.next();

// Extract the digits from the code and store in the entered_digits array

for (int i=0; i<s.length(); i++)

{

entered_digits[i] = s.charAt(i) - '0'; // Convert char to corresponding digit

}

// At this point, if the user typed 12443 then

// entered_digits[0] = 1, entered_digits[1] = 2, entered_digits[2] = 4,

// entered_digits[3] = 4, and entered_digits[4] = 3

/****

TO DO: fill in the parenthesis for the if statement

so the isValid method is invoked, sending in the arrays

actual_password, entered_digits, and random_nums as

parameters

***/

if (isValid (actual_password, entered_digits, random_nums)) // FILL IN HERE

{

System.out.println("Correct! You may now proceed.");

}

else

{

System.out.println("Error, invalid password entered.");

}

/***

TO DO: Fill in the body of this method so it returns true

if a valid password response is entered, and false otherwise.

For example, if:

actual = {9,9,5,0,8}

randnums = {1,2,3,1,2,3,1,2,3,1}

then this should return true if:

entered[0] == 1 (actual[0] = 9 -> randnums[9] -> 1)

entered[1] == 1 (actual[1] = 9 -> randnums[9] -> 1)

entered[2] == 3 (actual[2] = 5 -> randnums[5] -> 3)

entered[3] == 1 (actual[3] = 0 -> randnums[0] -> 1)

entered[4] == 3 (actual[4] = 8 -> randnums[8] -> 3)

or in other words, the method should return false if any of

the above are not equal.

****/

public static boolean isValid(int[] actual, int[] entered, int[] randnums)

{

int Index = 0;

boolean Valid = true;

while (Valid && (Index < actual.length))

{

int Code = actual[Index];

if (entered [Index] != randnums [Code])

{

Valid = false;

}

Index++;

}

return Valid;

}

You might be interested in
The forming section of a plastics plant puts out a continuous sheet of plastic that is 1.2 m wide and 2 mm thick at a rate of 15
KATRIN_1 [288]

Answer:

attached below

Explanation:

7 0
2 years ago
Cars going straight or turning right have the right-of-way before you when you're making this type of turn
Paladinen [302]

Answer:

Yes. YES yes yes. Unless you are in Australia or something.

4 0
2 years ago
Which option shows the most valuable metallic properties
Rina8888 [55]

Malleable and ductile

non metals like plastic also have other properties but can't be malleable and ductile so they r most valuable metallic properties

6 0
1 year ago
A silicon carbide plate fractured in bending when a blunt load was applied to the plate center. The distance between the fractur
anyanavicka [17]

Answer:

hello your question has some missing values below are the missing values

Mirror Radius (mm) Bending Failure Stress (MPa)

.603                                         225

.203                                         368

.162                                          442

answer : 191 mPa

Explanation:

<u>Determine the stress present at the time of fracture for the original plate</u>

Bending stress ∝ 1 / ( mirror radius )^n ------ ( 1 )

at 0.603  bending stress = 225

at 0.203  bending stress = 368

at 0.162  bending stress = 442

<u>applying equation 1   determine the value of n for several combinations</u>

 ( 225 / 368 ) = ( 0.203 / 0.603 )^n

hence : n = 0.452

also

 ( 368/442 ) = ( 0.162 / 0.203 ) ^n

hence : n = 0.821

also

( 225 / 442 ) = ( 0.162 / 0.603 ) ^n

hence : n = 0.514

Next determine the average value of n

n ( mean value ) =  ( 0.452 + 0.821 + 0.514 ) / 3 = 0.596

Calculate estimated stress present at the time of fracture for the original plate

= bending stress at x =  0.796 / bending stress at x = 0.603

= x / 225 = ( 0.603 / 0.796 ) ^ 0.596

therefore X ( stress present at the time of fracture of original plate )

     = 225 * 0.84747

     <em>=  191 mPa </em>

3 0
2 years ago
You plan to install an active, liquid-based solar heating system for hot water. There are four candidate collector systems. Your
olchik [2.2K]

Solution:

The given formula,

x=F_{R} U_{L} \times \frac{P l}{F R_{1}} \times\left(T_{r e f}-\bar{T}_{a}\right) \Delta t \times \frac{A_{c}}{L}

y=F_{R}(\tau \alpha)_{n} x \frac{F_{R}^{\prime}}{F_{R}} \times \frac{(\bar{\tau} d)}{(T d)_{n}} \times \bar{H}_{T} N \times \frac{A C}{L}

\frac{x}{y}=\frac{ u_{L} \times\left(T_{x t}-\bar{T}_{a}\right) \times \Delta t}{\left(\tau_{x}\right)_{h} \times\left(\frac{\bar{\tau}_{d}}{\left.| \tau_{d}\right)_{n}}\right) \times \bar{H}+N}

From the table,

1) \(\quad x=2 \cdot 87, \quad y=0.96\)\\\(\frac{x}{y}=\frac{2187}{0.96}\)22895\\\\2) \(x=3 \cdot 466 \cdot y=6 \cdot 998\)\\\(\frac{x}{y}=\frac{3 \cdot 466}{0.898}\)\(=3 \cdot 4729\)

3\(x=3 \cdot 229, y=1 \cdot 08\)\\\(\frac{x}{x}=\frac{3 \cdot 229}{1 \cdot 08}\)\\=2.9898\)\\\\4) \(x=6.525, y=1.094\)\\\(\frac{x}{y}=\frac{5.625}{1.094}\)\\=5.0502

8 0
3 years ago
Other questions:
  • If there are 16 signal combinations (states) and a baud rate (number of signals/second) of 8000/second, how many bps could I sen
    7·1 answer
  • What are the 5 major forest types?
    5·2 answers
  • (2 points) A perfectly mixed aeration pond with no recycle serves as the biological reactor for a small community. The pond rece
    15·1 answer
  • What is the difference between the pressure head at the end of a 150m long pipe of diameter 1m coming from the bottom of a reser
    7·1 answer
  • A flywheel made of Grade 30 cast iron (UTS = 217 MPa, UCS = 763 MPa, E = 100 GPa, density = 7100 Kg/m, Poisson's ratio = 0.26) h
    9·1 answer
  • Drivers killed in speed related accidents usually have a history of_______
    8·2 answers
  • PLEASE HELP ME!!!!!! 100 POINTS FOR HELPFUL ANSWERS + BRAINLIEST!!!!!
    14·2 answers
  • Roku internet service providet​
    11·1 answer
  • Just need someone to talk to pls dont just use me for points
    5·1 answer
  • A company intends to market a new product and it estimates that there is a 20% chance that it will be first in the market
    7·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!